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

summaryrefslogtreecommitdiffhomepage
path: root/tests/SelfTest/UsageTests/Skip.tests.cpp
diff options
context:
space:
mode:
authorMartin Hořeňovský2023-05-31 15:12:23 +0200
committerMartin Hořeňovský2023-05-31 15:12:43 +0200
commit0631b607ee2bbc07c7c238f0b15b23ef21926960 (patch)
treed47dbb561250e80081ae4a6b6e56a512a978e013 /tests/SelfTest/UsageTests/Skip.tests.cpp
parentdff7513b289f823fec91010f8898b8a01f7dcd12 (diff)
downloadcatch3-0631b607ee2bbc07c7c238f0b15b23ef21926960.tar.gz
Test & document SKIP in generator constructor
Closes #1593
Diffstat (limited to 'tests/SelfTest/UsageTests/Skip.tests.cpp')
-rw-r--r--tests/SelfTest/UsageTests/Skip.tests.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/SelfTest/UsageTests/Skip.tests.cpp b/tests/SelfTest/UsageTests/Skip.tests.cpp
index 6bd4189b..661795e1 100644
--- a/tests/SelfTest/UsageTests/Skip.tests.cpp
+++ b/tests/SelfTest/UsageTests/Skip.tests.cpp
@@ -71,3 +71,30 @@ TEST_CASE( "failing for some generator values causes entire test case to fail",
FAIL();
}
}
+
+namespace {
+ class test_skip_generator : public Catch::Generators::IGenerator<int> {
+ public:
+ explicit test_skip_generator() { SKIP( "This generator is empty" ); }
+
+ auto get() const -> int const& override {
+ static constexpr int value = 1;
+ return value;
+ }
+
+ auto next() -> bool override { return false; }
+ };
+
+ static auto make_test_skip_generator()
+ -> Catch::Generators::GeneratorWrapper<int> {
+ return { new test_skip_generator() };
+ }
+
+} // namespace
+
+TEST_CASE( "Empty generators can SKIP in constructor", "[skipping]" ) {
+ // The generator signals emptiness with `SKIP`
+ auto sample = GENERATE( make_test_skip_generator() );
+ // This assertion would fail, but shouldn't trigger
+ REQUIRE( sample == 0 );
+}