Flash-X Testing Framework (FlashXTest)
Testing and maintainence of Flash-X source code is implemented using the
FlashXTest python and command line utility. The utility can be installed directly from its repository.
After cloning the repository type,
in the root folder and it will install
FlashXTest in your python environment and copy the command line script to your
FlashXTest won’t mainpulate your environment
PATH variable so you may have to manually update your
~/.bashrc by adding
Once this is done you can type
flashxtest --help in your terminal and should be able to see following
Usage: flashxtest [OPTIONS] COMMAND [ARGS]...
Python CLI for Flash-X Testing Utility
--help Show this message and exit.
add Add a test from simulation directory
init Initialize test configuration
remove Remove a test from test suite
run Run a list of tests from xml file
view Launch webviewer
To setup your local testing infrastructure either create an empty folder in your desired location or go directly to your
Flash-X root directory and run
flashxtest init -z <path-to-Flash-X> -s <site>
This will create a
config file and a
/.fxt folder which will be used to manage your test configuration.
Test information should be provided in individual
Simulation/SimulationMain directories. Each simulation directory should contain a
tests folder which contains a
test.toml configuration file and
*.par files pertaining to individual tests. Here is an example of a sample
test.toml located in
# TOML file for DeformingBubble test
# TODO: handle string replacement feature used in xml files
testNode = "UnitTest/incompFlow/DeformingBubble/2D/AMReX"
setupOptions = "-auto -2d -nxb=16 -nyb=16 +amrex +parallelIO"
numProcs = 1
testNode = "UnitTest/incompFlow/DeformingBubble/2D/pm4dev"
setupOptions = "-auto -2d -nxb=16 -nyb=16 --index-reorder +pm4dev -gridinterpolation=native +serialIO"
numProcs = 2
parFile = "test_user.par"
user-test provide configuration of two seprate tests for this particular simulation. To add one of the tests in your local testing suite type
flashxtest add incompFlow/DeformingBubble -t <test-key>
This will create a
testInfo.xml which will translate the information under
<test-key> into an
xml node. A
jobFile will also be created which will contain the value of
testNode provided in
test.toml. Add more tests by repeating the
flashxtest add command. An already populated set of
jobFile is available in the
Tests folder of
FlashXTest repository, and contains all the tests that currently run by the maintainers.
To deploy a test run, type
in the directory containing your
flashxtest run command will query all the nodes provided in
testInfo.xml and will run tests based on listed configuration.
There maybe situations where breaking up the
jobFile is desired to organize test deployment. This is easily handled by the
flashxtest run command. Simply breakup the
jobFile to mulitple files with your desired naming convention and type
flashxtest run <filename1> <filename2> <filename3> ....
This project is currently under development. Please file bugs/issues at: https://github.com/Flash-X/Flash-X-Test