mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Stop exceptions in generator constructors from aborting the binary
Fixes #2615
This commit is contained in:
		| @@ -25,6 +25,7 @@ Nor would this | ||||
| :test-result: PASS #1954 - 7 arg template test case sig compiles - 5, 3, 1, 1, 1, 0, 0 | ||||
| :test-result: PASS #2152 - ULP checks between differently signed values were wrong - double | ||||
| :test-result: PASS #2152 - ULP checks between differently signed values were wrong - float | ||||
| :test-result: XFAIL #2615 - Throwing in constructor generator fails test case but does not abort | ||||
| :test-result: XFAIL #748 - captures with unexpected exceptions | ||||
| :test-result: PASS #809 | ||||
| :test-result: PASS #833 | ||||
|   | ||||
| @@ -23,6 +23,7 @@ | ||||
| :test-result: PASS #1954 - 7 arg template test case sig compiles - 5, 3, 1, 1, 1, 0, 0 | ||||
| :test-result: PASS #2152 - ULP checks between differently signed values were wrong - double | ||||
| :test-result: PASS #2152 - ULP checks between differently signed values were wrong - float | ||||
| :test-result: XFAIL #2615 - Throwing in constructor generator fails test case but does not abort | ||||
| :test-result: XFAIL #748 - captures with unexpected exceptions | ||||
| :test-result: PASS #809 | ||||
| :test-result: PASS #833 | ||||
|   | ||||
| @@ -84,6 +84,7 @@ Matchers.tests.cpp:<line number>: passed: smallest_non_zero, WithinULP( -smalles | ||||
| Matchers.tests.cpp:<line number>: passed: smallest_non_zero, !WithinULP( -smallest_non_zero, 1 ) for: 0.0 not is within 1 ULPs of -4.9406564584124654e-324 ([-9.8813129168249309e-324, -0.0000000000000000e+00]) | ||||
| Matchers.tests.cpp:<line number>: passed: smallest_non_zero, WithinULP( -smallest_non_zero, 2 ) for: 0.0f is within 2 ULPs of -1.40129846e-45f ([-4.20389539e-45, 1.40129846e-45]) | ||||
| Matchers.tests.cpp:<line number>: passed: smallest_non_zero, !WithinULP( -smallest_non_zero, 1 ) for: 0.0f not is within 1 ULPs of -1.40129846e-45f ([-2.80259693e-45, -0.00000000e+00]) | ||||
| Generators.tests.cpp:<line number>: failed: unexpected exception with message: 'failure to init' | ||||
| Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'answer := 42' with 1 message: 'expected exception' | ||||
| Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'answer := 42'; expression was: thisThrows() with 1 message: 'expected exception' | ||||
| Exception.tests.cpp:<line number>: passed: thisThrows() with 1 message: 'answer := 42' | ||||
| @@ -2521,7 +2522,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:  407 |  308 passed |  84 failed | 5 skipped | 10 failed as expected | ||||
| assertions: 2209 | 2033 passed | 145 failed | 31 failed as expected | ||||
| test cases:  408 |  308 passed |  84 failed | 5 skipped | 11 failed as expected | ||||
| assertions: 2210 | 2033 passed | 145 failed | 32 failed as expected | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -82,6 +82,7 @@ Matchers.tests.cpp:<line number>: passed: smallest_non_zero, WithinULP( -smalles | ||||
| Matchers.tests.cpp:<line number>: passed: smallest_non_zero, !WithinULP( -smallest_non_zero, 1 ) for: 0.0 not is within 1 ULPs of -4.9406564584124654e-324 ([-9.8813129168249309e-324, -0.0000000000000000e+00]) | ||||
| Matchers.tests.cpp:<line number>: passed: smallest_non_zero, WithinULP( -smallest_non_zero, 2 ) for: 0.0f is within 2 ULPs of -1.40129846e-45f ([-4.20389539e-45, 1.40129846e-45]) | ||||
| Matchers.tests.cpp:<line number>: passed: smallest_non_zero, !WithinULP( -smallest_non_zero, 1 ) for: 0.0f not is within 1 ULPs of -1.40129846e-45f ([-2.80259693e-45, -0.00000000e+00]) | ||||
| Generators.tests.cpp:<line number>: failed: unexpected exception with message: 'failure to init' | ||||
| Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'answer := 42' with 1 message: 'expected exception' | ||||
| Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'answer := 42'; expression was: thisThrows() with 1 message: 'expected exception' | ||||
| Exception.tests.cpp:<line number>: passed: thisThrows() with 1 message: 'answer := 42' | ||||
| @@ -2510,7 +2511,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:  407 |  308 passed |  84 failed | 5 skipped | 10 failed as expected | ||||
| assertions: 2209 | 2033 passed | 145 failed | 31 failed as expected | ||||
| test cases:  408 |  308 passed |  84 failed | 5 skipped | 11 failed as expected | ||||
| assertions: 2210 | 2033 passed | 145 failed | 32 failed as expected | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -27,6 +27,16 @@ Tricky.tests.cpp:<line number>: FAILED: | ||||
| explicitly with message: | ||||
|   1514 | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| #2615 - Throwing in constructor generator fails test case but does not abort | ||||
| ------------------------------------------------------------------------------- | ||||
| Generators.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| Generators.tests.cpp:<line number>: FAILED: | ||||
| due to unexpected exception with message: | ||||
|   failure to init | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| #748 - captures with unexpected exceptions | ||||
|   outside assertions | ||||
| @@ -1523,6 +1533,6 @@ due to unexpected exception with message: | ||||
|   Why would you throw a std::string? | ||||
|  | ||||
| =============================================================================== | ||||
| test cases:  407 |  322 passed |  69 failed | 6 skipped | 10 failed as expected | ||||
| assertions: 2192 | 2033 passed | 128 failed | 31 failed as expected | ||||
| test cases:  408 |  322 passed |  69 failed | 6 skipped | 11 failed as expected | ||||
| assertions: 2193 | 2033 passed | 128 failed | 32 failed as expected | ||||
|  | ||||
|   | ||||
| @@ -761,6 +761,16 @@ with expansion: | ||||
|   0.0f not is within 1 ULPs of -1.40129846e-45f ([-2.80259693e-45, -0. | ||||
|   00000000e+00]) | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| #2615 - Throwing in constructor generator fails test case but does not abort | ||||
| ------------------------------------------------------------------------------- | ||||
| Generators.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| Generators.tests.cpp:<line number>: FAILED: | ||||
| due to unexpected exception with message: | ||||
|   failure to init | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| #748 - captures with unexpected exceptions | ||||
|   outside assertions | ||||
| @@ -18093,6 +18103,6 @@ Misc.tests.cpp:<line number> | ||||
| Misc.tests.cpp:<line number>: PASSED: | ||||
|  | ||||
| =============================================================================== | ||||
| test cases:  407 |  308 passed |  84 failed | 5 skipped | 10 failed as expected | ||||
| assertions: 2209 | 2033 passed | 145 failed | 31 failed as expected | ||||
| test cases:  408 |  308 passed |  84 failed | 5 skipped | 11 failed as expected | ||||
| assertions: 2210 | 2033 passed | 145 failed | 32 failed as expected | ||||
|  | ||||
|   | ||||
| @@ -759,6 +759,16 @@ with expansion: | ||||
|   0.0f not is within 1 ULPs of -1.40129846e-45f ([-2.80259693e-45, -0. | ||||
|   00000000e+00]) | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| #2615 - Throwing in constructor generator fails test case but does not abort | ||||
| ------------------------------------------------------------------------------- | ||||
| Generators.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| Generators.tests.cpp:<line number>: FAILED: | ||||
| due to unexpected exception with message: | ||||
|   failure to init | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| #748 - captures with unexpected exceptions | ||||
|   outside assertions | ||||
| @@ -18082,6 +18092,6 @@ Misc.tests.cpp:<line number> | ||||
| Misc.tests.cpp:<line number>: PASSED: | ||||
|  | ||||
| =============================================================================== | ||||
| test cases:  407 |  308 passed |  84 failed | 5 skipped | 10 failed as expected | ||||
| assertions: 2209 | 2033 passed | 145 failed | 31 failed as expected | ||||
| test cases:  408 |  308 passed |  84 failed | 5 skipped | 11 failed as expected | ||||
| assertions: 2210 | 2033 passed | 145 failed | 32 failed as expected | ||||
|  | ||||
|   | ||||
| @@ -761,6 +761,16 @@ with expansion: | ||||
|   0.0f not is within 1 ULPs of -1.40129846e-45f ([-2.80259693e-45, -0. | ||||
|   00000000e+00]) | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| #2615 - Throwing in constructor generator fails test case but does not abort | ||||
| ------------------------------------------------------------------------------- | ||||
| Generators.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| Generators.tests.cpp:<line number>: FAILED: | ||||
| due to unexpected exception with message: | ||||
|   failure to init | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| #748 - captures with unexpected exceptions | ||||
|   outside assertions | ||||
| @@ -941,6 +951,6 @@ Condition.tests.cpp:<line number>: FAILED: | ||||
|   CHECK( true != true ) | ||||
|  | ||||
| =============================================================================== | ||||
| test cases:  32 | 27 passed | 3 failed | 2 failed as expected | ||||
| assertions: 101 | 94 passed | 4 failed | 3 failed as expected | ||||
| test cases:  33 | 27 passed | 3 failed | 3 failed as expected | ||||
| assertions: 102 | 94 passed | 4 failed | 4 failed as expected | ||||
|  | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <testsuitesloose text artifact | ||||
| > | ||||
|   <testsuite name="<exe-name>" errors="17" failures="128" skipped="11" tests="2220" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||
|   <testsuite name="<exe-name>" errors="17" failures="128" skipped="11" tests="2221" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||
|     <properties> | ||||
|       <property name="random-seed" value="1"/> | ||||
|       <property name="filters" value=""*" ~[!nonportable] ~[!benchmark] ~[approvals]"/> | ||||
| @@ -48,6 +48,14 @@ Nor would this | ||||
|     <testcase classname="<exe-name>.global" name="#1954 - 7 arg template test case sig compiles - 5, 3, 1, 1, 1, 0, 0" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="#2152 - ULP checks between differently signed values were wrong - double" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="#2152 - ULP checks between differently signed values were wrong - float" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="#2615 - Throwing in constructor generator fails test case but does not abort" time="{duration}" status="run"> | ||||
|       <skipped message="TEST_CASE tagged with !mayfail"/> | ||||
|       <error type="TEST_CASE"> | ||||
| FAILED: | ||||
| failure to init | ||||
| at Generators.tests.cpp:<line number> | ||||
|       </error> | ||||
|     </testcase> | ||||
|     <testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions/outside assertions" time="{duration}" status="run"> | ||||
|       <skipped message="TEST_CASE tagged with !mayfail"/> | ||||
|       <error type="TEST_CASE"> | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <testsuites> | ||||
|   <testsuite name="<exe-name>" errors="17" failures="128" skipped="11" tests="2220" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||
|   <testsuite name="<exe-name>" errors="17" failures="128" skipped="11" tests="2221" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||
|     <properties> | ||||
|       <property name="random-seed" value="1"/> | ||||
|       <property name="filters" value=""*" ~[!nonportable] ~[!benchmark] ~[approvals]"/> | ||||
| @@ -47,6 +47,14 @@ Nor would this | ||||
|     <testcase classname="<exe-name>.global" name="#1954 - 7 arg template test case sig compiles - 5, 3, 1, 1, 1, 0, 0" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="#2152 - ULP checks between differently signed values were wrong - double" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="#2152 - ULP checks between differently signed values were wrong - float" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="#2615 - Throwing in constructor generator fails test case but does not abort" time="{duration}" status="run"> | ||||
|       <skipped message="TEST_CASE tagged with !mayfail"/> | ||||
|       <error type="TEST_CASE"> | ||||
| FAILED: | ||||
| failure to init | ||||
| at Generators.tests.cpp:<line number> | ||||
|       </error> | ||||
|     </testcase> | ||||
|     <testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions/outside assertions" time="{duration}" status="run"> | ||||
|       <skipped message="TEST_CASE tagged with !mayfail"/> | ||||
|       <error type="TEST_CASE"> | ||||
|   | ||||
| @@ -1027,6 +1027,13 @@ at Exception.tests.cpp:<line number> | ||||
|   <file path="tests/<exe-name>/UsageTests/Generators.tests.cpp"> | ||||
|     <testCase name="#1913 - GENERATE inside a for loop should not keep recreating the generator" duration="{duration}"/> | ||||
|     <testCase name="#1913 - GENERATEs can share a line" duration="{duration}"/> | ||||
|     <testCase name="#2615 - Throwing in constructor generator fails test case but does not abort" duration="{duration}"> | ||||
|       <skipped message="TEST_CASE()"> | ||||
| FAILED: | ||||
| failure to init | ||||
| at Generators.tests.cpp:<line number> | ||||
|       </skipped> | ||||
|     </testCase> | ||||
|     <testCase name="3x3x3 ints" duration="{duration}"/> | ||||
|     <testCase name="Copy and then generate a range/from var and iterators" duration="{duration}"/> | ||||
|     <testCase name="Copy and then generate a range/From a temporary container" duration="{duration}"/> | ||||
|   | ||||
| @@ -1026,6 +1026,13 @@ at Exception.tests.cpp:<line number> | ||||
|   <file path="tests/<exe-name>/UsageTests/Generators.tests.cpp"> | ||||
|     <testCase name="#1913 - GENERATE inside a for loop should not keep recreating the generator" duration="{duration}"/> | ||||
|     <testCase name="#1913 - GENERATEs can share a line" duration="{duration}"/> | ||||
|     <testCase name="#2615 - Throwing in constructor generator fails test case but does not abort" duration="{duration}"> | ||||
|       <skipped message="TEST_CASE()"> | ||||
| FAILED: | ||||
| failure to init | ||||
| at Generators.tests.cpp:<line number> | ||||
|       </skipped> | ||||
|     </testCase> | ||||
|     <testCase name="3x3x3 ints" duration="{duration}"/> | ||||
|     <testCase name="Copy and then generate a range/from var and iterators" duration="{duration}"/> | ||||
|     <testCase name="Copy and then generate a range/From a temporary container" duration="{duration}"/> | ||||
|   | ||||
| @@ -164,6 +164,8 @@ ok {test-number} - smallest_non_zero, !WithinULP( -smallest_non_zero, 1 ) for: 0 | ||||
| ok {test-number} - smallest_non_zero, WithinULP( -smallest_non_zero, 2 ) for: 0.0f is within 2 ULPs of -1.40129846e-45f ([-4.20389539e-45, 1.40129846e-45]) | ||||
| # #2152 - ULP checks between differently signed values were wrong - float | ||||
| ok {test-number} - smallest_non_zero, !WithinULP( -smallest_non_zero, 1 ) for: 0.0f not is within 1 ULPs of -1.40129846e-45f ([-2.80259693e-45, -0.00000000e+00]) | ||||
| # #2615 - Throwing in constructor generator fails test case but does not abort | ||||
| not ok {test-number} - unexpected exception with message: 'failure to init' | ||||
| # #748 - captures with unexpected exceptions | ||||
| not ok {test-number} - unexpected exception with message: 'answer := 42' with 1 message: 'expected exception' | ||||
| # #748 - captures with unexpected exceptions | ||||
| @@ -4443,5 +4445,5 @@ ok {test-number} - q3 == 23. for: 23.0 == 23.0 | ||||
| ok {test-number} - | ||||
| # xmlentitycheck | ||||
| ok {test-number} - | ||||
| 1..2220 | ||||
| 1..2221 | ||||
|  | ||||
|   | ||||
| @@ -162,6 +162,8 @@ ok {test-number} - smallest_non_zero, !WithinULP( -smallest_non_zero, 1 ) for: 0 | ||||
| ok {test-number} - smallest_non_zero, WithinULP( -smallest_non_zero, 2 ) for: 0.0f is within 2 ULPs of -1.40129846e-45f ([-4.20389539e-45, 1.40129846e-45]) | ||||
| # #2152 - ULP checks between differently signed values were wrong - float | ||||
| ok {test-number} - smallest_non_zero, !WithinULP( -smallest_non_zero, 1 ) for: 0.0f not is within 1 ULPs of -1.40129846e-45f ([-2.80259693e-45, -0.00000000e+00]) | ||||
| # #2615 - Throwing in constructor generator fails test case but does not abort | ||||
| not ok {test-number} - unexpected exception with message: 'failure to init' | ||||
| # #748 - captures with unexpected exceptions | ||||
| not ok {test-number} - unexpected exception with message: 'answer := 42' with 1 message: 'expected exception' | ||||
| # #748 - captures with unexpected exceptions | ||||
| @@ -4432,5 +4434,5 @@ ok {test-number} - q3 == 23. for: 23.0 == 23.0 | ||||
| ok {test-number} - | ||||
| # xmlentitycheck | ||||
| ok {test-number} - | ||||
| 1..2220 | ||||
| 1..2221 | ||||
|  | ||||
|   | ||||
| @@ -52,6 +52,9 @@ | ||||
| ##teamcity[testFinished name='#2152 - ULP checks between differently signed values were wrong - double' duration="{duration}"] | ||||
| ##teamcity[testStarted name='#2152 - ULP checks between differently signed values were wrong - float'] | ||||
| ##teamcity[testFinished name='#2152 - ULP checks between differently signed values were wrong - float' duration="{duration}"] | ||||
| ##teamcity[testStarted name='#2615 - Throwing in constructor generator fails test case but does not abort'] | ||||
| ##teamcity[testIgnored name='#2615 - Throwing in constructor generator fails test case but does not abort' message='Generators.tests.cpp:<line number>|n...............................................................................|n|nGenerators.tests.cpp:<line number>|nunexpected exception with message:|n  "failure to init"- failure ignore as test marked as |'ok to fail|'|n'] | ||||
| ##teamcity[testFinished name='#2615 - Throwing in constructor generator fails test case but does not abort' duration="{duration}"] | ||||
| ##teamcity[testStarted name='#748 - captures with unexpected exceptions'] | ||||
| ##teamcity[testIgnored name='#748 - captures with unexpected exceptions' message='-------------------------------------------------------------------------------|noutside assertions|n-------------------------------------------------------------------------------|nException.tests.cpp:<line number>|n...............................................................................|n|nException.tests.cpp:<line number>|nunexpected exception with messages:|n  "answer := 42"|n  "expected exception"- failure ignore as test marked as |'ok to fail|'|n'] | ||||
| ##teamcity[testIgnored name='#748 - captures with unexpected exceptions' message='-------------------------------------------------------------------------------|ninside REQUIRE_NOTHROW|n-------------------------------------------------------------------------------|nException.tests.cpp:<line number>|n...............................................................................|n|nException.tests.cpp:<line number>|nunexpected exception with messages:|n  "answer := 42"|n  "expected exception"|n  REQUIRE_NOTHROW( thisThrows() )|nwith expansion:|n  thisThrows()|n- failure ignore as test marked as |'ok to fail|'|n'] | ||||
|   | ||||
| @@ -52,6 +52,9 @@ | ||||
| ##teamcity[testFinished name='#2152 - ULP checks between differently signed values were wrong - double' duration="{duration}"] | ||||
| ##teamcity[testStarted name='#2152 - ULP checks between differently signed values were wrong - float'] | ||||
| ##teamcity[testFinished name='#2152 - ULP checks between differently signed values were wrong - float' duration="{duration}"] | ||||
| ##teamcity[testStarted name='#2615 - Throwing in constructor generator fails test case but does not abort'] | ||||
| ##teamcity[testIgnored name='#2615 - Throwing in constructor generator fails test case but does not abort' message='Generators.tests.cpp:<line number>|n...............................................................................|n|nGenerators.tests.cpp:<line number>|nunexpected exception with message:|n  "failure to init"- failure ignore as test marked as |'ok to fail|'|n'] | ||||
| ##teamcity[testFinished name='#2615 - Throwing in constructor generator fails test case but does not abort' duration="{duration}"] | ||||
| ##teamcity[testStarted name='#748 - captures with unexpected exceptions'] | ||||
| ##teamcity[testIgnored name='#748 - captures with unexpected exceptions' message='-------------------------------------------------------------------------------|noutside assertions|n-------------------------------------------------------------------------------|nException.tests.cpp:<line number>|n...............................................................................|n|nException.tests.cpp:<line number>|nunexpected exception with messages:|n  "answer := 42"|n  "expected exception"- failure ignore as test marked as |'ok to fail|'|n'] | ||||
| ##teamcity[testIgnored name='#748 - captures with unexpected exceptions' message='-------------------------------------------------------------------------------|ninside REQUIRE_NOTHROW|n-------------------------------------------------------------------------------|nException.tests.cpp:<line number>|n...............................................................................|n|nException.tests.cpp:<line number>|nunexpected exception with messages:|n  "answer := 42"|n  "expected exception"|n  REQUIRE_NOTHROW( thisThrows() )|nwith expansion:|n  thisThrows()|n- failure ignore as test marked as |'ok to fail|'|n'] | ||||
|   | ||||
| @@ -667,6 +667,12 @@ Nor would this | ||||
|     </Expression> | ||||
|     <OverallResult success="true" skips="0"/> | ||||
|   </TestCase> | ||||
|   <TestCase name="#2615 - Throwing in constructor generator fails test case but does not abort" tags="[!shouldfail]" filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" > | ||||
|     <Exception filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" > | ||||
|       failure to init | ||||
|     </Exception> | ||||
|     <OverallResult success="true" skips="0"/> | ||||
|   </TestCase> | ||||
|   <TestCase name="#748 - captures with unexpected exceptions" tags="[!shouldfail][!throws][.][failing]" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > | ||||
|     <Section name="outside assertions" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > | ||||
|       <Info> | ||||
| @@ -21042,6 +21048,6 @@ b1! | ||||
|     </Section> | ||||
|     <OverallResult success="true" skips="0"/> | ||||
|   </TestCase> | ||||
|   <OverallResults successes="2033" failures="145" expectedFailures="31" skips="11"/> | ||||
|   <OverallResultsCases successes="308" failures="84" expectedFailures="10" skips="5"/> | ||||
|   <OverallResults successes="2033" failures="145" expectedFailures="32" skips="11"/> | ||||
|   <OverallResultsCases successes="308" failures="84" expectedFailures="11" skips="5"/> | ||||
| </Catch2TestRun> | ||||
|   | ||||
| @@ -667,6 +667,12 @@ Nor would this | ||||
|     </Expression> | ||||
|     <OverallResult success="true" skips="0"/> | ||||
|   </TestCase> | ||||
|   <TestCase name="#2615 - Throwing in constructor generator fails test case but does not abort" tags="[!shouldfail]" filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" > | ||||
|     <Exception filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" > | ||||
|       failure to init | ||||
|     </Exception> | ||||
|     <OverallResult success="true" skips="0"/> | ||||
|   </TestCase> | ||||
|   <TestCase name="#748 - captures with unexpected exceptions" tags="[!shouldfail][!throws][.][failing]" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > | ||||
|     <Section name="outside assertions" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > | ||||
|       <Info> | ||||
| @@ -21041,6 +21047,6 @@ b1! | ||||
|     </Section> | ||||
|     <OverallResult success="true" skips="0"/> | ||||
|   </TestCase> | ||||
|   <OverallResults successes="2033" failures="145" expectedFailures="31" skips="11"/> | ||||
|   <OverallResultsCases successes="308" failures="84" expectedFailures="10" skips="5"/> | ||||
|   <OverallResults successes="2033" failures="145" expectedFailures="32" skips="11"/> | ||||
|   <OverallResultsCases successes="308" failures="84" expectedFailures="11" skips="5"/> | ||||
| </Catch2TestRun> | ||||
|   | ||||
| @@ -277,6 +277,37 @@ TEST_CASE("#1913 - GENERATEs can share a line", "[regression][generators]") { | ||||
|     REQUIRE(i != j); | ||||
| } | ||||
|  | ||||
| #if defined(__clang__) | ||||
| #pragma clang diagnostic pop | ||||
| namespace { | ||||
|     class test_generator : public Catch::Generators::IGenerator<int> { | ||||
|     public: | ||||
|         [[noreturn]] explicit test_generator() { | ||||
|             // removing the following line will cause the program to terminate | ||||
|             // gracefully. | ||||
|             throw Catch::GeneratorException( "failure to init" ); | ||||
|         } | ||||
|  | ||||
|         auto get() const -> int const& override { | ||||
|             static constexpr int value = 1; | ||||
|             return value; | ||||
|         } | ||||
|  | ||||
|         auto next() -> bool override { return false; } | ||||
|     }; | ||||
|  | ||||
|     static auto make_test_generator() | ||||
|         -> Catch::Generators::GeneratorWrapper<int> { | ||||
|         return { new test_generator() }; | ||||
|     } | ||||
|  | ||||
| } // namespace | ||||
|  | ||||
| TEST_CASE( "#2615 - Throwing in constructor generator fails test case but does not abort", "[!shouldfail]" ) { | ||||
|     // this should fail the test case, but not abort the application | ||||
|     auto sample = GENERATE( make_test_generator() ); | ||||
|     // this assertion shouldn't trigger | ||||
|     REQUIRE( sample == 0U ); | ||||
| } | ||||
|  | ||||
| #if defined( __clang__ ) | ||||
| #    pragma clang diagnostic pop | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Martin Hořeňovský
					Martin Hořeňovský