diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 00000000..c2839d18 --- /dev/null +++ b/tests/README.md @@ -0,0 +1,58 @@ +# Falco unit tests + +This folder contains the unit-tests suite for Falco. +The framework we use for unit-tests is [Catch2](https://github.com/catchorg/Catch2), while the one we use for mocking is [FakeIt](https://github.com/eranpeer/FakeIt). + + +## How to write tests + +When you want to test a new file or test a non tested file, remember four steps: + +- The folder structure here is the same as the one in the `userspace` folder, so `userspace/engine` becomes `tests/engine`. +- We call test files with this format `test_.cpp` +- Update the `CMakeLists.txt` file to include your file in `FALCO_TESTS_SOURCES` and change the `FALCO_TESTED_LIBRARIES` accordingly. You might aslo need to add dependencies, in that case, look at `target_link_libraries` and `target_include_directories` +- If you are unsure on how to write tests, refer to our existing tests in this folder and to the [Catch2](https://github.com/catchorg/Catch2/tree/master/docs) documentation. + +## How to execute tests + +The suite can be configured with `cmake` and run with `make`. + + +In the root folder of Falco, after creating the build directory: + +```bash +cd falco +mkdir build +cd build +``` + +You can prepare the tests with: + +``` +cmake .. +``` + +Optionally, you can customize the test suite by passing custom arguments like the examples below: + +**filter all tests containing the word ctor** + +```bash +cmake -DFALCO_TESTS_ARGUMENTS:STRING="-R ctor" .. +``` + +**verbose execution** + +```bash +cmake -DFALCO_TESTS_ARGUMENTS:STRING="-V" .. +``` + + +To see a list of all the custom arguments you may pass, execute `ctest --help` in your terminal. + + +Once you are ready, you can run your configuration with: + +```bash +make tests +``` +