ktest
HPC and Data for Lattice QCD
ktest
ktest is a tool for executing APE hardware and software test suites.
apeNEXT hardware tests
Test for apeNEXT software and hardware can be executed using ktest. Typical invocation of ktest:
ktest -d <path_to_testsuite> -ka -O -nrun +onrun '-board 0 -l7' +board +0
Defined selection keys:
+0, +1, ..., +n, ... | execution time of each test about 10^n minutes |
+node | tests executed on a single node (1x1x1 processors) |
+cube | tests executed on a cube (2x2x2 processors) |
+board | tests executed on board (4x2x2 processors) |
+unit | tests executed on unit (4x2x8 processors) |
+crate | tests executed on crate (4x2x8 processors) |
Test suite snapshots:
Usage
Each can be any of the following:
being a entry file (e.g. source) for the test
chain (optional upper- or lower-case extensions
determine the entry point in the chain)
specifying a directory with a test-list ktest.try
( is first seeked in the import
directory and then in ./)
being a test-list file (with mandatory extension .try)
(each line of a test-list must be either a comment '#',
a shell command '!', or an plus )
Description:
The "test-items" are recursively resolved into "entries".
For each entry the specified "test-chain" (or the adequate
part of it) is executed. The chain consists of a sequence of
configurable "test-steps" (see also ktest -hc).
Each test-step consists of the following actions:
(0) import and check input-files
(1) backup precious files
(2) execute pre-command
(3) execute the test action (via system)
(4) check exit status
(5) execute post-command
(6) check error files
(7) diff reference files
(8) decide failure/success
(9) diff monitor files
(10) save log files
(11) clean-up junk files
(12) decide on continuation of chain
Entry- and data-files for (0) should be in the "import directory"
Diff-files for (7) and (9) should be in the "reference directory"
Usually both directories coincide and contain all relevant files
with upper-case extensions.
General Options: (defaults shown in parenthesis)
-p <dir> change path for executables
-d <dir> change reference+import directory
-i <dir> change import directory
-NNN use input and reference files with numeric suffix -NNN
-#XXX use input and reference files with suffix -XXX
-- use input and reference files without suffix
-s 'X ...' execute test steps X ... in chain (see values below)
-c <file> load description (perl) of configuration form -nd no diffs (diff enabled) -di determine reference dir from import dir (0) -dl determine reference dir from list path (0) -R use only files from import or reference dir -l use local files in ./ by default -L use local files in ./ always -ci continue chain upon import failures -cf continue chain upon execution failures -kf keep failed files -ka keep all files -o -O overwrite existing files (even if not "at home") -q -Q quiet messages (very quiet messages) -E direct all error outputs to STDERR -xf exit on first failure -exit exit and print summary -debug print all debugging messages -skip skip actual test execution +key1 [+key2 ...] execute only tests conditioned by key1 [or key2 ...] Test-Step Options: (configuration dependent) -X enable test-step X in default chain -nX disable test-step X in default chain -oX 'opt' use 'opt' as options for test-step X +oX 'opt' append 'opt' to options for test-step X -bX 'cmd' execute shell 'cmd' (%-expanded) before test-step X -aX 'cmd' execute shell 'cmd' (%-expanded) after test-step X -iX 'files' specify 'files' (%-expanded) to be imported before test-step X +iX 'files' add 'files' (%-expanded) to be imported before test-step X -dX 'cmd' execute 'cmd' for checking difference with references where X denotes any test-step of the following default chain: X Name Action On Entry ----------------------------------------------------- expape expape expape %.exp 0 EXP t tao ktc -s %.zzt 0 ZZT xtc xtc xtc %.zzt 0 ZZT rtc rtc rtc %.zzt 0 ZZT psk psk psk %.jasm 0 JASM j jasm jasm -q %.jasm 0 JASM f flint flint %.basm 0 BASM sf sf krun %.basm 0 BASM dj disjex disjex %.jex -1 JEX mj m2jex m2jex %.mcd 0 MCD r run run %.jex 0 JEX caos caos caos -p %.caos 0 CAOS taco taco taco %.tac 0 TAC exec execute % 0 NONE nlcc nlcc nlcc -S %.c 0 C mpp mpp mpp %.sasm 0 SASM sofan sofan sofan %.masm %.masm0 MASM shaker shaker shaker %.masm 0 MASM dis2nex dis2nex dis2nex %.ncd 0 NCD nrun nrun nrun -errlog -suffix "#" -- %0 MEM srun srun srun -o %.nose-out %.no0 NO vrun vrun vrun -- % # 0 MEM srun-io srun-io io.pl %.dmo 0 DMO vrun-io vrun-io io.pl %.dmo 0 DMO verilog verilog verilog %.dump 0 DUMP csh shell csh %.csh % # 0 CSH perl perl %.pl % 0 PL default default default % 0 DEFAULT