The S/PHI/nX testbed

The S/PHI/nX testbed allows to check for basic functionality of the compiled programs after building. It can be found in the sphinx/testbed folder. Running the testbed requires GNU make, which is the default make on most Unix systems.


cd sphinx/testbed
./configure --with-sxdir=BUILD/PATH/TO/BE/CHECKED

The configure line can be omitted if the build to be checked is ../src (standard S/PHI/nX user build). When debug and release mode have been compiled, typical choices for BUILD/PATH/TO/BE/CHECKED will be ../debug or ../release .

Running the testbed

The testbed can be run with

make level1 level2

On multi-processor machines, parallel make ( make -j N ) is possible; where N is the number of processors. Level 1 checks are typically quick to run. Level 2 checks may be slow, in particular by the debug mode. The two levels can be run independently.

It is also possible to run individual tests via

make -C TO_BE_TESTED run


Reports are generated as a set of html pages in the report/ folder via

make reports

Parallel make is not possible.

The report can then be viewed with your favorite web browser, e.g.

firefox report/index.html

Individual test reports are generated via

make -C TO_BE_TESTED report

The test report will be attached to the end of the report/index.html file. Note that for technical reasons, graphs from previous test failures will be included in the new report if the report/ folder has not been cleaned.


If some tests fail, this need not mean that the code is broken. We have not spent particular efforts in developing a reliable test metrics. Typically, one should look at the detailed analysis. Differences in the number of steps and small differences in energy may result from hard-ware and compilation-dependent numerical noise. Dramatic deterioration of the convergence behavior, however, is a strong hint for a serious problem.

Some tests fail also if the necessary utility programs are not in the search path (e.g. perl, ncdump, etc.).

If in doubt, contact the SPHInX developers


The testbed can be cleaned with

make cleanall

Individual tests can be cleaned via

make -C TO_BE_TESTED clean

This does not clean the corresponding report.

Updated by Redmine Admin over 5 years ago · 6 revisions