Testing via ctest

This is totally optional, but you can run the unit / integration tests I use for developing WODEN to check your system / the code runs as expected. The tests are compiled using the same cmake script as the main code.

Dependencies

The tests use the following C library:

I installed unity via:

$ git clone https://github.com/ThrowTheSwitch/Unity.git
$ cd Unity
$ mkdir build && cd build
$ cmake ..
$ make -j 4
$ sudo make install

That way, cmake can find unity. However, you don’t need to install Unity anywhere, as WODEN uses the C code directly. You just need to tell WODEN where Unity lives in your system (for example, you could download a release version e.g. version 2.5.2 - see example below for how to link without installation).

To tell cmake to build tests, you add TARGET_GROUP=test to your command to tell CMake to build tests instead of the main code:

$ cd $WODEN_DIR
$ cmake .. -DTARGET_GROUP=test -DUNITY_ROOT=/usr/local/Unity-2.5.2
$ make -j 4

(where -DUNITY_ROOT= is needed if you didn’t install unity).

Warning

once you have done this, to go back to compiling the main woden executable, you need to run:

$ cmake .. -DTARGET_GROUP=production

otherwise you’ll just keep building the tests.

Running tests

Once that compiles, you can run the tests by running:

$ ctest

You should see something like the following if successful:

$ ctest
Test project /home/jline/software/WODEN/build
      Start  1: C_test_RTS_ENH2XYZ_local
 1/49 Test  #1: C_test_RTS_ENH2XYZ_local ......................   Passed    0.00 sec
      Start  2: C_test_calc_XYZ_diffs
 2/49 Test  #2: C_test_calc_XYZ_diffs .........................   Passed    0.00 sec
      Start  3: C_test_RTS_PrecessXYZtoJ2000
 3/49 Test  #3: C_test_RTS_PrecessXYZtoJ2000 ..................   Passed    0.00 sec
      Start  4: C_test_null_comps
 4/49 Test  #4: C_test_null_comps .............................   Passed    0.00 sec
      Start  5: C_test_fill_chunk_src_with_pointgauss
 5/49 Test  #5: C_test_fill_chunk_src_with_pointgauss .........   Passed    0.03 sec
      Start  6: C_test_fill_chunk_src_with_shapelets
 6/49 Test  #6: C_test_fill_chunk_src_with_shapelets ..........   Passed    0.01 sec
      Start  7: C_test_create_chunked_sky_models
 7/49 Test  #7: C_test_create_chunked_sky_models ..............   Passed    0.27 sec
      Start  8: C_test_read_source_catalogue
 8/49 Test  #8: C_test_read_source_catalogue ..................   Passed    0.00 sec
 ...etc etc

Note

To test MWA Fully Embedded Element beam code, you must have the environment variable:

MWA_FEE_HDF5=/path/to/mwa_full_embedded_element_pattern.h5

declared. If you don’t have that, the MWA FEE beam code tests will just be skipped.

If you want more detail of what the tests are doing, run:

$ ctest --verbose