Resolve "Implement a testing harness for functional tests"
This MR adds a Python-based testing harness that helps writing functional/integration tests. The harness provides common functionalities such as creating a workspace for tests, starting a GekkoFS server, and running client processes with an appropriate environment (e.g. LD_PRELOAD
, LD_LIBRARY_PATH
etc.), among others. Tests are automatically found by the harness and return easy to interpret error codes (e.g. success/failure). More details on how the harness work can be found in the wiki.
-
Make tests self-contained -
Generate detailed logs per-test -
Allow using installed binaries to reduced CI artifact size -
Log asserts -
Add support for filtering out syscalls (e.g.(can be solved using lnav)epoll_wait()
) in client logs -
Add support for multiple client log files for complex tests(will solve in future MR) -
Add support defining the network interface for tests via CMake option -
Clean up .gitlab-ci.yml
Closes #76 (closed)
Edited by Alberto Miranda