Mercurial > pub > dyncall > dyncall
view doc/manual/manual_devel.tex @ 0:3e629dc19168
initial from svn dyncall-1745
author | Daniel Adler |
---|---|
date | Thu, 19 Mar 2015 22:24:28 +0100 |
parents | |
children | 7ca46969e0ad |
line wrap: on
line source
%////////////////////////////////////////////////////////////////////////////// % % 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 README -- quickstart doc 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}