view test/call_suite_aggrs/config.lua @ 606:85b7a117b807

- more statics in test code (this is partly needed on an experimental freebsd sparc64 build where the elf cleanup code crashes for some reason ... it's probably that experimental build, but a good change to do regardless)
author Tassilo Philipp
date Wed, 21 Sep 2022 15:20:58 +0200
parents a2de1d0a73f3
children
line wrap: on
line source

-- user config for rand-sig.lua:
minargs      = 0
maxargs      = 16
minaggrfields= 0    -- 0 allows for empty structs/unions
maxaggrfields= 12
maxarraylen  = 16   -- see *)
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
reqaggrinsig = true -- require that every generated signature has at least one aggregate
ncases       = 400
types        = "BcsijlCSIJLpfd{}<>"  -- types to use; use '{','}' for structs, '<','>' for unions
rtypes       = nil                   -- supported return types (set to nil to use "v"..types)
seed         = 2112

-- *) 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



-- Notes: specify types more than once to increase relative occurance, e.g.:

-- this favors non-aggregate args, especially ints (and also increases avg num of aggregate fields):
--types       = "Bccssiiiiijjllpfd{}"

-- this heavily favors nested structs, while not having any union:
--types       = "Bcsijlpfd{{{{{{}"

-- this heavily favors flat and short/empty aggregates:
--types       = "Bcsijlpfd{}}}}}}<>>>>>"



-- 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
aggrpackingseed = seed