Mercurial > pub > dyncall > dyncall
diff test/suite_aggrs/config.lua @ 482:0f3b6898078d
suite_aggrs (still ahead of checked in version of dyncall, sorry):
- renaming struct -> aggr
- added knobs to:
* control struct packing
* whether to test immutability of aggr-by-val params
* how to copy aggrs (field by field or via = op (which might do a memcpy and thus copy padding garbage, also))
- some macros to reduce file sizes of generated cases
- setting default misalignment to 1
author | Tassilo Philipp |
---|---|
date | Wed, 16 Mar 2022 16:27:50 +0100 |
parents | bd8f5da2c74b |
children |
line wrap: on
line diff
--- a/test/suite_aggrs/config.lua Wed Mar 02 17:30:51 2022 +0100 +++ b/test/suite_aggrs/config.lua Wed Mar 16 16:27:50 2022 +0100 @@ -3,7 +3,7 @@ maxargs = 16 minaggrfields= 0 -- 0 allows for empty structs/unions maxaggrfields= 12 -maxarraylen = 16 -- note some callconvs pass structs via regs, so using big numbers here will reduce those cases +maxarraylen = 16 -- see 1) arraydice = 40 -- how often to turn a member into an array (1 out of arraydice-times) maxaggrdepth = 3 -- max nesting depth of aggregates, 1 = no nesting ncases = 400 @@ -20,3 +20,25 @@ -- this heavily favors flat and short/empty aggregates: --types = "csijlpfd{}}}}}}<>>>>>" + + +-- 1) note some callconvs pass structs via regs, so using big numbers here will +-- reduce those cases; however special alignment rules are specified in some +-- ABIs for bigger arrays, which is also worth testing + + +-- user config for mk-cases.lua + +-- if true, aggregates are copied via = operator, otherwise field by field +aggrcpsimple = true + +-- if true, aggregate params are modified in called function, to test whether +-- they are passed "by value" (important for verifying by-value semantics for +-- callconvs where hidden pointers are used instead of real copies; aggregate +-- passing implementations must use of temporary copies in those cases) +aggrmutabletest = true + +-- force aggregate packing, 0=off, pos values set fixed packing, neg values +-- set a random power-of-2 packing per aggregate, within [1,abs(aggrpacking)] +aggrpacking = 0 +