Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/src/catch2
diff options
context:
space:
mode:
authorMartin Hořeňovský2026-02-12 21:32:32 +0100
committerMartin Hořeňovský2026-02-13 21:17:06 +0100
commit72671fdbdfc7a6f1fad03af40e75ad8d881822a8 (patch)
treed8d1640cb453ef85667419ef09fa06056ab96bcc /src/catch2
parent120827d4d616d4aa024dbe8d0eeba8089bcba80c (diff)
downloadcatch3-72671fdbdfc7a6f1fad03af40e75ad8d881822a8.tar.gz
Check for infinite generators before we construct generator's tracker
Diffstat (limited to 'src/catch2')
-rw-r--r--src/catch2/internal/catch_run_context.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/catch2/internal/catch_run_context.cpp b/src/catch2/internal/catch_run_context.cpp
index 8e04748e..7852b369 100644
--- a/src/catch2/internal/catch_run_context.cpp
+++ b/src/catch2/internal/catch_run_context.cpp
@@ -485,6 +485,12 @@ namespace Catch {
SourceLineInfo lineInfo,
Generators::GeneratorBasePtr&& generator ) {
+ if ( m_config->warnAboutInfiniteGenerators() &&
+ !generator->isFinite() ) {
+ // TBD: Would it be better to expand this macro inline?
+ FAIL( "GENERATE() would run infinitely" );
+ }
+
auto nameAndLoc = TestCaseTracking::NameAndLocation( static_cast<std::string>( generatorName ), lineInfo );
auto& currentTracker = m_trackerContext.currentTracker();
assert(
@@ -497,11 +503,6 @@ namespace Catch {
currentTracker.addChild( CATCH_MOVE( newTracker ) );
ret->setGenerator( CATCH_MOVE( generator ) );
- if ( m_config->warnAboutInfiniteGenerators() &&
- !ret->getGenerator()->isFinite() ) {
- // TBD: Would it be better to expand this macro inline?
- FAIL( "GENERATE() would run infinitely" );
- }
ret->open();
return ret;
}