We should migrate our DLL test framework from Catch2 to doctest. The current Catch2 setup is heavier than necessary for our in-process testing model and has lifecycle limitations (tests can only run once per app runtime).
Reasons for migration:
- Lightweight: doctest is a single header, compiles much faster, and adds minimal overhead.
- Repeatable runs: doctest::Context supports multiple runs in the same process safely.
- Easy embedding: explicitly supports running tests from DLLs inside a host process (shared registry between EXE and DLL).
- BDD compatible: supports
SCENARIO, GIVEN, WHEN, THEN macros, so porting tests is mostly mechanical.
- Release-safe: can be fully compiled out with
DOCTEST_CONFIG_DISABLE.
Expected outcome:
Smaller build times, cleaner in-process testing, and more flexible test execution inside the loaded plugin
We should migrate our DLL test framework from Catch2 to doctest. The current Catch2 setup is heavier than necessary for our in-process testing model and has lifecycle limitations (tests can only run once per app runtime).
Reasons for migration:
SCENARIO,GIVEN,WHEN,THENmacros, so porting tests is mostly mechanical.DOCTEST_CONFIG_DISABLE.Expected outcome:
Smaller build times, cleaner in-process testing, and more flexible test execution inside the loaded plugin