Fixed expansion of _FALSE binary expression

- see #1051
This commit is contained in:
Phil Nash 2017-10-13 19:44:20 +01:00
parent 9c07718b5f
commit da6c2a6914
5 changed files with 20 additions and 18 deletions

View File

@ -66,7 +66,7 @@ namespace Catch {
std::string AssertionResult::getExpression() const { std::string AssertionResult::getExpression() const {
if( isFalseTest( m_info.resultDisposition ) ) if( isFalseTest( m_info.resultDisposition ) )
return '!' + capturedExpressionWithSecondArgument(m_info.capturedExpression, m_info.secondArg); return "!(" + capturedExpressionWithSecondArgument(m_info.capturedExpression, m_info.secondArg) + ")";
else else
return capturedExpressionWithSecondArgument(m_info.capturedExpression, m_info.secondArg); return capturedExpressionWithSecondArgument(m_info.capturedExpression, m_info.secondArg);
} }

View File

@ -58,6 +58,8 @@ with expansion:
ConditionTests.cpp:<line number>: FAILED: ConditionTests.cpp:<line number>: FAILED:
CHECK_FALSE( true ) CHECK_FALSE( true )
with expansion:
!true
ConditionTests.cpp:<line number>: FAILED: ConditionTests.cpp:<line number>: FAILED:
CHECK( !trueValue ) CHECK( !trueValue )
@ -76,8 +78,6 @@ with expansion:
ConditionTests.cpp:<line number>: FAILED: ConditionTests.cpp:<line number>: FAILED:
CHECK_FALSE( 1 == 1 ) CHECK_FALSE( 1 == 1 )
with expansion:
!(1 == 1)
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A METHOD_AS_TEST_CASE based test run that fails A METHOD_AS_TEST_CASE based test run that fails

View File

@ -202,6 +202,8 @@ with expansion:
ConditionTests.cpp:<line number>: FAILED: ConditionTests.cpp:<line number>: FAILED:
CHECK_FALSE( true ) CHECK_FALSE( true )
with expansion:
!true
ConditionTests.cpp:<line number>: FAILED: ConditionTests.cpp:<line number>: FAILED:
CHECK( !trueValue ) CHECK( !trueValue )
@ -220,8 +222,6 @@ with expansion:
ConditionTests.cpp:<line number>: FAILED: ConditionTests.cpp:<line number>: FAILED:
CHECK_FALSE( 1 == 1 ) CHECK_FALSE( 1 == 1 )
with expansion:
!(1 == 1)
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
'Not' checks that should succeed 'Not' checks that should succeed
@ -246,6 +246,8 @@ with expansion:
ConditionTests.cpp:<line number>: ConditionTests.cpp:<line number>:
PASSED: PASSED:
REQUIRE_FALSE( false ) REQUIRE_FALSE( false )
with expansion:
!false
ConditionTests.cpp:<line number>: ConditionTests.cpp:<line number>:
PASSED: PASSED:
@ -268,8 +270,6 @@ with expansion:
ConditionTests.cpp:<line number>: ConditionTests.cpp:<line number>:
PASSED: PASSED:
REQUIRE_FALSE( 1 == 2 ) REQUIRE_FALSE( 1 == 2 )
with expansion:
!(1 == 2)
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
(unimplemented) static bools can be evaluated (unimplemented) static bools can be evaluated

View File

@ -202,6 +202,8 @@ with expansion:
ConditionTests.cpp:<line number>: FAILED: ConditionTests.cpp:<line number>: FAILED:
CHECK_FALSE( true ) CHECK_FALSE( true )
with expansion:
!true
=============================================================================== ===============================================================================
test cases: 7 | 4 passed | 1 failed | 2 failed as expected test cases: 7 | 4 passed | 1 failed | 2 failed as expected

View File

@ -181,7 +181,7 @@
</Expression> </Expression>
<Expression success="false" type="CHECK_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" > <Expression success="false" type="CHECK_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" >
<Original> <Original>
!true !(true)
</Original> </Original>
<Expanded> <Expanded>
!true !true
@ -197,7 +197,7 @@
</Expression> </Expression>
<Expression success="false" type="CHECK_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" > <Expression success="false" type="CHECK_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" >
<Original> <Original>
!trueValue !(trueValue)
</Original> </Original>
<Expanded> <Expanded>
!true !true
@ -213,7 +213,7 @@
</Expression> </Expression>
<Expression success="false" type="CHECK_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" > <Expression success="false" type="CHECK_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" >
<Original> <Original>
!1 == 1 !(1 == 1)
</Original> </Original>
<Expanded> <Expanded>
!(1 == 1) !(1 == 1)
@ -248,7 +248,7 @@
</Expression> </Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" > <Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" >
<Original> <Original>
!false !(false)
</Original> </Original>
<Expanded> <Expanded>
!false !false
@ -264,7 +264,7 @@
</Expression> </Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" > <Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" >
<Original> <Original>
!falseValue !(falseValue)
</Original> </Original>
<Expanded> <Expanded>
!false !false
@ -280,7 +280,7 @@
</Expression> </Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" > <Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" >
<Original> <Original>
!1 == 2 !(1 == 2)
</Original> </Original>
<Expanded> <Expanded>
!(1 == 2) !(1 == 2)
@ -360,7 +360,7 @@
</Expression> </Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/TrickyTests.cpp" > <Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/TrickyTests.cpp" >
<Original> <Original>
!is_true&lt;false>::value !(is_true&lt;false>::value)
</Original> </Original>
<Expanded> <Expanded>
!false !false
@ -2708,7 +2708,7 @@
</Expression> </Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ApproxTests.cpp" > <Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original> <Original>
!d >= Approx( 1.24 ) !(d >= Approx( 1.24 ))
</Original> </Original>
<Expanded> <Expanded>
!(1.23 >= Approx( 1.24 )) !(1.23 >= Approx( 1.24 ))
@ -2968,7 +2968,7 @@
</Expression> </Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ApproxTests.cpp" > <Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original> <Original>
!d &lt;= Approx( 1.22 ) !(d &lt;= Approx( 1.22 ))
</Original> </Original>
<Expanded> <Expanded>
!(1.23 &lt;= Approx( 1.22 )) !(1.23 &lt;= Approx( 1.22 ))
@ -4726,7 +4726,7 @@ re>"
</Expression> </Expression>
<Expression success="true" type="CHECK_FALSE" filename="projects/<exe-name>/TrickyTests.cpp" > <Expression success="true" type="CHECK_FALSE" filename="projects/<exe-name>/TrickyTests.cpp" >
<Original> <Original>
!False !(False)
</Original> </Original>
<Expanded> <Expanded>
!0 !0
@ -9709,7 +9709,7 @@ spanner <OverallResult success="true"/>
<Section name="replace no chars" filename="projects/<exe-name>/TestMain.cpp" > <Section name="replace no chars" filename="projects/<exe-name>/TestMain.cpp" >
<Expression success="true" type="CHECK_FALSE" filename="projects/<exe-name>/TestMain.cpp" > <Expression success="true" type="CHECK_FALSE" filename="projects/<exe-name>/TestMain.cpp" >
<Original> <Original>
!replaceInPlace( letters, "x", "z" ) !(replaceInPlace( letters, "x", "z" ))
</Original> </Original>
<Expanded> <Expanded>
!false !false