Mercurial > pub > dyncall > dyncall
diff test/call_suite_aggrs/mk-cases.lua @ 512:4d0541bf9b38
- sharing some test case gen code
author | Tassilo Philipp |
---|---|
date | Sun, 10 Apr 2022 15:51:00 +0200 |
parents | f0080b53635d |
children | 01f928eb9584 |
line wrap: on
line diff
--- a/test/call_suite_aggrs/mk-cases.lua Sat Apr 09 23:48:01 2022 +0200 +++ b/test/call_suite_aggrs/mk-cases.lua Sun Apr 10 15:51:00 2022 +0200 @@ -110,23 +110,10 @@ return table.concat(h,"")..table.concat(t,"") end -function mkfuntab(n) - local s = { "funptr G_funtab[] = {\n"} - for i = 0, n-1 do - s[#s+1] = "\t(funptr)&f"..i..",\n" - end - s[#s+1] = "};\n" - return table.concat(s,"") -end +-- use shared helpers to generate cases +package.path = '../common/?.lua;' .. package.path +require"mk-cases" -function mksigtab(sigs) - local s = { "const char * G_sigtab[] = {\n"} - for k,v in pairs(sigs) do - s[#s+1] = '\t"'..v..'",\n' - end - s[#s+1] = "};\n" - return table.concat(s,"") -end function split_array_decl(s) local name = s @@ -243,8 +230,8 @@ end io.write(cases) - io.write(mkfuntab(lineno)) - io.write(mksigtab(sigtab)) + io.write(mkfuntab(lineno, 'f', 'funptr', 'G_funtab', true)) + io.write(mksigtab(sigtab, '', 'G_sigtab')) io.write('const char* G_agg_sigs[] = {\n\t"'..table.concat(agg_sigs, '",\n\t"')..'"\n};\n') io.write('int G_agg_sizes[] = {\n\t'..table.concat(agg_sizes, ',\n\t')..'\n};\n') io.write('funptr G_agg_touchdcstfuncs[] = {'..string.sub(table.concat(agg_names, ',\n\t(funptr)&f_touchdcst'),2)..'\n};\n')