diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/manual/manual_devel.tex	Thu Mar 19 22:24:28 2015 +0100
@@ -0,0 +1,127 @@
+%//////////////////////////////////////////////////////////////////////////////
+%
+% 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}
+