annotate test/callback_suite/make-signatures.lua @ 516:1a813b706de4

callback_suite: fixed 'ordered' mode config (was missing first line)
author Tassilo Philipp
date Sun, 10 Apr 2022 22:03:16 +0200
parents 45ac093ca822
children f8856e29b512
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
516
1a813b706de4 callback_suite: fixed 'ordered' mode config (was missing first line)
Tassilo Philipp
parents: 495
diff changeset
15 local nargtypes = #types
1a813b706de4 callback_suite: fixed 'ordered' mode config (was missing first line)
Tassilo Philipp
parents: 495
diff changeset
16 while x >= nargtypes do
1a813b706de4 callback_suite: fixed 'ordered' mode config (was missing first line)
Tassilo Philipp
parents: 495
diff changeset
17 typeindex = 1 + (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
18 signature = signature .. string.sub(types, typeindex, typeindex)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19 x = math.floor( x / nargtypes )
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 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
22 signature = signature .. ")" .. string.sub(types, typeindex, typeindex)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23 return signature
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25
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
26
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 function orderedSignatures()
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28 local i
516
1a813b706de4 callback_suite: fixed 'ordered' mode config (was missing first line)
Tassilo Philipp
parents: 495
diff changeset
29 for i = 0, ncases-1 do
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30 io.write( orderedSignature(offset+i*step) .. "\n" )
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 end
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
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
34
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35 function designedSignatures()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36 for line in io.lines(designfile) do
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37 io.write( line )
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 io.write( "\n" )
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 end
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
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
42
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
43 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
44 randomSignatures()
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45 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
46 orderedSignatures()
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
47 elseif mode == "designed" then
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
48 designedSignatures()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49 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
50 error("'mode' must be 'random', 'ordered' or 'designed'")
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53 io.flush()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54