annotate test/callback_suite/make-signatures.lua @ 495:45ac093ca822

- test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
author Tassilo Philipp
date Mon, 21 Mar 2022 16:50:44 +0100
parents 3e629dc19168
children 1a813b706de4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 require "config"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2 require "math"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 require "string"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5
495
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
6 function randomSignatures()
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
7 package.path = '../common/?.lua;' .. package.path
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
8 require"rand-sig"
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10
495
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
11
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 function orderedSignature(x)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 local signature = ""
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 local typeindex
495
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
15 local nargtypes = string.len(types)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 while true do
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 if x < nargtypes then break end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 typeindex = 1 + math.mod(x, nargtypes)
495
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
19 signature = signature .. string.sub(types, typeindex, typeindex)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 x = math.floor( x / nargtypes )
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22 typeindex = 1 + x
495
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
23 signature = signature .. ")" .. string.sub(types, typeindex, typeindex)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24 return signature
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26
495
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
27
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
28 function orderedSignatures()
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29 local i
495
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
30 for i = 1, ncases do
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 io.write( orderedSignature(offset+i*step) .. "\n" )
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34
495
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
35
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36 function designedSignatures()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37 for line in io.lines(designfile) do
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 io.write( line )
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 io.write( "\n" )
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42
495
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
43
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44 if mode == "random" then
495
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
45 randomSignatures()
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
46 elseif mode == "ordered" then
495
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
47 orderedSignatures()
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
48 elseif mode == "designed" then
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49 designedSignatures()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50 else
495
45ac093ca822 - test/callback_suite: make it use shared random sig generator from call_suite and call_suite_aggrs
Tassilo Philipp
parents: 0
diff changeset
51 error("'mode' must be 'random', 'ordered' or 'designed'")
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54 io.flush()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55