In order to assure that the preprocessor and building scripts work as intended, every script comes with a collection of tests.
In order to assure that the preprocessor and building scripts work as intended, every script comes with a collection of tests. The test suites also reside in the subdirectory `bin` and carry the filename prefix `test_`. Every test that comes with reference files come with an additional subdirectory `/testing/test_name-of-your-sub`.
# Unit Testing Suites
The tests are run on GitLab after each change in `/bin` and `/testing`, see [CI/CD](Continuous-Integration-and-Continuous-Deployment#docker-test-and-testing) for details.
The test suites also reside in the subdirectory `bin` and carry the filename prefix `test_`. Every test that comes with reference files come with an additional subdirectory `/testing/test_name-of-your-sub`.
The tests are run on GitLab after each change in `/bin` and `/testing`, see [CI/CD](Continuous-Integration-and-Continuous-Deployment#docker-test-and-testing) and the configuration in `.gitlab-ci.yml` for details.
# Test Template
# Test Template
Each test has 5 stages:
Each test has 5 stages:
*[Prepare generic variables](#generic-variables).
*[Prepare generic variables](#generic-variables).
* Run the script to be tested (with different combinations of input arguments
* Run the script to be tested (with different combinations of input arguments.
* Compare the output with a reference file usually via a [`diff`](https://en.wikipedia.org/wiki/Diff) command.
* Compare the output with a reference file usually via a [`diff`](https://en.wikipedia.org/wiki/Diff) command.
* Check whether all files where created using `if [ -f ...]`
* Check whether all files where created using `if [ -f ...]`.
* Exit with exit code `1` if script has failed or continue with next test.
* Exit with exit code `1` if script has failed or continue with next test.