Overview

This section describes how to build and run the EBGeometry test suite locally, what the continuous integration (CI) pipeline checks, and the conventions expected of contributions. It is split into four pages, one per topic:

  • Running the unit tests locally — building and running the Catch2 unit test suite, CMake presets, sanitizers, and a table of what each test binary covers.

  • Performance testing — the performance probes, and the comparison against its base that every pull request carries.

  • Continuous integration — what the GitHub Actions CI pipeline checks on every pull request and every merge, and how to reproduce those checks locally with pre-commit.

  • Contribution guidelines — code style, static and dynamic assertions, and test coverage expected of new code.

Code that runs on a GPU follows the memory model in Memory model, and the rules in Writing device code and Making a class device-callable.