annotate test/common/mk-cases.lua @ 522:f7fec6699e21

- test code generator code: var abstraction
author Tassilo Philipp
date Wed, 13 Apr 2022 10:19:49 +0200
parents a2de1d0a73f3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
514
01f928eb9584 - more test code generator code sharing
Tassilo Philipp
parents: 512
diff changeset
1 function trim(s)
01f928eb9584 - more test code generator code sharing
Tassilo Philipp
parents: 512
diff changeset
2 return s:gsub("^%s+",""):gsub("%s+$","")
01f928eb9584 - more test code generator code sharing
Tassilo Philipp
parents: 512
diff changeset
3 end
01f928eb9584 - more test code generator code sharing
Tassilo Philipp
parents: 512
diff changeset
4
521
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
5
519
99819b874bac test/call_suite_aggrs:
Tassilo Philipp
parents: 514
diff changeset
6 -- parse array notation, e.g. returns "a", 4 for "a[4]"
99819b874bac test/call_suite_aggrs:
Tassilo Philipp
parents: 514
diff changeset
7 function split_array_decl(s)
99819b874bac test/call_suite_aggrs:
Tassilo Philipp
parents: 514
diff changeset
8 local name = s
99819b874bac test/call_suite_aggrs:
Tassilo Philipp
parents: 514
diff changeset
9 local n = nil -- not an array
99819b874bac test/call_suite_aggrs:
Tassilo Philipp
parents: 514
diff changeset
10 local i = s:find('%[')
99819b874bac test/call_suite_aggrs:
Tassilo Philipp
parents: 514
diff changeset
11 if i ~= nil then
99819b874bac test/call_suite_aggrs:
Tassilo Philipp
parents: 514
diff changeset
12 name = name:sub(1, i-1)
99819b874bac test/call_suite_aggrs:
Tassilo Philipp
parents: 514
diff changeset
13 n = tonumber(s:sub(i):match('[0123456789]+'))
99819b874bac test/call_suite_aggrs:
Tassilo Philipp
parents: 514
diff changeset
14 end
99819b874bac test/call_suite_aggrs:
Tassilo Philipp
parents: 514
diff changeset
15 return name, n
99819b874bac test/call_suite_aggrs:
Tassilo Philipp
parents: 514
diff changeset
16 end
99819b874bac test/call_suite_aggrs:
Tassilo Philipp
parents: 514
diff changeset
17
521
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
18
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
19 -- returns sig with return type first, and no ')' separator, e.g.:
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
20 -- 'ijf)v' -> 'vijf'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
21 -- '){ii}' -> '{ii}'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
22 function put_sig_rtype_first(sig)
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
23 return sig:sub(sig:find(')')+1,-1)..sig:sub(1,sig:find(')')-1)
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
24 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
25
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
26
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
27 -- aggrs: (sequential) idx => aggr-sig
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
28 -- seen_aggrs: aggr-sig => {{type0, name0, ...}, aggr_name}
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
29 -- packing: 0=off, pos values set fixed packing, neg values set a random
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
30 -- power-of-2 packing per aggregate, within [1,abs(aggrpacking)]
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
31 -- packing_seed: seed for random packing (if used)
522
f7fec6699e21 - test code generator code: var abstraction
Tassilo Philipp
parents: 521
diff changeset
32 -- cpsimple: whether or not to copy aggregates via '=' or field by field
521
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
33 function mkaggrdefs(aggrs, seen_aggrs, packing, packingseed)
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
34 local agg_defs = { }
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
35 local agg_sizes = { }
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
36 local agg_sigs = { }
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
37 local agg_names = { }
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
38
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
39 math.randomseed(packingseed)
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
40
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
41 for a = 1, #aggrs do
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
42 local k = aggrs[a]
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
43 local v = seen_aggrs[k]
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
44 local am = v[1] -- aggregate members
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
45 local at = v[2] -- aggregate type
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
46 local an = at:match('A.*') -- aggregate name (w/o struct or union)
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
47
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
48 -- aggregate def
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
49 aggr_def = '/* '..k..' */\n'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
50 if packing ~= 0 then
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
51 local pack = packing
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
52 if pack < 0 then
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
53 pack = math.floor(math.pow(2,math.floor(math.log(math.random(math.abs(pack)),2))))
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
54 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
55 aggr_def = aggr_def..'#pragma pack(push,'..pack..')\n'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
56 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
57
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
58 aggr_def = aggr_def..at..' { '
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
59 for i = 1, #am, 2 do
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
60 aggr_def = aggr_def..am[i]..' '..am[i+1]..'; '
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
61 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
62 aggr_def = aggr_def..'};\n'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
63
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
64 if packing ~= 0 then
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
65 aggr_def = aggr_def..'#pragma pack(pop)\n'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
66 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
67
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
68 -- aggregate cp and cmp funcs
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
69 s = {
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
70 'void f_cp'..an..'('..at..' *x, const '..at..' *y) { ',
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
71 'int f_cmp'..an..'(const '..at..' *x, const '..at..' *y) { return '
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
72 }
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
73 o = { '=', '==', 'f_cp', 'f_cmp', '; ', ' && ', '', '1' }
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
74 for t = 1, 2 do
522
f7fec6699e21 - test code generator code: var abstraction
Tassilo Philipp
parents: 521
diff changeset
75 if t ~= 1 or cpsimple == false then
521
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
76 aggr_def = aggr_def..s[t]
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
77 local b = {}
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
78 for i = 1, #am, 2 do
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
79 local mn, mc = split_array_decl(am[i+1]) -- aggr member name and (array) count
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
80 local fmt = ''
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
81 if mc ~= nil then -- need array suffixes?
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
82 fmt = '[%d]'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
83 else
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
84 mc = 1
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
85 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
86
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
87 for j = 1, mc do
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
88 name = mn..fmt:format(j-1)
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
89 amn = am[i]:match('A.*')
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
90 if amn then -- is aggr?
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
91 b[#b+1] = o[t+2]..amn..'(&x->'..name..', &y->'..name..')'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
92 else
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
93 b[#b+1] = 'x->'..name..' '..o[t]..' y->'..name
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
94 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
95 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
96 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
97 if #b == 0 then -- to handle empty aggregates
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
98 b[1] = o[t+6]
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
99 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
100 aggr_def = aggr_def..table.concat(b,o[t+4])..'; };\n'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
101 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
102 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
103
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
104 -- write convenient dcNewAggr() helper/wrapper funcs
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
105 aggr_def = aggr_def..'DCaggr* f_touch'..an..'() {\n\tstatic DCaggr* a = NULL;\n\tif(!a) {\n\t\ta = dcNewAggr('..(#am>>1)..', sizeof('..at..'));\n\t\t'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
106 for i = 1, #am, 2 do
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
107 local mn, mc = split_array_decl(am[i+1])
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
108 if mc == nil then
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
109 mc = 1
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
110 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
111 amn = am[i]:match('A.*')
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
112 if amn then -- is aggr?
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
113 --aggr_def = aggr_def..'dcAggrField(at, DC_SIGCHAR_AGGREGATE, offsetof('..at..', '..mn..'), '..mc..', f_touch'..amn..'());\n\t\t'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
114 aggr_def = aggr_def.."AFa("..at..','..mn..','..mc..','..amn..')\n\t\t'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
115 else
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
116 --aggr_def = aggr_def.."dcAggrField(at, '"..am[i].."', offsetof("..at..', '..mn..'), '..mc..');\n\t\t'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
117 aggr_def = aggr_def.."AF('"..am[i].."',"..at..','..mn..','..mc..')\n\t\t'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
118 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
119 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
120
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
121 agg_defs [#agg_defs + 1] = aggr_def..'dcCloseAggr(a);\n\t}\n\treturn a;\n};'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
122 agg_sizes[#agg_sizes + 1] = 'sizeof('..at..')'
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
123 agg_sigs [#agg_sigs + 1] = k
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
124 agg_names[#agg_names + 1] = an
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
125 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
126
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
127 return agg_defs, agg_sizes, agg_sigs, agg_names
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
128 end
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
129
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
130
512
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
131 function mkfuntab(n, prefix, t, array_name, with_cast)
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
132 local s = { t.." "..array_name.."[] = {\n"}
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
133 local cast = ''
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
134 if with_cast == true then
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
135 cast = '('..t..')'
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
136 end
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
137 for i = 0, n-1 do
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
138 s[#s+1] = "\t"..cast.."&"..prefix..i..",\n"
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
139 end
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
140 s[#s+1] = "};\n"
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
141 return table.concat(s,"")
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
142 end
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
143
521
a2de1d0a73f3 - more test code generator code sharing/abstraction/simplifications
Tassilo Philipp
parents: 519
diff changeset
144
512
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
145 -- @@@ sigprefix should be added by generators, not here
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
146 function mksigtab(sigs, sigprefix, array_name)
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
147 local s = { "const char * "..array_name.."[] = {\n"}
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
148 for k,v in pairs(sigs) do
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
149 s[#s+1] = '\t"'..sigprefix..v..'",\n'
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
150 end
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
151 s[#s+1] = "};\n"
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
152 return table.concat(s,"")
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
153 end
4d0541bf9b38 - sharing some test case gen code
Tassilo Philipp
parents:
diff changeset
154