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

summaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorMartin Hořeňovský2026-01-12 14:10:25 +0100
committerMartin Hořeňovský2026-01-12 14:27:49 +0100
commit44c597f0742b491399994afa00070b99d3ef2885 (patch)
treedbb0581d1bf101f4423f43b1e1d0ed150ed48ddb /tests
parent6aedc79870e7b9122b11810abe195f8cc70fbaa5 (diff)
downloadcatch3-44c597f0742b491399994afa00070b99d3ef2885.tar.gz
Add Concat generator for combining multiple generators
Diffstat (limited to 'tests')
-rw-r--r--tests/SelfTest/Baselines/automake.sw.approved.txt2
-rw-r--r--tests/SelfTest/Baselines/automake.sw.multi.approved.txt2
-rw-r--r--tests/SelfTest/Baselines/compact.sw.approved.txt24
-rw-r--r--tests/SelfTest/Baselines/compact.sw.multi.approved.txt24
-rw-r--r--tests/SelfTest/Baselines/console.std.approved.txt4
-rw-r--r--tests/SelfTest/Baselines/console.sw.approved.txt174
-rw-r--r--tests/SelfTest/Baselines/console.sw.multi.approved.txt174
-rw-r--r--tests/SelfTest/Baselines/junit.sw.approved.txt8
-rw-r--r--tests/SelfTest/Baselines/junit.sw.multi.approved.txt8
-rw-r--r--tests/SelfTest/Baselines/sonarqube.sw.approved.txt6
-rw-r--r--tests/SelfTest/Baselines/sonarqube.sw.multi.approved.txt6
-rw-r--r--tests/SelfTest/Baselines/tap.sw.approved.txt42
-rw-r--r--tests/SelfTest/Baselines/tap.sw.multi.approved.txt42
-rw-r--r--tests/SelfTest/Baselines/teamcity.sw.approved.txt4
-rw-r--r--tests/SelfTest/Baselines/teamcity.sw.multi.approved.txt4
-rw-r--r--tests/SelfTest/Baselines/xml.sw.approved.txt200
-rw-r--r--tests/SelfTest/Baselines/xml.sw.multi.approved.txt200
-rw-r--r--tests/SelfTest/IntrospectiveTests/GeneratorsImpl.tests.cpp20
-rw-r--r--tests/SelfTest/UsageTests/Generators.tests.cpp13
19 files changed, 938 insertions, 19 deletions
diff --git a/tests/SelfTest/Baselines/automake.sw.approved.txt b/tests/SelfTest/Baselines/automake.sw.approved.txt
index 05c6384b..606d7ac3 100644
--- a/tests/SelfTest/Baselines/automake.sw.approved.txt
+++ b/tests/SelfTest/Baselines/automake.sw.approved.txt
@@ -131,6 +131,7 @@ Nor would this
:test-result: PASS Comparisons with int literals don't warn when mixing signed/ unsigned
:test-result: PASS Composed generic matchers shortcircuit
:test-result: PASS Composed matchers shortcircuit
+:test-result: PASS ConcatGenerator
:test-result: FAIL Contains string matcher
:test-result: PASS Copy and then generate a range
:test-result: PASS Cout stream properly declares it writes to stdout
@@ -334,6 +335,7 @@ Message from section two
:test-result: PASS array<int, N> -> toString
:test-result: PASS benchmark function call
:test-result: PASS boolean member
+:test-result: PASS cat generator
:test-result: PASS checkedElse
:test-result: FAIL checkedElse, failing
:test-result: PASS checkedIf
diff --git a/tests/SelfTest/Baselines/automake.sw.multi.approved.txt b/tests/SelfTest/Baselines/automake.sw.multi.approved.txt
index 75c116d5..fd146fe7 100644
--- a/tests/SelfTest/Baselines/automake.sw.multi.approved.txt
+++ b/tests/SelfTest/Baselines/automake.sw.multi.approved.txt
@@ -129,6 +129,7 @@
:test-result: PASS Comparisons with int literals don't warn when mixing signed/ unsigned
:test-result: PASS Composed generic matchers shortcircuit
:test-result: PASS Composed matchers shortcircuit
+:test-result: PASS ConcatGenerator
:test-result: FAIL Contains string matcher
:test-result: PASS Copy and then generate a range
:test-result: PASS Cout stream properly declares it writes to stdout
@@ -327,6 +328,7 @@
:test-result: PASS array<int, N> -> toString
:test-result: PASS benchmark function call
:test-result: PASS boolean member
+:test-result: PASS cat generator
:test-result: PASS checkedElse
:test-result: FAIL checkedElse, failing
:test-result: PASS checkedIf
diff --git a/tests/SelfTest/Baselines/compact.sw.approved.txt b/tests/SelfTest/Baselines/compact.sw.approved.txt
index ea8d519a..a366d006 100644
--- a/tests/SelfTest/Baselines/compact.sw.approved.txt
+++ b/tests/SelfTest/Baselines/compact.sw.approved.txt
@@ -540,6 +540,18 @@ Matchers.tests.cpp:<line number>: passed: !second.matchCalled for: true
Matchers.tests.cpp:<line number>: passed: matcher.match( 1 ) for: true
Matchers.tests.cpp:<line number>: passed: first.matchCalled for: true
Matchers.tests.cpp:<line number>: passed: !second.matchCalled for: true
+GeneratorsImpl.tests.cpp:<line number>: passed: c.get() == 1 for: 1 == 1
+GeneratorsImpl.tests.cpp:<line number>: passed: !(c.next()) for: !false
+GeneratorsImpl.tests.cpp:<line number>: passed: c.get() == i + 1 for: 1 == 1
+GeneratorsImpl.tests.cpp:<line number>: passed: c.next() for: true
+GeneratorsImpl.tests.cpp:<line number>: passed: c.get() == i + 1 for: 2 == 2
+GeneratorsImpl.tests.cpp:<line number>: passed: c.next() for: true
+GeneratorsImpl.tests.cpp:<line number>: passed: c.get() == i + 1 for: 3 == 3
+GeneratorsImpl.tests.cpp:<line number>: passed: c.next() for: true
+GeneratorsImpl.tests.cpp:<line number>: passed: c.get() == i + 1 for: 4 == 4
+GeneratorsImpl.tests.cpp:<line number>: passed: c.next() for: true
+GeneratorsImpl.tests.cpp:<line number>: passed: c.get() == 5 for: 5 == 5
+GeneratorsImpl.tests.cpp:<line number>: passed: !(c.next()) for: !false
Matchers.tests.cpp:<line number>: failed: testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "not there" (case insensitive)
Matchers.tests.cpp:<line number>: failed: testStringForMatching(), ContainsSubstring( "STRING" ) for: "this string contains 'abc' as a substring" contains: "STRING"
Generators.tests.cpp:<line number>: passed: elem % 2 == 1 for: 1 == 1
@@ -2483,6 +2495,14 @@ InternalBenchmark.tests.cpp:<line number>: passed: model.started == 0 for: 0 ==
InternalBenchmark.tests.cpp:<line number>: passed: model.finished == 0 for: 0 == 0
InternalBenchmark.tests.cpp:<line number>: passed: called == 1 for: 1 == 1
Tricky.tests.cpp:<line number>: passed: obj.prop != 0 for: 0x<hex digits> != 0
+Generators.tests.cpp:<line number>: passed: input < 3 for: 0 < 3
+Generators.tests.cpp:<line number>: passed: input < 3 for: 1 < 3
+Generators.tests.cpp:<line number>: passed: input < 3 for: 2 < 3
+Generators.tests.cpp:<line number>: passed: input % 2 == 0 for: 0 == 0
+Generators.tests.cpp:<line number>: passed: input % 2 == 0 for: 0 == 0
+Generators.tests.cpp:<line number>: passed: input % 2 == 0 for: 0 == 0
+Generators.tests.cpp:<line number>: passed: input % 2 == 0 for: 0 == 0
+Generators.tests.cpp:<line number>: passed: input % 2 == 0 for: 0 == 0
Misc.tests.cpp:<line number>: passed: flag for: true
Misc.tests.cpp:<line number>: passed: testCheckedElse( true ) for: true
Misc.tests.cpp:<line number>: failed - but was ok: flag for: false
@@ -2895,7 +2915,7 @@ InternalBenchmark.tests.cpp:<line number>: passed: med == 18. for: 18.0 == 18.0
InternalBenchmark.tests.cpp:<line number>: passed: q3 == 23. for: 23.0 == 23.0
Misc.tests.cpp:<line number>: passed:
Misc.tests.cpp:<line number>: passed:
-test cases: 437 | 317 passed | 96 failed | 6 skipped | 18 failed as expected
-assertions: 2311 | 2110 passed | 158 failed | 43 failed as expected
+test cases: 439 | 319 passed | 96 failed | 6 skipped | 18 failed as expected
+assertions: 2331 | 2130 passed | 158 failed | 43 failed as expected
diff --git a/tests/SelfTest/Baselines/compact.sw.multi.approved.txt b/tests/SelfTest/Baselines/compact.sw.multi.approved.txt
index dbfab609..dab12a55 100644
--- a/tests/SelfTest/Baselines/compact.sw.multi.approved.txt
+++ b/tests/SelfTest/Baselines/compact.sw.multi.approved.txt
@@ -538,6 +538,18 @@ Matchers.tests.cpp:<line number>: passed: !second.matchCalled for: true
Matchers.tests.cpp:<line number>: passed: matcher.match( 1 ) for: true
Matchers.tests.cpp:<line number>: passed: first.matchCalled for: true
Matchers.tests.cpp:<line number>: passed: !second.matchCalled for: true
+GeneratorsImpl.tests.cpp:<line number>: passed: c.get() == 1 for: 1 == 1
+GeneratorsImpl.tests.cpp:<line number>: passed: !(c.next()) for: !false
+GeneratorsImpl.tests.cpp:<line number>: passed: c.get() == i + 1 for: 1 == 1
+GeneratorsImpl.tests.cpp:<line number>: passed: c.next() for: true
+GeneratorsImpl.tests.cpp:<line number>: passed: c.get() == i + 1 for: 2 == 2
+GeneratorsImpl.tests.cpp:<line number>: passed: c.next() for: true
+GeneratorsImpl.tests.cpp:<line number>: passed: c.get() == i + 1 for: 3 == 3
+GeneratorsImpl.tests.cpp:<line number>: passed: c.next() for: true
+GeneratorsImpl.tests.cpp:<line number>: passed: c.get() == i + 1 for: 4 == 4
+GeneratorsImpl.tests.cpp:<line number>: passed: c.next() for: true
+GeneratorsImpl.tests.cpp:<line number>: passed: c.get() == 5 for: 5 == 5
+GeneratorsImpl.tests.cpp:<line number>: passed: !(c.next()) for: !false
Matchers.tests.cpp:<line number>: failed: testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "not there" (case insensitive)
Matchers.tests.cpp:<line number>: failed: testStringForMatching(), ContainsSubstring( "STRING" ) for: "this string contains 'abc' as a substring" contains: "STRING"
Generators.tests.cpp:<line number>: passed: elem % 2 == 1 for: 1 == 1
@@ -2476,6 +2488,14 @@ InternalBenchmark.tests.cpp:<line number>: passed: model.started == 0 for: 0 ==
InternalBenchmark.tests.cpp:<line number>: passed: model.finished == 0 for: 0 == 0
InternalBenchmark.tests.cpp:<line number>: passed: called == 1 for: 1 == 1
Tricky.tests.cpp:<line number>: passed: obj.prop != 0 for: 0x<hex digits> != 0
+Generators.tests.cpp:<line number>: passed: input < 3 for: 0 < 3
+Generators.tests.cpp:<line number>: passed: input < 3 for: 1 < 3
+Generators.tests.cpp:<line number>: passed: input < 3 for: 2 < 3
+Generators.tests.cpp:<line number>: passed: input % 2 == 0 for: 0 == 0
+Generators.tests.cpp:<line number>: passed: input % 2 == 0 for: 0 == 0
+Generators.tests.cpp:<line number>: passed: input % 2 == 0 for: 0 == 0
+Generators.tests.cpp:<line number>: passed: input % 2 == 0 for: 0 == 0
+Generators.tests.cpp:<line number>: passed: input % 2 == 0 for: 0 == 0
Misc.tests.cpp:<line number>: passed: flag for: true
Misc.tests.cpp:<line number>: passed: testCheckedElse( true ) for: true
Misc.tests.cpp:<line number>: failed - but was ok: flag for: false
@@ -2884,7 +2904,7 @@ InternalBenchmark.tests.cpp:<line number>: passed: med == 18. for: 18.0 == 18.0
InternalBenchmark.tests.cpp:<line number>: passed: q3 == 23. for: 23.0 == 23.0
Misc.tests.cpp:<line number>: passed:
Misc.tests.cpp:<line number>: passed:
-test cases: 437 | 317 passed | 96 failed | 6 skipped | 18 failed as expected
-assertions: 2311 | 2110 passed | 158 failed | 43 failed as expected
+test cases: 439 | 319 passed | 96 failed | 6 skipped | 18 failed as expected
+assertions: 2331 | 2130 passed | 158 failed | 43 failed as expected
diff --git a/tests/SelfTest/Baselines/console.std.approved.txt b/tests/SelfTest/Baselines/console.std.approved.txt
index 7de7b1f9..48bcec18 100644
--- a/tests/SelfTest/Baselines/console.std.approved.txt
+++ b/tests/SelfTest/Baselines/console.std.approved.txt
@@ -1743,6 +1743,6 @@ due to unexpected exception with message:
Why would you throw a std::string?
===============================================================================
-test cases: 437 | 335 passed | 76 failed | 7 skipped | 19 failed as expected
-assertions: 2289 | 2110 passed | 136 failed | 43 failed as expected
+test cases: 439 | 337 passed | 76 failed | 7 skipped | 19 failed as expected
+assertions: 2309 | 2130 passed | 136 failed | 43 failed as expected
diff --git a/tests/SelfTest/Baselines/console.sw.approved.txt b/tests/SelfTest/Baselines/console.sw.approved.txt
index ab18d08c..eb9f7367 100644
--- a/tests/SelfTest/Baselines/console.sw.approved.txt
+++ b/tests/SelfTest/Baselines/console.sw.approved.txt
@@ -3912,6 +3912,80 @@ with expansion:
true
-------------------------------------------------------------------------------
+ConcatGenerator
+ Cat support single-generator construction
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.get() == 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( c.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+ConcatGenerator
+ Iterating over multiple generators
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.get() == i + 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.get() == i + 1 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.get() == i + 1 )
+with expansion:
+ 3 == 3
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.get() == i + 1 )
+with expansion:
+ 4 == 4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.get() == 5 )
+with expansion:
+ 5 == 5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( c.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
Contains string matcher
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
@@ -16441,6 +16515,102 @@ with expansion:
0x<hex digits> != 0
-------------------------------------------------------------------------------
+cat generator
+ Simple usage
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input < 3 )
+with expansion:
+ 0 < 3
+
+-------------------------------------------------------------------------------
+cat generator
+ Simple usage
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input < 3 )
+with expansion:
+ 1 < 3
+
+-------------------------------------------------------------------------------
+cat generator
+ Simple usage
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input < 3 )
+with expansion:
+ 2 < 3
+
+-------------------------------------------------------------------------------
+cat generator
+ Used in map
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+cat generator
+ Used in map
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+cat generator
+ Used in map
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+cat generator
+ Used in map
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+cat generator
+ Used in map
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
checkedElse
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
@@ -19372,6 +19542,6 @@ Misc.tests.cpp:<line number>
Misc.tests.cpp:<line number>: PASSED:
===============================================================================
-test cases: 437 | 317 passed | 96 failed | 6 skipped | 18 failed as expected
-assertions: 2311 | 2110 passed | 158 failed | 43 failed as expected
+test cases: 439 | 319 passed | 96 failed | 6 skipped | 18 failed as expected
+assertions: 2331 | 2130 passed | 158 failed | 43 failed as expected
diff --git a/tests/SelfTest/Baselines/console.sw.multi.approved.txt b/tests/SelfTest/Baselines/console.sw.multi.approved.txt
index 05d6eb6c..4d0bd8f4 100644
--- a/tests/SelfTest/Baselines/console.sw.multi.approved.txt
+++ b/tests/SelfTest/Baselines/console.sw.multi.approved.txt
@@ -3910,6 +3910,80 @@ with expansion:
true
-------------------------------------------------------------------------------
+ConcatGenerator
+ Cat support single-generator construction
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.get() == 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( c.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+ConcatGenerator
+ Iterating over multiple generators
+-------------------------------------------------------------------------------
+GeneratorsImpl.tests.cpp:<line number>
+...............................................................................
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.get() == i + 1 )
+with expansion:
+ 1 == 1
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.get() == i + 1 )
+with expansion:
+ 2 == 2
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.get() == i + 1 )
+with expansion:
+ 3 == 3
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.get() == i + 1 )
+with expansion:
+ 4 == 4
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.next() )
+with expansion:
+ true
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE( c.get() == 5 )
+with expansion:
+ 5 == 5
+
+GeneratorsImpl.tests.cpp:<line number>: PASSED:
+ REQUIRE_FALSE( c.next() )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
Contains string matcher
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
@@ -16434,6 +16508,102 @@ with expansion:
0x<hex digits> != 0
-------------------------------------------------------------------------------
+cat generator
+ Simple usage
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input < 3 )
+with expansion:
+ 0 < 3
+
+-------------------------------------------------------------------------------
+cat generator
+ Simple usage
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input < 3 )
+with expansion:
+ 1 < 3
+
+-------------------------------------------------------------------------------
+cat generator
+ Simple usage
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input < 3 )
+with expansion:
+ 2 < 3
+
+-------------------------------------------------------------------------------
+cat generator
+ Used in map
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+cat generator
+ Used in map
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+cat generator
+ Used in map
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+cat generator
+ Used in map
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+cat generator
+ Used in map
+-------------------------------------------------------------------------------
+Generators.tests.cpp:<line number>
+...............................................................................
+
+Generators.tests.cpp:<line number>: PASSED:
+ REQUIRE( input % 2 == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
checkedElse
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
@@ -19361,6 +19531,6 @@ Misc.tests.cpp:<line number>
Misc.tests.cpp:<line number>: PASSED:
===============================================================================
-test cases: 437 | 317 passed | 96 failed | 6 skipped | 18 failed as expected
-assertions: 2311 | 2110 passed | 158 failed | 43 failed as expected
+test cases: 439 | 319 passed | 96 failed | 6 skipped | 18 failed as expected
+assertions: 2331 | 2130 passed | 158 failed | 43 failed as expected
diff --git a/tests/SelfTest/Baselines/junit.sw.approved.txt b/tests/SelfTest/Baselines/junit.sw.approved.txt
index 10523416..d08e4f81 100644
--- a/tests/SelfTest/Baselines/junit.sw.approved.txt
+++ b/tests/SelfTest/Baselines/junit.sw.approved.txt
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuitesloose text artifact
>
- <testsuite name="<exe-name>" errors="17" failures="141" skipped="12" tests="2323" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
+ <testsuite name="<exe-name>" errors="17" failures="141" skipped="12" tests="2343" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
<properties>
<property name="random-seed" value="1"/>
<property name="filters" value="&quot;*&quot; ~[!nonportable] ~[!benchmark] ~[approvals]"/>
@@ -501,6 +501,9 @@ at Message.tests.cpp:<line number>
<testcase classname="<exe-name>.global" name="Composed matchers shortcircuit" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="Composed matchers shortcircuit/MatchAllOf" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="Composed matchers shortcircuit/MatchAnyOf" time="{duration}" status="run"/>
+ <testcase classname="<exe-name>.global" name="ConcatGenerator" time="{duration}" status="run"/>
+ <testcase classname="<exe-name>.global" name="ConcatGenerator/Cat support single-generator construction" time="{duration}" status="run"/>
+ <testcase classname="<exe-name>.global" name="ConcatGenerator/Iterating over multiple generators" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="Contains string matcher" time="{duration}" status="run">
<failure message="testStringForMatching(), ContainsSubstring( &quot;not there&quot;, Catch::CaseSensitive::No )" type="CHECK_THAT">
FAILED:
@@ -1993,6 +1996,9 @@ at Skip.tests.cpp:<line number>
<testcase classname="<exe-name>.global" name="benchmark function call/without chronometer" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="benchmark function call/with chronometer" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="boolean member" time="{duration}" status="run"/>
+ <testcase classname="<exe-name>.global" name="cat generator" time="{duration}" status="run"/>
+ <testcase classname="<exe-name>.global" name="cat generator/Simple usage" time="{duration}" status="run"/>
+ <testcase classname="<exe-name>.global" name="cat generator/Used in map" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="checkedElse" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="checkedElse, failing" time="{duration}" status="run">
<failure message="testCheckedElse( false )" type="REQUIRE">
diff --git a/tests/SelfTest/Baselines/junit.sw.multi.approved.txt b/tests/SelfTest/Baselines/junit.sw.multi.approved.txt
index 2199b7f7..5d7dce1d 100644
--- a/tests/SelfTest/Baselines/junit.sw.multi.approved.txt
+++ b/tests/SelfTest/Baselines/junit.sw.multi.approved.txt
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
- <testsuite name="<exe-name>" errors="17" failures="141" skipped="12" tests="2323" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
+ <testsuite name="<exe-name>" errors="17" failures="141" skipped="12" tests="2343" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
<properties>
<property name="random-seed" value="1"/>
<property name="filters" value="&quot;*&quot; ~[!nonportable] ~[!benchmark] ~[approvals]"/>
@@ -500,6 +500,9 @@ at Message.tests.cpp:<line number>
<testcase classname="<exe-name>.global" name="Composed matchers shortcircuit" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="Composed matchers shortcircuit/MatchAllOf" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="Composed matchers shortcircuit/MatchAnyOf" time="{duration}" status="run"/>
+ <testcase classname="<exe-name>.global" name="ConcatGenerator" time="{duration}" status="run"/>
+ <testcase classname="<exe-name>.global" name="ConcatGenerator/Cat support single-generator construction" time="{duration}" status="run"/>
+ <testcase classname="<exe-name>.global" name="ConcatGenerator/Iterating over multiple generators" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="Contains string matcher" time="{duration}" status="run">
<failure message="testStringForMatching(), ContainsSubstring( &quot;not there&quot;, Catch::CaseSensitive::No )" type="CHECK_THAT">
FAILED:
@@ -1992,6 +1995,9 @@ at Skip.tests.cpp:<line number>
<testcase classname="<exe-name>.global" name="benchmark function call/without chronometer" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="benchmark function call/with chronometer" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="boolean member" time="{duration}" status="run"/>
+ <testcase classname="<exe-name>.global" name="cat generator" time="{duration}" status="run"/>
+ <testcase classname="<exe-name>.global" name="cat generator/Simple usage" time="{duration}" status="run"/>
+ <testcase classname="<exe-name>.global" name="cat generator/Used in map" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="checkedElse" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="checkedElse, failing" time="{duration}" status="run">
<failure message="testCheckedElse( false )" type="REQUIRE">
diff --git a/tests/SelfTest/Baselines/sonarqube.sw.approved.txt b/tests/SelfTest/Baselines/sonarqube.sw.approved.txt
index 27dc2cdd..2c5d4a90 100644
--- a/tests/SelfTest/Baselines/sonarqube.sw.approved.txt
+++ b/tests/SelfTest/Baselines/sonarqube.sw.approved.txt
@@ -145,6 +145,9 @@ at AssertionHandler.tests.cpp:<line number>
<testCase name="convertToBits" duration="{duration}"/>
</file>
<file path="tests/<exe-name>/IntrospectiveTests/GeneratorsImpl.tests.cpp">
+ <testCase name="ConcatGenerator" duration="{duration}"/>
+ <testCase name="ConcatGenerator/Cat support single-generator construction" duration="{duration}"/>
+ <testCase name="ConcatGenerator/Iterating over multiple generators" duration="{duration}"/>
<testCase name="Filter generator throws exception for empty generator" duration="{duration}"/>
<testCase name="Generators internals" duration="{duration}"/>
<testCase name="Generators internals/Single value" duration="{duration}"/>
@@ -1242,6 +1245,9 @@ at Generators.tests.cpp:<line number>
<testCase name="Generators -- simple/one" duration="{duration}"/>
<testCase name="Generators -- simple/two" duration="{duration}"/>
<testCase name="Nested generators and captured variables" duration="{duration}"/>
+ <testCase name="cat generator" duration="{duration}"/>
+ <testCase name="cat generator/Simple usage" duration="{duration}"/>
+ <testCase name="cat generator/Used in map" duration="{duration}"/>
<testCase name="strlen3" duration="{duration}"/>
<testCase name="tables" duration="{duration}"/>