Resolve "Implement a testing harness for functional tests"

Merged Alberto Miranda requested to merge 76-implement-a-testing-harness-for-functional-tests into master

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. epoll_wait()) in client logs (can be solved using lnav)
  • 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

Merge request reports