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}
|