mirror of
https://github.com/catchorg/Catch2.git
synced 2025-07-19 07:05:32 +02:00
Pass result disposition into RunContext::populateReaction directly
This avoids implicit dataflow through RunContext::m_lastAssertionInfo, which will be useful in later refactoring.
This commit is contained in:
parent
1b72e45354
commit
066f00acf5
@ -612,7 +612,8 @@ namespace Catch {
|
||||
}
|
||||
else {
|
||||
reportExpr(info, ResultWas::ExpressionFailed, &expr, negated );
|
||||
populateReaction( reaction );
|
||||
populateReaction(
|
||||
reaction, info.resultDisposition & ResultDisposition::Normal );
|
||||
}
|
||||
resetAssertionInfo();
|
||||
}
|
||||
@ -647,7 +648,8 @@ namespace Catch {
|
||||
const auto isOk = assertionResult.isOk();
|
||||
assertionEnded( CATCH_MOVE(assertionResult) );
|
||||
if ( !isOk ) {
|
||||
populateReaction( reaction );
|
||||
populateReaction(
|
||||
reaction, info.resultDisposition & ResultDisposition::Normal );
|
||||
} else if ( resultType == ResultWas::ExplicitSkip ) {
|
||||
// TODO: Need to handle this explicitly, as ExplicitSkip is
|
||||
// considered "OK"
|
||||
@ -673,13 +675,15 @@ namespace Catch {
|
||||
data.message = CATCH_MOVE(message);
|
||||
AssertionResult assertionResult{ info, CATCH_MOVE(data) };
|
||||
assertionEnded( CATCH_MOVE(assertionResult) );
|
||||
populateReaction( reaction );
|
||||
populateReaction( reaction,
|
||||
info.resultDisposition & ResultDisposition::Normal );
|
||||
resetAssertionInfo();
|
||||
}
|
||||
|
||||
void RunContext::populateReaction( AssertionReaction& reaction ) {
|
||||
void RunContext::populateReaction( AssertionReaction& reaction,
|
||||
bool has_normal_disposition ) {
|
||||
reaction.shouldDebugBreak = m_shouldDebugBreak;
|
||||
reaction.shouldThrow = aborting() || (m_lastAssertionInfo.resultDisposition & ResultDisposition::Normal);
|
||||
reaction.shouldThrow = aborting() || has_normal_disposition;
|
||||
}
|
||||
|
||||
void RunContext::handleIncomplete(
|
||||
@ -706,7 +710,10 @@ namespace Catch {
|
||||
|
||||
const auto isOk = assertionResult.isOk();
|
||||
assertionEnded( CATCH_MOVE(assertionResult) );
|
||||
if ( !isOk ) { populateReaction( reaction ); }
|
||||
if ( !isOk ) {
|
||||
populateReaction(
|
||||
reaction, info.resultDisposition & ResultDisposition::Normal );
|
||||
}
|
||||
resetAssertionInfo();
|
||||
}
|
||||
|
||||
|
@ -129,7 +129,7 @@ namespace Catch {
|
||||
ITransientExpression const *expr,
|
||||
bool negated );
|
||||
|
||||
void populateReaction( AssertionReaction& reaction );
|
||||
void populateReaction( AssertionReaction& reaction, bool has_normal_disposition );
|
||||
|
||||
private:
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user