Mercurial > pub > dyncall > dyncall
comparison 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 |
comparison
equal
deleted
inserted
replaced
481:0fc22b5feac7 | 482:0f3b6898078d |
---|---|
1 -- user config for rand-sig.lua: | 1 -- user config for rand-sig.lua: |
2 minargs = 0 | 2 minargs = 0 |
3 maxargs = 16 | 3 maxargs = 16 |
4 minaggrfields= 0 -- 0 allows for empty structs/unions | 4 minaggrfields= 0 -- 0 allows for empty structs/unions |
5 maxaggrfields= 12 | 5 maxaggrfields= 12 |
6 maxarraylen = 16 -- note some callconvs pass structs via regs, so using big numbers here will reduce those cases | 6 maxarraylen = 16 -- see 1) |
7 arraydice = 40 -- how often to turn a member into an array (1 out of arraydice-times) | 7 arraydice = 40 -- how often to turn a member into an array (1 out of arraydice-times) |
8 maxaggrdepth = 3 -- max nesting depth of aggregates, 1 = no nesting | 8 maxaggrdepth = 3 -- max nesting depth of aggregates, 1 = no nesting |
9 ncases = 400 | 9 ncases = 400 |
10 types = "csijlpfd{}<>" -- {...} for structs, <...> for unions | 10 types = "csijlpfd{}<>" -- {...} for structs, <...> for unions |
11 seed = 2112 | 11 seed = 2112 |
18 -- this heavily favors nested structs, while not having any union: | 18 -- this heavily favors nested structs, while not having any union: |
19 --types = "csijlpfd{{{{{{}" | 19 --types = "csijlpfd{{{{{{}" |
20 | 20 |
21 -- this heavily favors flat and short/empty aggregates: | 21 -- this heavily favors flat and short/empty aggregates: |
22 --types = "csijlpfd{}}}}}}<>>>>>" | 22 --types = "csijlpfd{}}}}}}<>>>>>" |
23 | |
24 | |
25 -- 1) note some callconvs pass structs via regs, so using big numbers here will | |
26 -- reduce those cases; however special alignment rules are specified in some | |
27 -- ABIs for bigger arrays, which is also worth testing | |
28 | |
29 | |
30 -- user config for mk-cases.lua | |
31 | |
32 -- if true, aggregates are copied via = operator, otherwise field by field | |
33 aggrcpsimple = true | |
34 | |
35 -- if true, aggregate params are modified in called function, to test whether | |
36 -- they are passed "by value" (important for verifying by-value semantics for | |
37 -- callconvs where hidden pointers are used instead of real copies; aggregate | |
38 -- passing implementations must use of temporary copies in those cases) | |
39 aggrmutabletest = true | |
40 | |
41 -- force aggregate packing, 0=off, pos values set fixed packing, neg values | |
42 -- set a random power-of-2 packing per aggregate, within [1,abs(aggrpacking)] | |
43 aggrpacking = 0 | |
44 |