Mercurial > pub > dyncall > dyncall
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 |