annotate test/callback_suite/make-invoke-macros.lua @ 410:7608e34098b0

- cleanups, simplifications, some api clarification, ... - test cases consistency: * return status code depending on test results (for actual conformance tests, not stuff that is not an example or hack to check something, ..) * platform init helper added for some
author Tassilo Philipp
date Tue, 05 Oct 2021 21:53:04 +0200
parents 3e629dc19168
children d8f0e6cecdab
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 if mode == "ordered" then
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 minargs = 0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 local i
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 for i = minargs, maxargs do
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 local line = "#define F" .. i .. "(ID,R"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 local argdef = ""
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 local argset = ""
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 if i > 0 then
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 line = line .. ","
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 local j
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 for j = 0, i-1 do
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 if j > 0 then
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 argdef = argdef .. ","
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 argset = argset .. ","
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 argdef = argdef .. "A" .. j
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19 argset = argset .. "A[" .. j .. "].A" .. j
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 end
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22 line = line .. argdef .. ") void ID(void* addr) { Result.R = ((CONFIG_API R(*)(" .. argdef .. "))addr)(" .. argset .. ");}\n"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23 io.write(line)
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 io.flush()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27