Mercurial > pub > dyncall > dyncall
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 |
rev | line source |
---|---|
0 | 1 require "config" |
2 require "math" | |
3 require "string" | |
4 | |
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 | 9 end |
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 | 12 function orderedSignature(x) |
13 local signature = "" | |
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 | 19 x = math.floor( x / nargtypes ) |
20 end | |
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 | 23 return signature |
24 end | |
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 | 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 | 30 io.write( orderedSignature(offset+i*step) .. "\n" ) |
31 end | |
32 end | |
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 | 35 function designedSignatures() |
36 for line in io.lines(designfile) do | |
37 io.write( line ) | |
38 io.write( "\n" ) | |
39 end | |
40 end | |
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 | 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 | 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 | 47 elseif mode == "designed" then |
48 designedSignatures() | |
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 | 51 end |
52 | |
53 io.flush() | |
54 |