comparison test/callback_suite_aggrs/mk-cases.lua @ 622:e30f3a5453d4

- cosmetics, missing require"math" in test case gen
author Tassilo Philipp
date Fri, 28 Oct 2022 12:14:15 +0200
parents 1b1abed0ea32
children d28b09fa2ff9
comparison
equal deleted inserted replaced
621:2536413edfd8 622:e30f3a5453d4
1 require "config" 1 require "config"
2 require"math"
2 3
3 -- use shared helpers to generate cases 4 -- use shared helpers to generate cases
4 package.path = '../common/?.lua;' .. package.path 5 package.path = '../common/?.lua;' .. package.path
5 require"mk-cases" 6 require"mk-cases"
7
6 8
7 9
8 -- returns: generated case str, num args; accumulates unique idx => aggr-sig in 10 -- returns: generated case str, num args; accumulates unique idx => aggr-sig in
9 -- aggrs (sequentially) and aggr-sig => {body,name} in seen_aggrs (depth first 11 -- aggrs (sequentially) and aggr-sig => {body,name} in seen_aggrs (depth first
10 -- for nested aggrs, so sub-aggrs conveniently precede parents) 12 -- for nested aggrs, so sub-aggrs conveniently precede parents)
42 if ch == '}' or ch == '>' then 44 if ch == '}' or ch == '>' then
43 -- only add unseen aggregates, key is aggr sig, val is body and name 45 -- only add unseen aggregates, key is aggr sig, val is body and name
44 if seen_aggrs[aggr_sig[n_nest]] == nil then 46 if seen_aggrs[aggr_sig[n_nest]] == nil then
45 aggrs[#aggrs+1] = aggr_sig[n_nest] 47 aggrs[#aggrs+1] = aggr_sig[n_nest]
46 if ch == '}' then ch = 'struct ' else ch = 'union ' end 48 if ch == '}' then ch = 'struct ' else ch = 'union ' end
47 ch = ch..'A'..#aggrs 49 ch = ch..'A'..#aggrs
48 seen_aggrs[aggr_sig[n_nest]] = { aggr[n_nest], ch } 50 seen_aggrs[aggr_sig[n_nest]] = { aggr[n_nest], ch }
49 end 51 end
50 ch = seen_aggrs[aggr_sig[n_nest]][2] 52 ch = seen_aggrs[aggr_sig[n_nest]][2]
51 53
52 n_nest = n_nest - 1 54 n_nest = n_nest - 1
107 local seen_aggrs = { } 109 local seen_aggrs = { }
108 local max_numargs = 0 110 local max_numargs = 0
109 111
110 for line in io.lines() do 112 for line in io.lines() do
111 local sig = trim(line) 113 local sig = trim(line)
112 local c, n = mkcase(lineno, sig, aggrs, seen_aggrs) 114 local c, n = mkcase(lineno, sig, aggrs, seen_aggrs)
113 cases = cases..c 115 cases = cases..c
114 max_numargs = math.max(max_numargs, n) 116 max_numargs = math.max(max_numargs, n)
115 sigtab[#sigtab+1] = sig 117 sigtab[#sigtab+1] = sig
116 lineno = lineno + 1 118 lineno = lineno + 1
117 end 119 end