Brief description of the unit testing framework and how to create test cases with it. Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
35 lines
1.0 KiB
Markdown
35 lines
1.0 KiB
Markdown
# Tests
|
|
|
|
Currently, shadow provides unit and system tests.
|
|
|
|
## Unit tests
|
|
|
|
Unit testing is provided by the [cmocka](https://cmocka.org/) framework. It's
|
|
recommended to read the
|
|
[basics](https://cmocka.org/talks/cmocka_unit_testing_and_mocking.pdf) and
|
|
[API](https://api.cmocka.org/) before writing any test case.
|
|
|
|
In addition, you can check [test_logind.c](../../tests/unit/test_logind.c) to
|
|
get a general idea on how to implement unit tests for shadow using cmocka.
|
|
|
|
You can execute unit tests by running:
|
|
|
|
```
|
|
make check
|
|
```
|
|
|
|
## System tests
|
|
|
|
These type of tests are written in shell. Unfortunately, the testing framework
|
|
is tightly coupled to the Ubuntu distribution and it can only be run in this
|
|
distribution. Besides, if anything fails during the execution the system can
|
|
be left in an unstable state. Taking that into account you shouldn't run this
|
|
workflow in your host machine, we recommend to use a disposable system like a
|
|
VM or a container instead.
|
|
|
|
You can execute system tests by running:
|
|
|
|
```
|
|
cd tests && ./run_all`.
|
|
```
|