Fixed expansion of _FALSE binary expression

- see #1051
This commit is contained in:
Phil Nash 2017-10-13 19:45:19 +01:00
parent c2b7bd15c0
commit 05b1ca2884
5 changed files with 23 additions and 21 deletions

View File

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

View File

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

View File

@ -235,6 +235,8 @@ with expansion:
ConditionTests.cpp:<line number>: FAILED:
CHECK_FALSE( true )
with expansion:
!true
ConditionTests.cpp:<line number>: FAILED:
CHECK( !trueValue )
@ -253,8 +255,6 @@ with expansion:
ConditionTests.cpp:<line number>: FAILED:
CHECK_FALSE( 1 == 1 )
with expansion:
!(1 == 1)
-------------------------------------------------------------------------------
'Not' checks that should succeed
@ -279,6 +279,8 @@ with expansion:
ConditionTests.cpp:<line number>:
PASSED:
REQUIRE_FALSE( false )
with expansion:
!false
ConditionTests.cpp:<line number>:
PASSED:
@ -301,8 +303,6 @@ with expansion:
ConditionTests.cpp:<line number>:
PASSED:
REQUIRE_FALSE( 1 == 2 )
with expansion:
!(1 == 2)
-------------------------------------------------------------------------------
(unimplemented) static bools can be evaluated

View File

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

View File

@ -214,7 +214,7 @@
</Expression>
<Expression success="false" type="CHECK_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" >
<Original>
!true
!(true)
</Original>
<Expanded>
!true
@ -230,7 +230,7 @@
</Expression>
<Expression success="false" type="CHECK_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" >
<Original>
!trueValue
!(trueValue)
</Original>
<Expanded>
!true
@ -246,7 +246,7 @@
</Expression>
<Expression success="false" type="CHECK_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" >
<Original>
!1 == 1
!(1 == 1)
</Original>
<Expanded>
!(1 == 1)
@ -281,7 +281,7 @@
</Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" >
<Original>
!false
!(false)
</Original>
<Expanded>
!false
@ -297,7 +297,7 @@
</Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" >
<Original>
!falseValue
!(falseValue)
</Original>
<Expanded>
!false
@ -313,7 +313,7 @@
</Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ConditionTests.cpp" >
<Original>
!1 == 2
!(1 == 2)
</Original>
<Expanded>
!(1 == 2)
@ -393,7 +393,7 @@
</Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/TrickyTests.cpp" >
<Original>
!is_true&lt;false>::value
!(is_true&lt;false>::value)
</Original>
<Expanded>
!false
@ -975,7 +975,7 @@
</Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/TrickyTests.cpp" >
<Original>
!std::vector&lt;int>{1, 2} == std::vector&lt;int>{1, 2, 3}
!(std::vector&lt;int>{1, 2} == std::vector&lt;int>{1, 2, 3})
</Original>
<Expanded>
!({ 1, 2 } == { 1, 2, 3 })
@ -983,7 +983,7 @@
</Expression>
<Expression success="true" type="CHECK_FALSE" filename="projects/<exe-name>/TrickyTests.cpp" >
<Original>
!std::vector&lt;int>{1, 2} == std::vector&lt;int>{1, 2, 3}
!(std::vector&lt;int>{1, 2} == std::vector&lt;int>{1, 2, 3})
</Original>
<Expanded>
!({ 1, 2 } == { 1, 2, 3 })
@ -1813,7 +1813,7 @@
</Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
!d >= Approx( 1.24 )
!(d >= Approx( 1.24 ))
</Original>
<Expanded>
!(1.23 >= Approx( 1.24 ))
@ -2230,7 +2230,7 @@
</Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
!d &lt;= Approx( 1.22 )
!(d &lt;= Approx( 1.22 ))
</Original>
<Expanded>
!(1.23 &lt;= Approx( 1.22 ))
@ -2373,7 +2373,7 @@
</Expression>
<Expression success="true" type="CHECK_FALSE" filename="projects/<exe-name>/TrickyTests.cpp" >
<Original>
!False
!(False)
</Original>
<Expanded>
!{?}
@ -7633,7 +7633,7 @@ loose text artifact
<Section name="replace no chars" filename="projects/<exe-name>/TestMain.cpp" >
<Expression success="true" type="CHECK_FALSE" filename="projects/<exe-name>/TestMain.cpp" >
<Original>
!Catch::replaceInPlace( letters, "x", "z" )
!(Catch::replaceInPlace( letters, "x", "z" ))
</Original>
<Expanded>
!false