diff options
| author | Martin Hořeňovský | 2026-02-12 21:32:32 +0100 |
|---|---|---|
| committer | Martin Hořeňovský | 2026-02-13 21:17:06 +0100 |
| commit | 72671fdbdfc7a6f1fad03af40e75ad8d881822a8 (patch) | |
| tree | d8d1640cb453ef85667419ef09fa06056ab96bcc /src/catch2 | |
| parent | 120827d4d616d4aa024dbe8d0eeba8089bcba80c (diff) | |
| download | catch3-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.cpp | 11 |
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; } |