1 | /*
|
---|
2 | * Project: MoleCuilder
|
---|
3 | * Description: creates and alters molecular systems
|
---|
4 | * Copyright (C) 2010 University of Bonn. All rights reserved.
|
---|
5 | * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
|
---|
6 | */
|
---|
7 |
|
---|
8 | /**
|
---|
9 | * \file code-tests.dox
|
---|
10 | *
|
---|
11 | * Created on: Oct 28, 2011
|
---|
12 | * Author: heber
|
---|
13 | */
|
---|
14 |
|
---|
15 |
|
---|
16 | /**
|
---|
17 | * \page codetest "Code tests"
|
---|
18 | *
|
---|
19 | * Code tests enforce certain principles which the programmer must follow.
|
---|
20 | *
|
---|
21 | * At this moment these are:
|
---|
22 | * -# Every .cpp files must include \b config.h and \b CodePatterns/MemDebug.hpp
|
---|
23 | * -# Every .hpp files must include \b config.h
|
---|
24 | * -# Every .dox file contains a (correctly formatted: YYYY-MM-DD) date stamp.
|
---|
25 | *
|
---|
26 | * These make sure that the memory debugger is catching every movement on the
|
---|
27 | * heap and that every module knows about the behavior controling \e #define's that
|
---|
28 | * are checked by autoconf and written to \b config.h in the build directory. And
|
---|
29 | * also that for every documentation file it is known when it was current.
|
---|
30 | *
|
---|
31 | * \section codetest-structure Directory structure
|
---|
32 | *
|
---|
33 | * The code tests are contained in \b tests/CodeChecks. Therein are all test
|
---|
34 | * scripts gathered that use autotest (http://www.gnu.org/s/hello/manual/autoconf/Using-Autotest.html#Using-Autotest).
|
---|
35 | * Mostly, these look through files
|
---|
36 | *
|
---|
37 | * \section codetest-launch-all Launching all tests
|
---|
38 | *
|
---|
39 | * In order to launch all tests, simply do:
|
---|
40 | * -# Enter \b tests/CodeChecks in your build directory
|
---|
41 | * -# Run
|
---|
42 | * \code make check \endcode
|
---|
43 | * there
|
---|
44 | *
|
---|
45 | * \section codetest-launch-some Launching some tests
|
---|
46 | *
|
---|
47 | * Launching a single or just some of the tests is only a little bit more
|
---|
48 | * complicated. Proceed as follows:
|
---|
49 | * -# Enter \b tests/CodeChecks in your build directory
|
---|
50 | * -# Run
|
---|
51 | * \code ../../../tests/CodeChecks/testsuite <option> AUTOTEST_PATH="<buildpath>/src" \endcode,
|
---|
52 | * where \a <option> is explained in the subsections below and \a <buildpath> is
|
---|
53 | * the build path (i.e. the variable \a AUTOTEST_PATH should contain the path to
|
---|
54 | * the executable).
|
---|
55 | *
|
---|
56 | * \subsection regressiontest-launch-by-number ... by number
|
---|
57 | *
|
---|
58 | * Tests can be launched by specifying their test number, e.g. then \a <option>
|
---|
59 | * might be \a 1 or \a 1-2 or just nothing for all of them.
|
---|
60 | *
|
---|
61 | * \subsection regressiontest-launch-by-keyword .. by keyword
|
---|
62 | *
|
---|
63 | * Tests may as well be launched by some keywords, e.g. each code check has
|
---|
64 | * a specific keyword which is given via \b AT_KEYWORD directive of Autotest.
|
---|
65 | * I.e. we may launch the test on \b config.h presence via the \a <option>
|
---|
66 | * \a -k \a config_h. Also multiple keywords may be given.
|
---|
67 | *
|
---|
68 | * \section codetest-results Inspecting results
|
---|
69 | *
|
---|
70 | * The testsuite can be launched with the additional option of \a -d which leaves the
|
---|
71 | * directory of the test present even though the test has passed for inspection.
|
---|
72 | *
|
---|
73 | * If a test fails, in whatever way it was launched, will leave in the build directory
|
---|
74 | * a folder \b tests/CodeChecks/testsuite.dir/<nr> where \a <nr> is the number of the
|
---|
75 | * test (padded maybe with some zeros).
|
---|
76 | *
|
---|
77 | * In the current state tests will fail because one file does not include \b
|
---|
78 | * config.h or \b MemDebug.hpp. Hence, check the testsuite's log to get the file
|
---|
79 | * name of the culprit at its very bottom.
|
---|
80 | *
|
---|
81 | * \section unittest-add Adding new tests
|
---|
82 | *
|
---|
83 | * \attention Name convention of files, (no spaces, use underscore) e.g.
|
---|
84 | * \b testsuite-config_h.at
|
---|
85 | * - the test script file should be called as follows:
|
---|
86 | * -# testsuite-...
|
---|
87 | * -# followed by the construct that is tested.
|
---|
88 | *
|
---|
89 | * In order to add a new test, you have to do the following:
|
---|
90 | * -# Add a new \b testsuite-....at script to the folder \b tests/CodeChecks
|
---|
91 | * (have a look at the present ones and see above for help on the commands
|
---|
92 | * recognized by Autotest. \e Mind \e giving it a suitable \e keyword!).
|
---|
93 | * -# Add the file to Makefile.am such that the testsuite is re-created when
|
---|
94 | * you change the test script.
|
---|
95 | * -# Add the file as an \e m4_include directive to testsuite.at.
|
---|
96 | *
|
---|
97 | *
|
---|
98 | * \date 2011-10-31
|
---|
99 | *
|
---|
100 | */
|
---|