diff options
| author | Leitwolf11 | 2026-10-24 10:06:25 +0300 |
|---|---|---|
| committer | Leitwolf11 | 2026-10-24 10:06:25 +0300 |
| commit | e104b694513964d5a84e77f751203cda970d741b (patch) | |
| tree | a7d6e6d5cca1e98702549f02489e3570599ca3b4 /src/Progmasoft/Runner/Scheduler.cpp | |
| parent | 15eb534ee493a3388c168709eb79a954e9cb5fcf (diff) | |
| download | catch3-e104b694513964d5a84e77f751203cda970d741b.tar.gz | |
Fix the CI failures of the runner and test its planner, options and analysis
ExtraTests X21 and X27 defined their listeners at namespace scope, which
clang rejects under -Wweak-vtables with -Werror on Linux and macOS; they
are now in anonymous namespaces.
After a fatal signal Catch2 closes the open sections itself, so on POSIX a
crash was reported outside the section it happened in. The scheduler now
ignores section ends that follow a fatal condition.
New unit tests cover the planner (every selection, dependency closure and
cycles, hash and duration shards, incremental runs, learned time limits,
ordering, retries, quarantine and replay), every command-line option and
its errors, and the failure analysis (history classes, signature groups,
crash and hang locations, changed files, replay commands).
Catalog::FromEntries builds a catalog without a test registry so the
planner can be tested on its own.
Diffstat (limited to 'src/Progmasoft/Runner/Scheduler.cpp')
| -rw-r--r-- | src/Progmasoft/Runner/Scheduler.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/Progmasoft/Runner/Scheduler.cpp b/src/Progmasoft/Runner/Scheduler.cpp index e6c8eec5..6a65f289 100644 --- a/src/Progmasoft/Runner/Scheduler.cpp +++ b/src/Progmasoft/Runner/Scheduler.cpp @@ -754,8 +754,11 @@ namespace Progmasoft::Catch3::Runner attempt.sections.push_back(section); } } - else + else if (!running.fatal) { + // After a fatal signal Catch2 closes the open + // sections itself; they stay open here, because the + // crash happened inside them. const auto depth = message["depth"].AsUnsigned(); for (auto section = attempt.sections.rbegin(); section != attempt.sections.rend(); |