Mercurial > pub > dyncall > dyncall
diff test/common/ordered-sig.lua @ 517:f8856e29b512
- tests: made "ordered" signature generation code shareable, and added possibility to specify return types, separately (mainly to include 'void')
author | Tassilo Philipp |
---|---|
date | Mon, 11 Apr 2022 14:50:35 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/common/ordered-sig.lua Mon Apr 11 14:50:35 2022 +0200 @@ -0,0 +1,39 @@ +-- !does not generates sigs with aggregates! + +-- following knobs control generation: + +-- required to be defined by who is using this: +-- ncases +-- types + +-- optional: +-- rtypes (if not set, it'll be 'v'..types) + + +-------------------------------- + +if rtypes == nil then + rtypes = "v"..types +end + +local i +for i = 0, ncases-1 do + local s = "" + local typeindex + local ntypes = #types + local nrtypes = #rtypes + local x = offset+i*step + if x >= nrtypes then + local y = math.floor(x / nrtypes) - 1 + while y >= ntypes do + typeindex = 1 + (y % ntypes) + s = s .. string.sub(types, typeindex, typeindex) + y = math.floor(y / ntypes) - 1 + end + typeindex = 1 + (y % ntypes) + s = s .. string.sub(types, typeindex, typeindex) + end + typeindex = 1 + (x % nrtypes) + io.write(s .. ")" .. string.sub(rtypes, typeindex, typeindex) .. "\n") +end +