0
|
1 %//////////////////////////////////////////////////////////////////////////////
|
|
2 %
|
|
3 % Copyright (c) 2007,2009 Daniel Adler <dadler@uni-goettingen.de>,
|
|
4 % Tassilo Philipp <tphilipp@potion-studios.com>
|
|
5 %
|
|
6 % Permission to use, copy, modify, and distribute this software for any
|
|
7 % purpose with or without fee is hereby granted, provided that the above
|
|
8 % copyright notice and this permission notice appear in all copies.
|
|
9 %
|
|
10 % THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
11 % WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
12 % MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
13 % ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
14 % WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
15 % ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
16 % OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
17 %
|
|
18 %//////////////////////////////////////////////////////////////////////////////
|
|
19
|
467
|
20 \clearpage
|
0
|
21 \section{Developers}
|
|
22
|
|
23 \subsection{Noteworthy files in the project root}
|
76
|
24 \begin{tabular*}{0.75\textwidth}{ll}
|
|
25 {\tt configure} & pre-make configuration tool (unix-shell) \\
|
|
26 {\tt configure.bat} & pre-nmake configuration tool (windows batch) \\
|
|
27 {\tt configure.rc} & pre-mk configuration tool (Plan 9's rc) \\
|
|
28 {\tt CMakeLists.txt} & top-level project information for CMake \\
|
|
29 {\tt Makefile} & GNU/BSD makefile (output of ./configure) \\
|
|
30 {\tt Nmakefile} & MS nmake makefile \\
|
|
31 {\tt mkfile} & Plan 9 mkfile \\
|
|
32 {\tt LICENSE} & license information \\
|
|
33 {\tt README} & quickstart doc \\
|
|
34 {\tt buildsys/} & build system details and extras \\
|
|
35 {\tt doc/} & platform specific readme's and manual \\
|
|
36 {\tt dyncall/} & dyncall library source code \\
|
|
37 {\tt dyncallback/} & dyncallback library source code \\
|
|
38 {\tt dynload/} & dynload library source code \\
|
|
39 {\tt test/} & test suites \\
|
|
40 \end{tabular*}
|
0
|
41
|
|
42
|
|
43 \subsection{Test suites}
|
|
44
|
|
45 \begin{description}
|
|
46
|
|
47 \item [plain]
|
467
|
48 Simple, identity, mostly unary function calls for all supported return types
|
|
49 and calling conventions. This is not an extensive test suite, but a good place
|
|
50 to manually test certain cases.
|
0
|
51
|
|
52 \item [plain\_c++]
|
467
|
53 Similar to plain, but for C++ thiscalls (in different forms and fashion, with
|
|
54 aggregates, vararg methots, on x86 with GNU and MS calling convention, etc.).
|
0
|
55
|
|
56 \item [suite]
|
|
57 All combinations of parameter types and counts are tested on void function
|
467
|
58 calls. A Python script ({\tt mkcase.py}) generates the tests up to
|
0
|
59 an upper MAXARG limit.
|
|
60
|
|
61 \item [suite\_floats]
|
|
62 Based on suite. Test double/float variants with up to 10 arguments.
|
|
63
|
490
|
64 \item [call\_suite\_aggrs]
|
467
|
65 Tests passing and returning aggregates by value (struct/union and array members).
|
|
66 Test cases can be designed in a signature-style format (and random ones generated
|
|
67 via a Lua script).
|
|
68
|
0
|
69 \item [suite\_x86win32std]
|
|
70 All combinations of parameter types and counts are tested on {\tt \_\_stdcall}
|
467
|
71 void function calls. A Python script ({\tt mkcase.py}) generates
|
0
|
72 the tests up to an upper MAXARG limit. This is a x86/Windows only test.
|
|
73
|
|
74 \item [suite\_x86win32fast]
|
|
75 All combinations of parameter types and counts are tested on {\tt \_\_fastcall}
|
|
76 (MS or GNU, depending on the build tool) void function calls.
|
467
|
77 A Python script ({\tt mkcase.py}) generates the tests up to
|
0
|
78 an upper MAXARG limit. This is a x86/Windows only test.
|
|
79
|
|
80 \item [ellipsis]
|
|
81 All combinations of parameter types and counts are tested on void ellipsis
|
467
|
82 (vararg) function calls. A Python script ({\tt mkcase.py}) generates the
|
0
|
83 tests up to an upper MAXARG limit.
|
|
84
|
|
85 \item [suite2]
|
|
86 Designed mass test suite for void function calls.
|
|
87 Tests individual void functions with a varying count of arguments and type.
|
|
88
|
|
89 \item [suite2\_win32std]
|
|
90 Designed mass test suite for {\tt \_\_stdcall} void function calls.
|
|
91 Tests individual void functions with a varying count of arguments and type.
|
|
92 This is a x86/Windows only test.
|
|
93
|
|
94 \item [suite2\_win32fast]
|
|
95 Designed mass test suite for {\tt \_\_fastcall} (MS or GNU, depending on the build tool) void function calls.
|
|
96 Tests individual void functions with a varying count of arguments and type.
|
|
97 This is a x86/Windows only test.
|
|
98
|
|
99 \item [suite3]
|
|
100 All combinations of parameter types integer, long long, float and double and
|
|
101 counts are tested on void function calls.
|
|
102 A script written in Python ({\tt mkcase.py}) generates the tests up to
|
|
103 an upper MAXARG limit.
|
|
104 This is a modified version of suite.
|
|
105
|
|
106 \item [call\_suite]
|
|
107 General purpose test suite combining aspects from all others suites (usually enough for
|
|
108 testing non-callback calls).
|
467
|
109 Test cases can be designed in a signature-style format (and random ones generated
|
|
110 via a Lua script).
|
0
|
111
|
|
112 \item [callf]
|
467
|
113 Tests the \emph{formatted call/arg} \product{dyncall} C API. Tries to cover all uses of
|
|
114 that API (e.g. calling convention mode switches, aggregates, ...) but is not extensive.
|
0
|
115
|
|
116 \item [malloc\_wx]
|
|
117 Tests \emph{writable and executable memory allocation} used by the
|
|
118 \product{dyncallback} C API.
|
|
119
|
|
120 \item [thunk]
|
467
|
121 Tests only the \emph{callback} thunks for the \product{dyncallback} C API.
|
0
|
122
|
|
123 \item [callback\_plain]
|
|
124 Simple callback function test (useful for easy debugging of new ports).
|
|
125
|
|
126 \item [callback\_suite]
|
|
127 Mass test suite for callback function testing. Uses random function argument
|
|
128 number and type.
|
467
|
129 A Lua script the tests up to a given number of calls and type combinations.
|
0
|
130
|
|
131 \item [resolv\_self]
|
|
132 Test for dynload library to resolve symbols from application image itself.
|
|
133
|
|
134 \end{description}
|
|
135
|