File: manual_devel.tex

package info (click to toggle)
nqp 2014.07-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 23,596 kB
  • ctags: 7,993
  • sloc: ansic: 22,689; java: 20,240; cpp: 4,956; asm: 3,976; perl: 950; python: 267; sh: 245; makefile: 14
file content (126 lines) | stat: -rw-r--r-- 4,957 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
%//////////////////////////////////////////////////////////////////////////////
%
% Copyright (c) 2007,2009 Daniel Adler <dadler@uni-goettingen.de>, 
%                         Tassilo Philipp <tphilipp@potion-studios.com>
%
% Permission to use, copy, modify, and distribute this software for any
% purpose with or without fee is hereby granted, provided that the above
% copyright notice and this permission notice appear in all copies.
%
% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
%
%//////////////////////////////////////////////////////////////////////////////

\newpage
\section{Developers}

\subsection{Noteworthy files in the project root}
\begin{verbatim}
configure     -- pre-make configuration tool (unix-shell)
configure.bat -- pre-nmake configuration tool (windows batch)
configure.rc  -- pre-mk configuration tool (Plan 9's rc)
CMakeLists.txt-- top-level project information for CMake
Makefile      -- GNU/BSD makefile (output of ./configure)
Nmakefile     -- MS nmake makefile
mkfile        -- Plan 9 mkfile
LICENSE       -- license information
buildsys/     -- build system details and extras
doc/          -- platform specific readme's and manual
dyncall/      -- dyncall library source code
dyncallback/  -- dyncallback library source code
dynload/      -- dynload library source code
test/         -- test suites
\end{verbatim}


\subsection{Test suites}

\begin{description}

\item [plain] 
Simple, identity, unary function calls for all supported return types and
calling conventions.

\item [plain\_c++] 
Similar to plain, but for C++ thiscalls (GNU and MS calling convention).

\item [suite] 
All combinations of parameter types and counts are tested on void function
calls. A script written in Python ({\tt mkcase.py}) generates the tests up to
an upper MAXARG limit.

\item [suite\_floats]
Based on suite. Test double/float variants with up to 10 arguments.

\item [suite\_x86win32std] 
All combinations of parameter types and counts are tested on {\tt \_\_stdcall}
void function calls. A script written in Python ({\tt mkcase.py}) generates
the tests up to an upper MAXARG limit. This is a x86/Windows only test.

\item [suite\_x86win32fast] 
All combinations of parameter types and counts are tested on {\tt \_\_fastcall}
(MS or GNU, depending on the build tool) void function calls.
A script written in Python ({\tt mkcase.py}) generates the tests up to
an upper MAXARG limit. This is a x86/Windows only test.

\item [ellipsis]
All combinations of parameter types and counts are tested on void ellipsis 
function calls. A script written in Python ({\tt mkcase.py}) generates the 
tests up to an upper MAXARG limit.

\item [suite2]
Designed mass test suite for void function calls.
Tests individual void functions with a varying count of arguments and type.

\item [suite2\_win32std]
Designed mass test suite for {\tt \_\_stdcall} void function calls.
Tests individual void functions with a varying count of arguments and type.
This is a x86/Windows only test.

\item [suite2\_win32fast]
Designed mass test suite for {\tt \_\_fastcall} (MS or GNU, depending on the build tool) void function calls.
Tests individual void functions with a varying count of arguments and type.
This is a x86/Windows only test.

\item [suite3]
All combinations of parameter types integer, long long, float and double and
counts are tested on void function calls.
A script written in Python ({\tt mkcase.py}) generates the tests up to
an upper MAXARG limit.
This is a modified version of suite.

\item [call\_suite]
General purpose test suite combining aspects from all others suites (usually enough for
testing non-callback calls).
A script written in Lua generates the tests.

\item [callf]
Tests the \emph{formatted call} \product{dyncall} C API.

\item [malloc\_wx]
Tests \emph{writable and executable memory allocation} used by the
\product{dyncallback} C API.

\item [thunk]
Tests \emph{callbacks} for the \product{dyncallback} C API.

\item [callback\_plain]
Simple callback function test (useful for easy debugging of new ports).

\item [callback\_suite]
Mass test suite for callback function testing. Uses random function argument
number and type.
A script written in Lua generates the tests up to a given number of calls and
type combinations.

\item [resolv\_self]
Test for dynload library to resolve symbols from application image itself.

\end{description}