CTest entry ctest -R e2e_logging
└── Entry-point tests/e2e_logging.py
└── Runner cr.add("cpp", run_cpp, ...)
└── Group run_cpp(args) — creates and owns a network
└── Case test_historical_query(network, args) — single test
Registered in CMakeLists.txt via add_e2e_test(NAME ...). Names should be
unique and not be substrings of each other, so that ctest -R <name> matches
exactly one test. For example, recovery_test and recovery_test_suite are
problematic because -R recovery_test matches both.
Python scripts (e.g. schema.py, e2e_logging.py) that use ConcurrentRunner
to run one or more groups in parallel. A single entry-point may bin-pack
unrelated groups for efficient CI run-time.
The first argument to cr.add("name", ...). This name appears in every log
line from that thread, so it should be short and descriptive (e.g. "cpp",
"operations", "recovery").
Top-level functions that create and own a network, then call test cases on it.
- Should take
(args)or(const_args). - Should create their own network via
with infra.network.network(...). - Should not return
network. const_argssignals the function willcopy.deepcopybefore mutating.
Individual test functions that operate on an existing network.
- Should take
(network, args)and returnnetwork(enables chaining). - Should have a
@reqs.description("...")decorator. - Should not create their own network.
Functions that don't fit either pattern (e.g. shared test groups that operate
on an existing network but aren't individual tests) should avoid the test_
and run_ prefixes.