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