# HG changeset patch # User Tassilo Philipp # Date 1649598660 -7200 # Node ID 4d0541bf9b385b8ac2e90bf42350ea7a7e7f096e # Parent a0c51f34023a4a7d9c9b5b8f025ac7731cad2826 - sharing some test case gen code diff -r a0c51f34023a -r 4d0541bf9b38 test/call_suite/mk-cases.lua --- a/test/call_suite/mk-cases.lua Sat Apr 09 23:48:01 2022 +0200 +++ b/test/call_suite/mk-cases.lua Sun Apr 10 15:51:00 2022 +0200 @@ -22,23 +22,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 mkall() local lineno = 0 @@ -49,8 +36,8 @@ sigtab[#sigtab+1] = sig lineno = lineno + 1 end - 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("int G_maxargs = "..maxargs..";\n") end diff -r a0c51f34023a -r 4d0541bf9b38 test/call_suite_aggrs/mk-cases.lua --- 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') diff -r a0c51f34023a -r 4d0541bf9b38 test/common/mk-cases.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/common/mk-cases.lua Sun Apr 10 15:51:00 2022 +0200 @@ -0,0 +1,23 @@ +function mkfuntab(n, prefix, t, array_name, with_cast) + local s = { t.." "..array_name.."[] = {\n"} + local cast = '' + if with_cast == true then + cast = '('..t..')' + end + for i = 0, n-1 do + s[#s+1] = "\t"..cast.."&"..prefix..i..",\n" + end + s[#s+1] = "};\n" + return table.concat(s,"") +end + +-- @@@ sigprefix should be added by generators, not here +function mksigtab(sigs, sigprefix, array_name) + local s = { "const char * "..array_name.."[] = {\n"} + for k,v in pairs(sigs) do + s[#s+1] = '\t"'..sigprefix..v..'",\n' + end + s[#s+1] = "};\n" + return table.concat(s,"") +end +