Only track the last line info in RunContext

There were only two places where we used the full `AssertionInfo`
instance in `m_lastAssertionInfo`:
1) when reporting unexpected exception from running a test case
2) when reporting fatal error

because in those two places we do not have access to a real
instance of `AssertionInfo`, but we still need to send one to the
reporters. As a bonus, in both of these places we were already
constructing a fake-ish assertion info, by using the last encountered
source location, but dummying out the other information.

Instead, we only keep track of the last encountered source location,
and construct the dummy `AssertionInfo` on-demand.

This finishes the set of refactoring around `m_lastAssertionInfo`
in `RunContext` and improves the performance of running assertions
by ~5% in both Debug and Release mode.

--------------

Note that this change also causes small difference in output. It
could be avoided by having an invalidation flag and tracking where
the information would be invalidated before, but the difference
includes more precise line location for unexpected errors (both
exceptions and fatals), so I prefer the new output.
This commit is contained in:
Martin Hořeňovský 2025-07-16 20:43:34 +02:00
parent 9be81c0e05
commit 0e8112a762
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A
18 changed files with 156 additions and 75 deletions

View File

@ -169,7 +169,7 @@ namespace Catch {
: m_runInfo(_config->name()), : m_runInfo(_config->name()),
m_config(_config), m_config(_config),
m_reporter(CATCH_MOVE(reporter)), m_reporter(CATCH_MOVE(reporter)),
m_lastAssertionInfo{ StringRef(), SourceLineInfo("",0), StringRef(), ResultDisposition::Normal }, m_lastKnownLineInfo("DummyLocation", static_cast<size_t>(-1)),
m_outputRedirect( makeOutputRedirect( m_reporter->getPreferences().shouldRedirectStdOut ) ), m_outputRedirect( makeOutputRedirect( m_reporter->getPreferences().shouldRedirectStdOut ) ),
m_abortAfterXFailedAssertions( m_config->abortAfter() ), m_abortAfterXFailedAssertions( m_config->abortAfter() ),
m_includeSuccessfulResults( m_config->includeSuccessfulResults() || m_reporter->getPreferences().shouldReportAllAssertions ), m_includeSuccessfulResults( m_config->includeSuccessfulResults() || m_reporter->getPreferences().shouldReportAllAssertions ),
@ -307,11 +307,6 @@ namespace Catch {
// populateReaction is run if it is needed // populateReaction is run if it is needed
m_lastResult = CATCH_MOVE( result ); m_lastResult = CATCH_MOVE( result );
} }
void RunContext::resetAssertionInfo() {
m_lastAssertionInfo.macroName = StringRef();
m_lastAssertionInfo.capturedExpression = "{Unknown expression after the reported line}"_sr;
m_lastAssertionInfo.resultDisposition = ResultDisposition::Normal;
}
void RunContext::notifyAssertionStarted( AssertionInfo const& info ) { void RunContext::notifyAssertionStarted( AssertionInfo const& info ) {
auto _ = scopedDeactivate( *m_outputRedirect ); auto _ = scopedDeactivate( *m_outputRedirect );
@ -331,7 +326,7 @@ namespace Catch {
m_activeSections.push_back(&sectionTracker); m_activeSections.push_back(&sectionTracker);
SectionInfo sectionInfo( sectionLineInfo, static_cast<std::string>(sectionName) ); SectionInfo sectionInfo( sectionLineInfo, static_cast<std::string>(sectionName) );
m_lastAssertionInfo.lineInfo = sectionLineInfo; m_lastKnownLineInfo = sectionLineInfo;
{ {
auto _ = scopedDeactivate( *m_outputRedirect ); auto _ = scopedDeactivate( *m_outputRedirect );
@ -350,7 +345,7 @@ namespace Catch {
m_trackerContext, m_trackerContext,
TestCaseTracking::NameAndLocationRef( TestCaseTracking::NameAndLocationRef(
generatorName, lineInfo ) ); generatorName, lineInfo ) );
m_lastAssertionInfo.lineInfo = lineInfo; m_lastKnownLineInfo = lineInfo;
return tracker; return tracker;
} }
@ -476,10 +471,10 @@ namespace Catch {
// Instead, fake a result data. // Instead, fake a result data.
AssertionResultData tempResult( ResultWas::FatalErrorCondition, { false } ); AssertionResultData tempResult( ResultWas::FatalErrorCondition, { false } );
tempResult.message = static_cast<std::string>(message); tempResult.message = static_cast<std::string>(message);
AssertionResult result(m_lastAssertionInfo, CATCH_MOVE(tempResult)); AssertionResult result( makeDummyAssertionInfo(),
CATCH_MOVE( tempResult ) );
assertionEnded(CATCH_MOVE(result) ); assertionEnded(CATCH_MOVE(result) );
resetAssertionInfo();
// Best effort cleanup for sections that have not been destructed yet // Best effort cleanup for sections that have not been destructed yet
// Since this is a fatal error, we have not had and won't have the opportunity to destruct them properly // Since this is a fatal error, we have not had and won't have the opportunity to destruct them properly
@ -520,7 +515,6 @@ namespace Catch {
void RunContext::assertionPassed() { void RunContext::assertionPassed() {
m_lastAssertionPassed = true; m_lastAssertionPassed = true;
++m_totals.assertions.passed; ++m_totals.assertions.passed;
resetAssertionInfo();
m_messageScopes.clear(); m_messageScopes.clear();
} }
@ -535,7 +529,7 @@ namespace Catch {
Counts prevAssertions = m_totals.assertions; Counts prevAssertions = m_totals.assertions;
double duration = 0; double duration = 0;
m_shouldReportUnexpected = true; m_shouldReportUnexpected = true;
m_lastAssertionInfo = { "TEST_CASE"_sr, testCaseInfo.lineInfo, StringRef(), ResultDisposition::Normal }; m_lastKnownLineInfo = testCaseInfo.lineInfo;
Timer timer; Timer timer;
CATCH_TRY { CATCH_TRY {
@ -552,9 +546,11 @@ namespace Catch {
} CATCH_CATCH_ALL { } CATCH_CATCH_ALL {
// Under CATCH_CONFIG_FAST_COMPILE, unexpected exceptions under REQUIRE assertions // Under CATCH_CONFIG_FAST_COMPILE, unexpected exceptions under REQUIRE assertions
// are reported without translation at the point of origin. // are reported without translation at the point of origin.
if( m_shouldReportUnexpected ) { if ( m_shouldReportUnexpected ) {
AssertionReaction dummyReaction; AssertionReaction dummyReaction;
handleUnexpectedInflightException( m_lastAssertionInfo, translateActiveException(), dummyReaction ); handleUnexpectedInflightException( makeDummyAssertionInfo(),
translateActiveException(),
dummyReaction );
} }
} }
Counts assertions = m_totals.assertions - prevAssertions; Counts assertions = m_totals.assertions - prevAssertions;
@ -622,14 +618,13 @@ namespace Catch {
ITransientExpression const *expr, ITransientExpression const *expr,
bool negated ) { bool negated ) {
m_lastAssertionInfo.lineInfo = info.lineInfo; m_lastKnownLineInfo = info.lineInfo;
AssertionResultData data( resultType, LazyExpression( negated ) ); AssertionResultData data( resultType, LazyExpression( negated ) );
AssertionResult assertionResult{ info, CATCH_MOVE( data ) }; AssertionResult assertionResult{ info, CATCH_MOVE( data ) };
assertionResult.m_resultData.lazyExpression.m_transientExpression = expr; assertionResult.m_resultData.lazyExpression.m_transientExpression = expr;
assertionEnded( CATCH_MOVE(assertionResult) ); assertionEnded( CATCH_MOVE(assertionResult) );
resetAssertionInfo();
} }
void RunContext::handleMessage( void RunContext::handleMessage(
@ -638,7 +633,7 @@ namespace Catch {
std::string&& message, std::string&& message,
AssertionReaction& reaction AssertionReaction& reaction
) { ) {
m_lastAssertionInfo.lineInfo = info.lineInfo; m_lastKnownLineInfo = info.lineInfo;
AssertionResultData data( resultType, LazyExpression( false ) ); AssertionResultData data( resultType, LazyExpression( false ) );
data.message = CATCH_MOVE( message ); data.message = CATCH_MOVE( message );
@ -655,8 +650,8 @@ namespace Catch {
// considered "OK" // considered "OK"
reaction.shouldSkip = true; reaction.shouldSkip = true;
} }
resetAssertionInfo();
} }
void RunContext::handleUnexpectedExceptionNotThrown( void RunContext::handleUnexpectedExceptionNotThrown(
AssertionInfo const& info, AssertionInfo const& info,
AssertionReaction& reaction AssertionReaction& reaction
@ -669,7 +664,7 @@ namespace Catch {
std::string&& message, std::string&& message,
AssertionReaction& reaction AssertionReaction& reaction
) { ) {
m_lastAssertionInfo.lineInfo = info.lineInfo; m_lastKnownLineInfo = info.lineInfo;
AssertionResultData data( ResultWas::ThrewException, LazyExpression( false ) ); AssertionResultData data( ResultWas::ThrewException, LazyExpression( false ) );
data.message = CATCH_MOVE(message); data.message = CATCH_MOVE(message);
@ -677,7 +672,6 @@ namespace Catch {
assertionEnded( CATCH_MOVE(assertionResult) ); assertionEnded( CATCH_MOVE(assertionResult) );
populateReaction( reaction, populateReaction( reaction,
info.resultDisposition & ResultDisposition::Normal ); info.resultDisposition & ResultDisposition::Normal );
resetAssertionInfo();
} }
void RunContext::populateReaction( AssertionReaction& reaction, void RunContext::populateReaction( AssertionReaction& reaction,
@ -686,24 +680,36 @@ namespace Catch {
reaction.shouldThrow = aborting() || has_normal_disposition; reaction.shouldThrow = aborting() || has_normal_disposition;
} }
AssertionInfo RunContext::makeDummyAssertionInfo() {
const bool testCaseJustStarted =
m_lastKnownLineInfo == m_activeTestCase->getTestCaseInfo().lineInfo;
return AssertionInfo{
testCaseJustStarted ? "TEST_CASE"_sr : StringRef(),
m_lastKnownLineInfo,
testCaseJustStarted ? StringRef() : "{Unknown expression after the reported line}"_sr,
ResultDisposition::Normal
};
}
void RunContext::handleIncomplete( void RunContext::handleIncomplete(
AssertionInfo const& info AssertionInfo const& info
) { ) {
using namespace std::string_literals; using namespace std::string_literals;
m_lastAssertionInfo.lineInfo = info.lineInfo; m_lastKnownLineInfo = info.lineInfo;
AssertionResultData data( ResultWas::ThrewException, LazyExpression( false ) ); AssertionResultData data( ResultWas::ThrewException, LazyExpression( false ) );
data.message = "Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE"s; data.message = "Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE"s;
AssertionResult assertionResult{ info, CATCH_MOVE( data ) }; AssertionResult assertionResult{ info, CATCH_MOVE( data ) };
assertionEnded( CATCH_MOVE(assertionResult) ); assertionEnded( CATCH_MOVE(assertionResult) );
resetAssertionInfo();
} }
void RunContext::handleNonExpr( void RunContext::handleNonExpr(
AssertionInfo const &info, AssertionInfo const &info,
ResultWas::OfType resultType, ResultWas::OfType resultType,
AssertionReaction &reaction AssertionReaction &reaction
) { ) {
m_lastAssertionInfo.lineInfo = info.lineInfo; m_lastKnownLineInfo = info.lineInfo;
AssertionResultData data( resultType, LazyExpression( false ) ); AssertionResultData data( resultType, LazyExpression( false ) );
AssertionResult assertionResult{ info, CATCH_MOVE( data ) }; AssertionResult assertionResult{ info, CATCH_MOVE( data ) };
@ -714,10 +720,8 @@ namespace Catch {
populateReaction( populateReaction(
reaction, info.resultDisposition & ResultDisposition::Normal ); reaction, info.resultDisposition & ResultDisposition::Normal );
} }
resetAssertionInfo();
} }
IResultCapture& getResultCapture() { IResultCapture& getResultCapture() {
if (auto* capture = getCurrentContext().getResultCapture()) if (auto* capture = getCurrentContext().getResultCapture())
return *capture; return *capture;

View File

@ -119,7 +119,6 @@ namespace Catch {
void runCurrentTest(); void runCurrentTest();
void invokeActiveTestCase(); void invokeActiveTestCase();
void resetAssertionInfo();
bool testForMissingAssertions( Counts& assertions ); bool testForMissingAssertions( Counts& assertions );
void assertionEnded( AssertionResult&& result ); void assertionEnded( AssertionResult&& result );
@ -131,6 +130,11 @@ namespace Catch {
void populateReaction( AssertionReaction& reaction, bool has_normal_disposition ); void populateReaction( AssertionReaction& reaction, bool has_normal_disposition );
// Creates dummy info for unexpected exceptions/fatal errors,
// where we do not have the access to one, but we still need
// to send one to the reporters.
AssertionInfo makeDummyAssertionInfo();
private: private:
void handleUnfinishedSections(); void handleUnfinishedSections();
@ -145,16 +149,18 @@ namespace Catch {
IEventListenerPtr m_reporter; IEventListenerPtr m_reporter;
std::vector<MessageInfo> m_messages; std::vector<MessageInfo> m_messages;
std::vector<ScopedMessage> m_messageScopes; /* Keeps owners of so-called unscoped messages. */ std::vector<ScopedMessage> m_messageScopes; /* Keeps owners of so-called unscoped messages. */
AssertionInfo m_lastAssertionInfo; SourceLineInfo m_lastKnownLineInfo;
std::vector<SectionEndInfo> m_unfinishedSections; std::vector<SectionEndInfo> m_unfinishedSections;
std::vector<ITracker*> m_activeSections; std::vector<ITracker*> m_activeSections;
TrackerContext m_trackerContext; TrackerContext m_trackerContext;
Detail::unique_ptr<OutputRedirect> m_outputRedirect; Detail::unique_ptr<OutputRedirect> m_outputRedirect;
FatalConditionHandler m_fatalConditionhandler; FatalConditionHandler m_fatalConditionhandler;
// Caches m_config->abortAfter() to avoid vptr calls/allow inlining
size_t m_abortAfterXFailedAssertions; size_t m_abortAfterXFailedAssertions;
bool m_lastAssertionPassed = false; bool m_lastAssertionPassed = false;
bool m_shouldReportUnexpected = true; bool m_shouldReportUnexpected = true;
bool m_includeSuccessfulResults; bool m_includeSuccessfulResults;
// Caches m_config->shouldDebugBreak() to avoid vptr calls/allow inlining
bool m_shouldDebugBreak; bool m_shouldDebugBreak;
}; };

View File

@ -84,8 +84,8 @@ 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, 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, 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]) 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' Generators.tests.cpp:<line number>: failed: unexpected exception with message: 'failure to init'; expression was: {Unknown expression after the reported line}
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: {Unknown expression after the reported line} 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>: 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' Exception.tests.cpp:<line number>: passed: thisThrows() with 1 message: 'answer := 42'
Compilation.tests.cpp:<line number>: passed: 42 == f for: 42 == {?} Compilation.tests.cpp:<line number>: passed: 42 == f for: 42 == {?}
@ -2392,7 +2392,7 @@ Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'u
Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0 Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0
Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0 Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0
Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0 Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0
Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'unexpected exception' Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'unexpected exception'; expression was: {Unknown expression after the reported line}
Tricky.tests.cpp:<line number>: passed: Tricky.tests.cpp:<line number>: passed:
Tricky.tests.cpp:<line number>: passed: Tricky.tests.cpp:<line number>: passed:
Tricky.tests.cpp:<line number>: passed: Tricky.tests.cpp:<line number>: passed:

View File

@ -82,8 +82,8 @@ 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, 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, 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]) 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' Generators.tests.cpp:<line number>: failed: unexpected exception with message: 'failure to init'; expression was: {Unknown expression after the reported line}
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: {Unknown expression after the reported line} 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>: 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' Exception.tests.cpp:<line number>: passed: thisThrows() with 1 message: 'answer := 42'
Compilation.tests.cpp:<line number>: passed: 42 == f for: 42 == {?} Compilation.tests.cpp:<line number>: passed: 42 == f for: 42 == {?}
@ -2385,7 +2385,7 @@ Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'u
Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0 Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0
Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0 Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0
Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0 Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0
Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'unexpected exception' Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'unexpected exception'; expression was: {Unknown expression after the reported line}
Tricky.tests.cpp:<line number>: passed: Tricky.tests.cpp:<line number>: passed:
Tricky.tests.cpp:<line number>: passed: Tricky.tests.cpp:<line number>: passed:
Tricky.tests.cpp:<line number>: passed: Tricky.tests.cpp:<line number>: passed:

View File

@ -34,6 +34,7 @@ Generators.tests.cpp:<line number>
............................................................................... ...............................................................................
Generators.tests.cpp:<line number>: FAILED: Generators.tests.cpp:<line number>: FAILED:
{Unknown expression after the reported line}
due to unexpected exception with message: due to unexpected exception with message:
failure to init failure to init
@ -45,6 +46,7 @@ Exception.tests.cpp:<line number>
............................................................................... ...............................................................................
Exception.tests.cpp:<line number>: FAILED: Exception.tests.cpp:<line number>: FAILED:
{Unknown expression after the reported line}
due to unexpected exception with messages: due to unexpected exception with messages:
answer := 42 answer := 42
expected exception expected exception
@ -1248,6 +1250,7 @@ Exception.tests.cpp:<line number>
............................................................................... ...............................................................................
Exception.tests.cpp:<line number>: FAILED: Exception.tests.cpp:<line number>: FAILED:
{Unknown expression after the reported line}
due to unexpected exception with message: due to unexpected exception with message:
unexpected exception unexpected exception

View File

@ -768,6 +768,7 @@ Generators.tests.cpp:<line number>
............................................................................... ...............................................................................
Generators.tests.cpp:<line number>: FAILED: Generators.tests.cpp:<line number>: FAILED:
{Unknown expression after the reported line}
due to unexpected exception with message: due to unexpected exception with message:
failure to init failure to init
@ -779,6 +780,7 @@ Exception.tests.cpp:<line number>
............................................................................... ...............................................................................
Exception.tests.cpp:<line number>: FAILED: Exception.tests.cpp:<line number>: FAILED:
{Unknown expression after the reported line}
due to unexpected exception with messages: due to unexpected exception with messages:
answer := 42 answer := 42
expected exception expected exception
@ -15783,6 +15785,7 @@ Exception.tests.cpp:<line number>
............................................................................... ...............................................................................
Exception.tests.cpp:<line number>: FAILED: Exception.tests.cpp:<line number>: FAILED:
{Unknown expression after the reported line}
due to unexpected exception with message: due to unexpected exception with message:
unexpected exception unexpected exception

View File

@ -766,6 +766,7 @@ Generators.tests.cpp:<line number>
............................................................................... ...............................................................................
Generators.tests.cpp:<line number>: FAILED: Generators.tests.cpp:<line number>: FAILED:
{Unknown expression after the reported line}
due to unexpected exception with message: due to unexpected exception with message:
failure to init failure to init
@ -777,6 +778,7 @@ Exception.tests.cpp:<line number>
............................................................................... ...............................................................................
Exception.tests.cpp:<line number>: FAILED: Exception.tests.cpp:<line number>: FAILED:
{Unknown expression after the reported line}
due to unexpected exception with messages: due to unexpected exception with messages:
answer := 42 answer := 42
expected exception expected exception
@ -15776,6 +15778,7 @@ Exception.tests.cpp:<line number>
............................................................................... ...............................................................................
Exception.tests.cpp:<line number>: FAILED: Exception.tests.cpp:<line number>: FAILED:
{Unknown expression after the reported line}
due to unexpected exception with message: due to unexpected exception with message:
unexpected exception unexpected exception

View File

@ -768,6 +768,7 @@ Generators.tests.cpp:<line number>
............................................................................... ...............................................................................
Generators.tests.cpp:<line number>: FAILED: Generators.tests.cpp:<line number>: FAILED:
{Unknown expression after the reported line}
due to unexpected exception with message: due to unexpected exception with message:
failure to init failure to init
@ -779,6 +780,7 @@ Exception.tests.cpp:<line number>
............................................................................... ...............................................................................
Exception.tests.cpp:<line number>: FAILED: Exception.tests.cpp:<line number>: FAILED:
{Unknown expression after the reported line}
due to unexpected exception with messages: due to unexpected exception with messages:
answer := 42 answer := 42
expected exception expected exception

View File

@ -53,8 +53,9 @@ Nor would this
<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="#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"> <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"/> <skipped message="TEST_CASE tagged with !mayfail"/>
<error type="TEST_CASE"> <error message="{Unknown expression after the reported line}">
FAILED: FAILED:
{Unknown expression after the reported line}
failure to init failure to init
at Generators.tests.cpp:<line number> at Generators.tests.cpp:<line number>
</error> </error>
@ -62,8 +63,9 @@ at Generators.tests.cpp:<line number>
<testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions" time="{duration}" status="run"/> <testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions/outside assertions" time="{duration}" status="run"> <testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions/outside assertions" time="{duration}" status="run">
<skipped message="TEST_CASE tagged with !mayfail"/> <skipped message="TEST_CASE tagged with !mayfail"/>
<error type="TEST_CASE"> <error message="{Unknown expression after the reported line}">
FAILED: FAILED:
{Unknown expression after the reported line}
expected exception expected exception
answer := 42 answer := 42
at Exception.tests.cpp:<line number> at Exception.tests.cpp:<line number>
@ -1837,8 +1839,9 @@ at Exception.tests.cpp:<line number>
</error> </error>
</testcase> </testcase>
<testcase classname="<exe-name>.global" name="When unchecked exceptions are thrown from sections they are always failures/section name" time="{duration}" status="run"> <testcase classname="<exe-name>.global" name="When unchecked exceptions are thrown from sections they are always failures/section name" time="{duration}" status="run">
<error type="TEST_CASE"> <error message="{Unknown expression after the reported line}">
FAILED: FAILED:
{Unknown expression after the reported line}
unexpected exception unexpected exception
at Exception.tests.cpp:<line number> at Exception.tests.cpp:<line number>
</error> </error>

View File

@ -52,8 +52,9 @@ Nor would this
<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="#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"> <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"/> <skipped message="TEST_CASE tagged with !mayfail"/>
<error type="TEST_CASE"> <error message="{Unknown expression after the reported line}">
FAILED: FAILED:
{Unknown expression after the reported line}
failure to init failure to init
at Generators.tests.cpp:<line number> at Generators.tests.cpp:<line number>
</error> </error>
@ -61,8 +62,9 @@ at Generators.tests.cpp:<line number>
<testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions" time="{duration}" status="run"/> <testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions" time="{duration}" status="run"/>
<testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions/outside assertions" time="{duration}" status="run"> <testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions/outside assertions" time="{duration}" status="run">
<skipped message="TEST_CASE tagged with !mayfail"/> <skipped message="TEST_CASE tagged with !mayfail"/>
<error type="TEST_CASE"> <error message="{Unknown expression after the reported line}">
FAILED: FAILED:
{Unknown expression after the reported line}
expected exception expected exception
answer := 42 answer := 42
at Exception.tests.cpp:<line number> at Exception.tests.cpp:<line number>
@ -1836,8 +1838,9 @@ at Exception.tests.cpp:<line number>
</error> </error>
</testcase> </testcase>
<testcase classname="<exe-name>.global" name="When unchecked exceptions are thrown from sections they are always failures/section name" time="{duration}" status="run"> <testcase classname="<exe-name>.global" name="When unchecked exceptions are thrown from sections they are always failures/section name" time="{duration}" status="run">
<error type="TEST_CASE"> <error message="{Unknown expression after the reported line}">
FAILED: FAILED:
{Unknown expression after the reported line}
unexpected exception unexpected exception
at Exception.tests.cpp:<line number> at Exception.tests.cpp:<line number>
</error> </error>

View File

@ -1008,8 +1008,9 @@ at Decomposition.tests.cpp:<line number>
<file path="tests/<exe-name>/UsageTests/Exception.tests.cpp"> <file path="tests/<exe-name>/UsageTests/Exception.tests.cpp">
<testCase name="#748 - captures with unexpected exceptions" duration="{duration}"/> <testCase name="#748 - captures with unexpected exceptions" duration="{duration}"/>
<testCase name="#748 - captures with unexpected exceptions/outside assertions" duration="{duration}"> <testCase name="#748 - captures with unexpected exceptions/outside assertions" duration="{duration}">
<skipped message="TEST_CASE()"> <skipped message="({Unknown expression after the reported line})">
FAILED: FAILED:
{Unknown expression after the reported line}
expected exception expected exception
answer := 42 answer := 42
at Exception.tests.cpp:<line number> at Exception.tests.cpp:<line number>
@ -1142,8 +1143,9 @@ at Exception.tests.cpp:<line number>
</error> </error>
</testCase> </testCase>
<testCase name="When unchecked exceptions are thrown from sections they are always failures/section name" duration="{duration}"> <testCase name="When unchecked exceptions are thrown from sections they are always failures/section name" duration="{duration}">
<error message="TEST_CASE()"> <error message="({Unknown expression after the reported line})">
FAILED: FAILED:
{Unknown expression after the reported line}
unexpected exception unexpected exception
at Exception.tests.cpp:<line number> at Exception.tests.cpp:<line number>
</error> </error>
@ -1161,8 +1163,9 @@ at Exception.tests.cpp:<line number>
<testCase name="#1913 - GENERATE inside a for loop should not keep recreating the generator" duration="{duration}"/> <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="#1913 - GENERATEs can share a line" duration="{duration}"/>
<testCase name="#2615 - Throwing in constructor generator fails test case but does not abort" duration="{duration}"> <testCase name="#2615 - Throwing in constructor generator fails test case but does not abort" duration="{duration}">
<skipped message="TEST_CASE()"> <skipped message="({Unknown expression after the reported line})">
FAILED: FAILED:
{Unknown expression after the reported line}
failure to init failure to init
at Generators.tests.cpp:<line number> at Generators.tests.cpp:<line number>
</skipped> </skipped>

View File

@ -1007,8 +1007,9 @@ at Decomposition.tests.cpp:<line number>
<file path="tests/<exe-name>/UsageTests/Exception.tests.cpp"> <file path="tests/<exe-name>/UsageTests/Exception.tests.cpp">
<testCase name="#748 - captures with unexpected exceptions" duration="{duration}"/> <testCase name="#748 - captures with unexpected exceptions" duration="{duration}"/>
<testCase name="#748 - captures with unexpected exceptions/outside assertions" duration="{duration}"> <testCase name="#748 - captures with unexpected exceptions/outside assertions" duration="{duration}">
<skipped message="TEST_CASE()"> <skipped message="({Unknown expression after the reported line})">
FAILED: FAILED:
{Unknown expression after the reported line}
expected exception expected exception
answer := 42 answer := 42
at Exception.tests.cpp:<line number> at Exception.tests.cpp:<line number>
@ -1141,8 +1142,9 @@ at Exception.tests.cpp:<line number>
</error> </error>
</testCase> </testCase>
<testCase name="When unchecked exceptions are thrown from sections they are always failures/section name" duration="{duration}"> <testCase name="When unchecked exceptions are thrown from sections they are always failures/section name" duration="{duration}">
<error message="TEST_CASE()"> <error message="({Unknown expression after the reported line})">
FAILED: FAILED:
{Unknown expression after the reported line}
unexpected exception unexpected exception
at Exception.tests.cpp:<line number> at Exception.tests.cpp:<line number>
</error> </error>
@ -1160,8 +1162,9 @@ at Exception.tests.cpp:<line number>
<testCase name="#1913 - GENERATE inside a for loop should not keep recreating the generator" duration="{duration}"/> <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="#1913 - GENERATEs can share a line" duration="{duration}"/>
<testCase name="#2615 - Throwing in constructor generator fails test case but does not abort" duration="{duration}"> <testCase name="#2615 - Throwing in constructor generator fails test case but does not abort" duration="{duration}">
<skipped message="TEST_CASE()"> <skipped message="({Unknown expression after the reported line})">
FAILED: FAILED:
{Unknown expression after the reported line}
failure to init failure to init
at Generators.tests.cpp:<line number> at Generators.tests.cpp:<line number>
</skipped> </skipped>

View File

@ -165,9 +165,9 @@ ok {test-number} - smallest_non_zero, WithinULP( -smallest_non_zero, 2 ) for: 0.
# #2152 - ULP checks between differently signed values were wrong - float # #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]) 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 # #2615 - Throwing in constructor generator fails test case but does not abort
not ok {test-number} - unexpected exception with message: 'failure to init' not ok {test-number} - unexpected exception with message: 'failure to init'; expression was: {Unknown expression after the reported line}
# #748 - captures with unexpected exceptions # #748 - captures with unexpected exceptions
not ok {test-number} - unexpected exception with message: 'answer := 42' with 1 message: 'expected exception' not ok {test-number} - unexpected exception with message: 'answer := 42'; expression was: {Unknown expression after the reported line} with 1 message: 'expected exception'
# #748 - captures with unexpected exceptions # #748 - captures with unexpected exceptions
not ok {test-number} - unexpected exception with message: 'answer := 42'; expression was: thisThrows() with 1 message: 'expected exception' not ok {test-number} - unexpected exception with message: 'answer := 42'; expression was: thisThrows() with 1 message: 'expected exception'
# #748 - captures with unexpected exceptions # #748 - captures with unexpected exceptions
@ -3772,7 +3772,7 @@ not ok {test-number} - unexpected exception with message: 'expected exception';
# When unchecked exceptions are thrown from functions they are always failures # When unchecked exceptions are thrown from functions they are always failures
not ok {test-number} - unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0 not ok {test-number} - unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0
# When unchecked exceptions are thrown from sections they are always failures # When unchecked exceptions are thrown from sections they are always failures
not ok {test-number} - unexpected exception with message: 'unexpected exception' not ok {test-number} - unexpected exception with message: 'unexpected exception'; expression was: {Unknown expression after the reported line}
# X/level/0/a # X/level/0/a
ok {test-number} - ok {test-number} -
# X/level/0/b # X/level/0/b

View File

@ -163,9 +163,9 @@ ok {test-number} - smallest_non_zero, WithinULP( -smallest_non_zero, 2 ) for: 0.
# #2152 - ULP checks between differently signed values were wrong - float # #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]) 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 # #2615 - Throwing in constructor generator fails test case but does not abort
not ok {test-number} - unexpected exception with message: 'failure to init' not ok {test-number} - unexpected exception with message: 'failure to init'; expression was: {Unknown expression after the reported line}
# #748 - captures with unexpected exceptions # #748 - captures with unexpected exceptions
not ok {test-number} - unexpected exception with message: 'answer := 42' with 1 message: 'expected exception' not ok {test-number} - unexpected exception with message: 'answer := 42'; expression was: {Unknown expression after the reported line} with 1 message: 'expected exception'
# #748 - captures with unexpected exceptions # #748 - captures with unexpected exceptions
not ok {test-number} - unexpected exception with message: 'answer := 42'; expression was: thisThrows() with 1 message: 'expected exception' not ok {test-number} - unexpected exception with message: 'answer := 42'; expression was: thisThrows() with 1 message: 'expected exception'
# #748 - captures with unexpected exceptions # #748 - captures with unexpected exceptions
@ -3765,7 +3765,7 @@ not ok {test-number} - unexpected exception with message: 'expected exception';
# When unchecked exceptions are thrown from functions they are always failures # When unchecked exceptions are thrown from functions they are always failures
not ok {test-number} - unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0 not ok {test-number} - unexpected exception with message: 'expected exception'; expression was: thisThrows() == 0
# When unchecked exceptions are thrown from sections they are always failures # When unchecked exceptions are thrown from sections they are always failures
not ok {test-number} - unexpected exception with message: 'unexpected exception' not ok {test-number} - unexpected exception with message: 'unexpected exception'; expression was: {Unknown expression after the reported line}
# X/level/0/a # X/level/0/a
ok {test-number} - ok {test-number} -
# X/level/0/b # X/level/0/b

View File

@ -53,10 +53,10 @@
##teamcity[testStarted name='#2152 - ULP checks between differently signed values were wrong - float'] ##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[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[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[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"|n {Unknown expression after the reported line}|nwith expansion:|n {Unknown expression after the reported line}|n- 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[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[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='-------------------------------------------------------------------------------|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"|n {Unknown expression after the reported line}|nwith expansion:|n {Unknown expression after the reported line}|n- 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'] ##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']
##teamcity[testFinished name='#748 - captures with unexpected exceptions' duration="{duration}"] ##teamcity[testFinished name='#748 - captures with unexpected exceptions' duration="{duration}"]
##teamcity[testStarted name='#809'] ##teamcity[testStarted name='#809']
@ -751,7 +751,7 @@
##teamcity[testFailed name='When unchecked exceptions are thrown from functions they are always failures' message='Exception.tests.cpp:<line number>|n...............................................................................|n|nException.tests.cpp:<line number>|nunexpected exception with message:|n "expected exception"|n CHECK( thisThrows() == 0 )|nwith expansion:|n thisThrows() == 0|n'] ##teamcity[testFailed name='When unchecked exceptions are thrown from functions they are always failures' message='Exception.tests.cpp:<line number>|n...............................................................................|n|nException.tests.cpp:<line number>|nunexpected exception with message:|n "expected exception"|n CHECK( thisThrows() == 0 )|nwith expansion:|n thisThrows() == 0|n']
##teamcity[testFinished name='When unchecked exceptions are thrown from functions they are always failures' duration="{duration}"] ##teamcity[testFinished name='When unchecked exceptions are thrown from functions they are always failures' duration="{duration}"]
##teamcity[testStarted name='When unchecked exceptions are thrown from sections they are always failures'] ##teamcity[testStarted name='When unchecked exceptions are thrown from sections they are always failures']
##teamcity[testFailed name='When unchecked exceptions are thrown from sections they are always failures' message='-------------------------------------------------------------------------------|nsection name|n-------------------------------------------------------------------------------|nException.tests.cpp:<line number>|n...............................................................................|n|nException.tests.cpp:<line number>|nunexpected exception with message:|n "unexpected exception"'] ##teamcity[testFailed name='When unchecked exceptions are thrown from sections they are always failures' message='-------------------------------------------------------------------------------|nsection name|n-------------------------------------------------------------------------------|nException.tests.cpp:<line number>|n...............................................................................|n|nException.tests.cpp:<line number>|nunexpected exception with message:|n "unexpected exception"|n {Unknown expression after the reported line}|nwith expansion:|n {Unknown expression after the reported line}|n']
##teamcity[testFinished name='When unchecked exceptions are thrown from sections they are always failures' duration="{duration}"] ##teamcity[testFinished name='When unchecked exceptions are thrown from sections they are always failures' duration="{duration}"]
##teamcity[testStarted name='When unchecked exceptions are thrown, but caught, they do not affect the test'] ##teamcity[testStarted name='When unchecked exceptions are thrown, but caught, they do not affect the test']
##teamcity[testFinished name='When unchecked exceptions are thrown, but caught, they do not affect the test' duration="{duration}"] ##teamcity[testFinished name='When unchecked exceptions are thrown, but caught, they do not affect the test' duration="{duration}"]

View File

@ -53,10 +53,10 @@
##teamcity[testStarted name='#2152 - ULP checks between differently signed values were wrong - float'] ##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[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[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[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"|n {Unknown expression after the reported line}|nwith expansion:|n {Unknown expression after the reported line}|n- 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[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[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='-------------------------------------------------------------------------------|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"|n {Unknown expression after the reported line}|nwith expansion:|n {Unknown expression after the reported line}|n- 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'] ##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']
##teamcity[testFinished name='#748 - captures with unexpected exceptions' duration="{duration}"] ##teamcity[testFinished name='#748 - captures with unexpected exceptions' duration="{duration}"]
##teamcity[testStarted name='#809'] ##teamcity[testStarted name='#809']
@ -751,7 +751,7 @@
##teamcity[testFailed name='When unchecked exceptions are thrown from functions they are always failures' message='Exception.tests.cpp:<line number>|n...............................................................................|n|nException.tests.cpp:<line number>|nunexpected exception with message:|n "expected exception"|n CHECK( thisThrows() == 0 )|nwith expansion:|n thisThrows() == 0|n'] ##teamcity[testFailed name='When unchecked exceptions are thrown from functions they are always failures' message='Exception.tests.cpp:<line number>|n...............................................................................|n|nException.tests.cpp:<line number>|nunexpected exception with message:|n "expected exception"|n CHECK( thisThrows() == 0 )|nwith expansion:|n thisThrows() == 0|n']
##teamcity[testFinished name='When unchecked exceptions are thrown from functions they are always failures' duration="{duration}"] ##teamcity[testFinished name='When unchecked exceptions are thrown from functions they are always failures' duration="{duration}"]
##teamcity[testStarted name='When unchecked exceptions are thrown from sections they are always failures'] ##teamcity[testStarted name='When unchecked exceptions are thrown from sections they are always failures']
##teamcity[testFailed name='When unchecked exceptions are thrown from sections they are always failures' message='-------------------------------------------------------------------------------|nsection name|n-------------------------------------------------------------------------------|nException.tests.cpp:<line number>|n...............................................................................|n|nException.tests.cpp:<line number>|nunexpected exception with message:|n "unexpected exception"'] ##teamcity[testFailed name='When unchecked exceptions are thrown from sections they are always failures' message='-------------------------------------------------------------------------------|nsection name|n-------------------------------------------------------------------------------|nException.tests.cpp:<line number>|n...............................................................................|n|nException.tests.cpp:<line number>|nunexpected exception with message:|n "unexpected exception"|n {Unknown expression after the reported line}|nwith expansion:|n {Unknown expression after the reported line}|n']
##teamcity[testFinished name='When unchecked exceptions are thrown from sections they are always failures' duration="{duration}"] ##teamcity[testFinished name='When unchecked exceptions are thrown from sections they are always failures' duration="{duration}"]
##teamcity[testStarted name='When unchecked exceptions are thrown, but caught, they do not affect the test'] ##teamcity[testStarted name='When unchecked exceptions are thrown, but caught, they do not affect the test']
##teamcity[testFinished name='When unchecked exceptions are thrown, but caught, they do not affect the test' duration="{duration}"] ##teamcity[testFinished name='When unchecked exceptions are thrown, but caught, they do not affect the test' duration="{duration}"]

View File

@ -668,9 +668,17 @@ Nor would this
<OverallResult success="true" skips="0"/> <OverallResult success="true" skips="0"/>
</TestCase> </TestCase>
<TestCase name="#2615 - Throwing in constructor generator fails test case but does not abort" tags="[!shouldfail][generators][regression]" filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" > <TestCase name="#2615 - Throwing in constructor generator fails test case but does not abort" tags="[!shouldfail][generators][regression]" filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" >
<Exception filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" > <Expression success="false" filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" >
failure to init <Original>
</Exception> {Unknown expression after the reported line}
</Original>
<Expanded>
{Unknown expression after the reported line}
</Expanded>
<Exception filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" >
failure to init
</Exception>
</Expression>
<OverallResult success="true" skips="0"/> <OverallResult success="true" skips="0"/>
</TestCase> </TestCase>
<TestCase name="#748 - captures with unexpected exceptions" tags="[!shouldfail][!throws][.][failing]" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <TestCase name="#748 - captures with unexpected exceptions" tags="[!shouldfail][!throws][.][failing]" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
@ -678,9 +686,17 @@ Nor would this
<Info filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <Info filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
answer := 42 answer := 42
</Info> </Info>
<Exception filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <Expression success="false" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
expected exception <Original>
</Exception> {Unknown expression after the reported line}
</Original>
<Expanded>
{Unknown expression after the reported line}
</Expanded>
<Exception filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
expected exception
</Exception>
</Expression>
<OverallResults successes="0" failures="0" expectedFailures="1" skipped="false"/> <OverallResults successes="0" failures="0" expectedFailures="1" skipped="false"/>
</Section> </Section>
<Section name="inside REQUIRE_NOTHROW" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <Section name="inside REQUIRE_NOTHROW" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
@ -18349,9 +18365,17 @@ Approx( 1.23999999999999999 )
</TestCase> </TestCase>
<TestCase name="When unchecked exceptions are thrown from sections they are always failures" tags="[!throws][.][failing]" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <TestCase name="When unchecked exceptions are thrown from sections they are always failures" tags="[!throws][.][failing]" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
<Section name="section name" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <Section name="section name" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
<Exception filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <Expression success="false" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
unexpected exception <Original>
</Exception> {Unknown expression after the reported line}
</Original>
<Expanded>
{Unknown expression after the reported line}
</Expanded>
<Exception filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
unexpected exception
</Exception>
</Expression>
<OverallResults successes="0" failures="1" expectedFailures="0" skipped="false"/> <OverallResults successes="0" failures="1" expectedFailures="0" skipped="false"/>
</Section> </Section>
<OverallResult success="false" skips="0"/> <OverallResult success="false" skips="0"/>

View File

@ -668,9 +668,17 @@ Nor would this
<OverallResult success="true" skips="0"/> <OverallResult success="true" skips="0"/>
</TestCase> </TestCase>
<TestCase name="#2615 - Throwing in constructor generator fails test case but does not abort" tags="[!shouldfail][generators][regression]" filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" > <TestCase name="#2615 - Throwing in constructor generator fails test case but does not abort" tags="[!shouldfail][generators][regression]" filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" >
<Exception filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" > <Expression success="false" filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" >
failure to init <Original>
</Exception> {Unknown expression after the reported line}
</Original>
<Expanded>
{Unknown expression after the reported line}
</Expanded>
<Exception filename="tests/<exe-name>/UsageTests/Generators.tests.cpp" >
failure to init
</Exception>
</Expression>
<OverallResult success="true" skips="0"/> <OverallResult success="true" skips="0"/>
</TestCase> </TestCase>
<TestCase name="#748 - captures with unexpected exceptions" tags="[!shouldfail][!throws][.][failing]" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <TestCase name="#748 - captures with unexpected exceptions" tags="[!shouldfail][!throws][.][failing]" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
@ -678,9 +686,17 @@ Nor would this
<Info filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <Info filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
answer := 42 answer := 42
</Info> </Info>
<Exception filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <Expression success="false" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
expected exception <Original>
</Exception> {Unknown expression after the reported line}
</Original>
<Expanded>
{Unknown expression after the reported line}
</Expanded>
<Exception filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
expected exception
</Exception>
</Expression>
<OverallResults successes="0" failures="0" expectedFailures="1" skipped="false"/> <OverallResults successes="0" failures="0" expectedFailures="1" skipped="false"/>
</Section> </Section>
<Section name="inside REQUIRE_NOTHROW" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <Section name="inside REQUIRE_NOTHROW" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
@ -18349,9 +18365,17 @@ Approx( 1.23999999999999999 )
</TestCase> </TestCase>
<TestCase name="When unchecked exceptions are thrown from sections they are always failures" tags="[!throws][.][failing]" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <TestCase name="When unchecked exceptions are thrown from sections they are always failures" tags="[!throws][.][failing]" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
<Section name="section name" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <Section name="section name" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
<Exception filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" > <Expression success="false" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
unexpected exception <Original>
</Exception> {Unknown expression after the reported line}
</Original>
<Expanded>
{Unknown expression after the reported line}
</Expanded>
<Exception filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
unexpected exception
</Exception>
</Expression>
<OverallResults successes="0" failures="1" expectedFailures="0" skipped="false"/> <OverallResults successes="0" failures="1" expectedFailures="0" skipped="false"/>
</Section> </Section>
<OverallResult success="false" skips="0"/> <OverallResult success="false" skips="0"/>