Add Testing to CI

Simon Spannagel requested to merge testcases into master

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 #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 script checks for their existence.

@dannheim @jekroege @williamm

Edited by Simon Spannagel

Merge request reports