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

summaryrefslogtreecommitdiffhomepage
path: root/src/catch2/internal/catch_run_context.cpp
diff options
context:
space:
mode:
authorMartin Hořeňovský2026-02-10 09:16:03 +0100
committerMartin Hořeňovský2026-02-10 09:37:19 +0100
commitdaadf42a0e21ac09abc1f286f875078b24e2dd4d (patch)
tree1a680c2c82f71ad1701ce0b8e3c28ce9e50470b9 /src/catch2/internal/catch_run_context.cpp
parentd079ee13ab137547ab26bd1ed5ca2858d7fbd847 (diff)
downloadcatch3-daadf42a0e21ac09abc1f286f875078b24e2dd4d.tar.gz
Add --warn InfiniteGenerators
Diffstat (limited to 'src/catch2/internal/catch_run_context.cpp')
-rw-r--r--src/catch2/internal/catch_run_context.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/catch2/internal/catch_run_context.cpp b/src/catch2/internal/catch_run_context.cpp
index 5e5f95a4..8e04748e 100644
--- a/src/catch2/internal/catch_run_context.cpp
+++ b/src/catch2/internal/catch_run_context.cpp
@@ -21,7 +21,9 @@
#include <catch2/internal/catch_assertion_handler.hpp>
#include <catch2/internal/catch_test_failure_exception.hpp>
#include <catch2/internal/catch_thread_local.hpp>
+#include <catch2/internal/catch_unreachable.hpp>
#include <catch2/internal/catch_result_type.hpp>
+#include <catch2/catch_test_macros.hpp>
#include <cassert>
#include <algorithm>
@@ -495,6 +497,11 @@ 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;
}