Add Testing to CI
This MR adds the functionality we have long discussed and fixes #40 (closed). It enables automatic testing of the framework using predefined data sets.
The functionality consists of:
- A CMake script which is capable of automatically picking up all test cases defined
- A download script which fetches the relevant data from our project EOS storage at
/eos/project/c/corryvreckan/www/data
- A Corryvreckan configuration file for each test case in
testing/
- A corresponding geometry file in
testing/geometries/
Currently, I have added one test, running just the seven planes of our Timepix3 telescope and doing tracking, no DUT, no DUTModules. I have taken the original data files and stripped each of them down to 10MB. This way, about 200k tracks remain in the data, but the total package is only 50MB to download.
The configuration file for the test contains two special markers:
#DATASET timepix3tel_ebeam120
#PASS Ev: 18.8k Tr: 197.4k (10.5/ev) t = 3.76s
Here, #DATASET
defines the data to be downloaded. Currently, the file has to be of .tar.gz
format and registered with its SHA256 has in download_data.py
. #PASS
defines the regular expression to be searched for in the Corryvreckan console output in order for the test to pass. The latter works just as described in the Allpix Squared manual, Chapter 10.
After merging this, we should work on collecting ideas for more test cases - even if it's just a different analysis, a different geometry with alignment etc. The data sets can be reused without downloading them again, as the download_data.py
script checks for their existence.