source: src/documentation/tests/code-tests.dox@ 936a02

Action_Thermostats Add_AtomRandomPerturbation Add_FitFragmentPartialChargesAction Add_RotateAroundBondAction Add_SelectAtomByNameAction Added_ParseSaveFragmentResults AddingActions_SaveParseParticleParameters Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_ParticleName_to_Atom Adding_StructOpt_integration_tests AtomFragments Automaking_mpqc_open AutomationFragmentation_failures Candidate_v1.5.4 Candidate_v1.6.0 Candidate_v1.6.1 ChangeBugEmailaddress ChangingTestPorts ChemicalSpaceEvaluator CombiningParticlePotentialParsing Combining_Subpackages Debian_Package_split Debian_package_split_molecuildergui_only Disabling_MemDebug Docu_Python_wait EmpiricalPotential_contain_HomologyGraph EmpiricalPotential_contain_HomologyGraph_documentation Enable_parallel_make_install Enhance_userguide Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph FitPartialCharges_GlobalError Fix_BoundInBox_CenterInBox_MoleculeActions Fix_ChargeSampling_PBC Fix_ChronosMutex Fix_FitPartialCharges Fix_FitPotential_needs_atomicnumbers Fix_ForceAnnealing Fix_IndependentFragmentGrids Fix_ParseParticles Fix_ParseParticles_split_forward_backward_Actions Fix_PopActions Fix_QtFragmentList_sorted_selection Fix_Restrictedkeyset_FragmentMolecule Fix_StatusMsg Fix_StepWorldTime_single_argument Fix_Verbose_Codepatterns Fix_fitting_potentials Fixes ForceAnnealing_goodresults ForceAnnealing_oldresults ForceAnnealing_tocheck ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion FragmentAction_writes_AtomFragments FragmentMolecule_checks_bonddegrees GeometryObjects Gui_Fixes Gui_displays_atomic_force_velocity ImplicitCharges IndependentFragmentGrids IndependentFragmentGrids_IndividualZeroInstances IndependentFragmentGrids_IntegrationTest IndependentFragmentGrids_Sole_NN_Calculation JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool JobMarket_unresolvable_hostname_fix MoreRobust_FragmentAutomation ODR_violation_mpqc_open PartialCharges_OrthogonalSummation PdbParser_setsAtomName PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks Rewrite_FitPartialCharges RotateToPrincipalAxisSystem_UndoRedo SaturateAtoms_findBestMatching SaturateAtoms_singleDegree StoppableMakroAction Subpackage_CodePatterns Subpackage_JobMarket Subpackage_LinearAlgebra Subpackage_levmar Subpackage_mpqc_open Subpackage_vmg Switchable_LogView ThirdParty_MPQC_rebuilt_buildsystem TrajectoryDependenant_MaxOrder TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps TremoloParser_setsAtomName Ubuntu_1604_changes stable
Last change on this file since 936a02 was 750cff, checked in by Frederik Heber <heber@…>, 13 years ago

HUGE: Update on documenation.

  • a general skeleton of the documentation is now in place with all the major components of MoleCuilder explained to some extent.
  • some information has been transfered from TRAC (e.g. install procecure) into this doxygen documentation where it is general and not specific to the situation at our institute.
  • Property mode set to 100644
File size: 3.9 KB
Line 
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 */
Note: See TracBrowser for help on using the repository browser.