Enabled c++11 tests in approvals

This commit is contained in:
Phil Nash 2017-07-13 08:52:51 +01:00
parent e4456aa243
commit c874a99c6c
11 changed files with 649 additions and 30 deletions

View File

@ -166,11 +166,7 @@ inline std::ostream& operator<<( std::ostream& os, StrongDoubleTypedef td ) {
return os << "StrongDoubleTypedef(" << static_cast<double>(td) << ")"; return os << "StrongDoubleTypedef(" << static_cast<double>(td) << ")";
} }
TEST_CASE TEST_CASE( "Comparison with explicitly convertible types", "[Approx]" )
(
"Comparison with explicitly convertible types",
"[Approx][c++11]"
)
{ {
StrongDoubleTypedef td(10.0); StrongDoubleTypedef td(10.0);

View File

@ -1001,7 +1001,23 @@ TrickyTests.cpp:<line number>: FAILED:
with expansion: with expansion:
"first" == "second" "first" == "second"
=============================================================================== -------------------------------------------------------------------------------
test cases: 173 | 123 passed | 46 failed | 4 failed as expected toString(enum class)
assertions: 907 | 792 passed | 94 failed | 21 failed as expected -------------------------------------------------------------------------------
EnumToString.cpp:<line number>
...............................................................................
EnumToString.cpp:<line number>: FAILED:
CHECK( ::Catch::Detail::stringify(e0) == "0" )
with expansion:
"{?}" == "0"
EnumToString.cpp:<line number>: FAILED:
CHECK( ::Catch::Detail::stringify(e1) == "1" )
with expansion:
"{?}" == "1"
===============================================================================
test cases: 186 | 135 passed | 47 failed | 4 failed as expected
assertions: 939 | 822 passed | 96 failed | 21 failed as expected

View File

@ -923,6 +923,84 @@ with expansion:
== ==
0x<hex digits> 0x<hex digits>
-------------------------------------------------------------------------------
Comparison with explicitly convertible types
-------------------------------------------------------------------------------
ApproxTests.cpp:<line number>
...............................................................................
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( td == Approx(10.0) )
with expansion:
StrongDoubleTypedef(10) == Approx( 10.0 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( Approx(10.0) == td )
with expansion:
Approx( 10.0 ) == StrongDoubleTypedef(10)
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( td != Approx(11.0) )
with expansion:
StrongDoubleTypedef(10) != Approx( 11.0 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( Approx(11.0) != td )
with expansion:
Approx( 11.0 ) != StrongDoubleTypedef(10)
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( td <= Approx(10.0) )
with expansion:
StrongDoubleTypedef(10) <= Approx( 10.0 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( td <= Approx(11.0) )
with expansion:
StrongDoubleTypedef(10) <= Approx( 11.0 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( Approx(10.0) <= td )
with expansion:
Approx( 10.0 ) <= StrongDoubleTypedef(10)
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( Approx(9.0) <= td )
with expansion:
Approx( 9.0 ) <= StrongDoubleTypedef(10)
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( td >= Approx(9.0) )
with expansion:
StrongDoubleTypedef(10) >= Approx( 9.0 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( td >= Approx(10.0) )
with expansion:
StrongDoubleTypedef(10) >= Approx( 10.0 )
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( Approx(10.0) >= td )
with expansion:
Approx( 10.0 ) >= StrongDoubleTypedef(10)
ApproxTests.cpp:<line number>:
PASSED:
REQUIRE( Approx(11.0) >= td )
with expansion:
Approx( 11.0 ) >= StrongDoubleTypedef(10)
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Comparisons between ints where one side is computed Comparisons between ints where one side is computed
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
@ -8059,6 +8137,20 @@ MessageTests.cpp:<line number>: FAILED:
explicitly with message: explicitly with message:
Previous info should not be seen Previous info should not be seen
-------------------------------------------------------------------------------
long long
-------------------------------------------------------------------------------
MiscTests.cpp:<line number>
...............................................................................
MiscTests.cpp:<line number>:
PASSED:
REQUIRE( l == std::numeric_limits<long long>::max() )
with expansion:
9223372036854775807 (0x<hex digits>)
==
9223372036854775807 (0x<hex digits>)
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
looped SECTION tests looped SECTION tests
s1 s1
@ -8248,6 +8340,18 @@ PASSED:
with expansion: with expansion:
{null string} == {null string} {null string} == {null string}
-------------------------------------------------------------------------------
null_ptr
-------------------------------------------------------------------------------
TrickyTests.cpp:<line number>
...............................................................................
TrickyTests.cpp:<line number>:
PASSED:
REQUIRE( ptr.get() == 0 )
with expansion:
0 == 0
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
pair<pair<int,const char *,pair<std::string,int> > -> toString pair<pair<int,const char *,pair<std::string,int> > -> toString
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
@ -8615,6 +8719,48 @@ with expansion:
== ==
"{ StringMaker<has_maker> }" "{ StringMaker<has_maker> }"
-------------------------------------------------------------------------------
toString(enum class w/operator<<)
-------------------------------------------------------------------------------
EnumToString.cpp:<line number>
...............................................................................
EnumToString.cpp:<line number>:
PASSED:
CHECK( ::Catch::Detail::stringify(e0) == "E2/V0" )
with expansion:
"E2/V0" == "E2/V0"
EnumToString.cpp:<line number>:
PASSED:
CHECK( ::Catch::Detail::stringify(e1) == "E2/V1" )
with expansion:
"E2/V1" == "E2/V1"
EnumToString.cpp:<line number>:
PASSED:
CHECK( ::Catch::Detail::stringify(e3) == "Unknown enum value 10" )
with expansion:
"Unknown enum value 10"
==
"Unknown enum value 10"
-------------------------------------------------------------------------------
toString(enum class)
-------------------------------------------------------------------------------
EnumToString.cpp:<line number>
...............................................................................
EnumToString.cpp:<line number>: FAILED:
CHECK( ::Catch::Detail::stringify(e0) == "0" )
with expansion:
"{?}" == "0"
EnumToString.cpp:<line number>: FAILED:
CHECK( ::Catch::Detail::stringify(e1) == "1" )
with expansion:
"{?}" == "1"
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
toString(enum w/operator<<) toString(enum w/operator<<)
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
@ -8651,6 +8797,140 @@ PASSED:
with expansion: with expansion:
"1" == "1" "1" == "1"
-------------------------------------------------------------------------------
tuple<>
-------------------------------------------------------------------------------
ToStringTuple.cpp:<line number>
...............................................................................
ToStringTuple.cpp:<line number>:
PASSED:
CHECK( "{ }" == ::Catch::Detail::stringify(type{}) )
with expansion:
"{ }" == "{ }"
ToStringTuple.cpp:<line number>:
PASSED:
CHECK( "{ }" == ::Catch::Detail::stringify(value) )
with expansion:
"{ }" == "{ }"
-------------------------------------------------------------------------------
tuple<float,int>
-------------------------------------------------------------------------------
ToStringTuple.cpp:<line number>
...............................................................................
ToStringTuple.cpp:<line number>:
PASSED:
CHECK( "1.2f" == ::Catch::Detail::stringify(float(1.2)) )
with expansion:
"1.2f" == "1.2f"
ToStringTuple.cpp:<line number>:
PASSED:
CHECK( "{ 1.2f, 0 }" == ::Catch::Detail::stringify(type{1.2f,0}) )
with expansion:
"{ 1.2f, 0 }" == "{ 1.2f, 0 }"
-------------------------------------------------------------------------------
tuple<int>
-------------------------------------------------------------------------------
ToStringTuple.cpp:<line number>
...............................................................................
ToStringTuple.cpp:<line number>:
PASSED:
CHECK( "{ 0 }" == ::Catch::Detail::stringify(type{0}) )
with expansion:
"{ 0 }" == "{ 0 }"
-------------------------------------------------------------------------------
tuple<0,int,const char *>
-------------------------------------------------------------------------------
ToStringTuple.cpp:<line number>
...............................................................................
ToStringTuple.cpp:<line number>:
PASSED:
CHECK( "{ 0, 42, \"Catch me\" }" == ::Catch::Detail::stringify(value) )
with expansion:
"{ 0, 42, "Catch me" }"
==
"{ 0, 42, "Catch me" }"
-------------------------------------------------------------------------------
tuple<string,string>
-------------------------------------------------------------------------------
ToStringTuple.cpp:<line number>
...............................................................................
ToStringTuple.cpp:<line number>:
PASSED:
CHECK( "{ \"hello\", \"world\" }" == ::Catch::Detail::stringify(type{"hello","world"}) )
with expansion:
"{ "hello", "world" }"
==
"{ "hello", "world" }"
-------------------------------------------------------------------------------
tuple<tuple<int>,tuple<>,float>
-------------------------------------------------------------------------------
ToStringTuple.cpp:<line number>
...............................................................................
ToStringTuple.cpp:<line number>:
PASSED:
CHECK( "{ { 42 }, { }, 1.2f }" == ::Catch::Detail::stringify(value) )
with expansion:
"{ { 42 }, { }, 1.2f }"
==
"{ { 42 }, { }, 1.2f }"
-------------------------------------------------------------------------------
vec<vec<string,alloc>> -> toString
-------------------------------------------------------------------------------
ToStringVector.cpp:<line number>
...............................................................................
ToStringVector.cpp:<line number>:
PASSED:
REQUIRE( ::Catch::Detail::stringify(v) == "{ }" )
with expansion:
"{ }" == "{ }"
ToStringVector.cpp:<line number>:
PASSED:
REQUIRE( ::Catch::Detail::stringify(v) == "{ { \"hello\" }, { \"world\" } }" )
with expansion:
"{ { "hello" }, { "world" } }"
==
"{ { "hello" }, { "world" } }"
-------------------------------------------------------------------------------
vector<int,allocator> -> toString
-------------------------------------------------------------------------------
ToStringVector.cpp:<line number>
...............................................................................
ToStringVector.cpp:<line number>:
PASSED:
REQUIRE( ::Catch::Detail::stringify(vv) == "{ }" )
with expansion:
"{ }" == "{ }"
ToStringVector.cpp:<line number>:
PASSED:
REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42 }" )
with expansion:
"{ 42 }" == "{ 42 }"
ToStringVector.cpp:<line number>:
PASSED:
REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42, 250 }" )
with expansion:
"{ 42, 250 }" == "{ 42, 250 }"
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
vector<int> -> toString vector<int> -> toString
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
@ -8884,6 +9164,6 @@ MiscTests.cpp:<line number>:
PASSED: PASSED:
=============================================================================== ===============================================================================
test cases: 173 | 122 passed | 47 failed | 4 failed as expected test cases: 186 | 134 passed | 48 failed | 4 failed as expected
assertions: 909 | 792 passed | 96 failed | 21 failed as expected assertions: 941 | 822 passed | 98 failed | 21 failed as expected

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<testsuitesspanner> <testsuitesspanner>
<testsuite name="<exe-name>" errors="15" failures="82" tests="910" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> <testsuite name="<exe-name>" errors="15" failures="84" tests="942" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
<testcase classname="<exe-name>.global" name="# A test name that starts with a #" time="{duration}"/> <testcase classname="<exe-name>.global" name="# A test name that starts with a #" time="{duration}"/>
<testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions/outside assertions" time="{duration}"> <testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions/outside assertions" time="{duration}">
<error type="TEST_CASE"> <error type="TEST_CASE">
@ -112,6 +112,7 @@ ExceptionTests.cpp:<line number>
<testcase classname="<exe-name>.global" name="Commas in various macros are allowed" time="{duration}"/> <testcase classname="<exe-name>.global" name="Commas in various macros are allowed" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Comparing function pointers" time="{duration}"/> <testcase classname="<exe-name>.global" name="Comparing function pointers" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Comparing member function pointers" time="{duration}"/> <testcase classname="<exe-name>.global" name="Comparing member function pointers" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Comparison with explicitly convertible types" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Comparisons between ints where one side is computed" time="{duration}"/> <testcase classname="<exe-name>.global" name="Comparisons between ints where one side is computed" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Comparisons between unsigned ints and negative signed ints match c++ standard behaviour" time="{duration}"/> <testcase classname="<exe-name>.global" name="Comparisons between unsigned ints and negative signed ints match c++ standard behaviour" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Comparisons with int literals don't warn when mixing signed/ unsigned" time="{duration}"/> <testcase classname="<exe-name>.global" name="Comparisons with int literals don't warn when mixing signed/ unsigned" time="{duration}"/>
@ -692,6 +693,7 @@ Previous info should not be seen
MessageTests.cpp:<line number> MessageTests.cpp:<line number>
</failure> </failure>
</testcase> </testcase>
<testcase classname="<exe-name>.global" name="long long" time="{duration}"/>
<testcase classname="<exe-name>.global" name="looped SECTION tests/s1" time="{duration}"> <testcase classname="<exe-name>.global" name="looped SECTION tests/s1" time="{duration}">
<failure message="0 > 1" type="CHECK"> <failure message="0 > 1" type="CHECK">
MiscTests.cpp:<line number> MiscTests.cpp:<line number>
@ -735,6 +737,7 @@ MiscTests.cpp:<line number>
<testcase classname="<exe-name>.global" name="non streamable - with conv. op" time="{duration}"/> <testcase classname="<exe-name>.global" name="non streamable - with conv. op" time="{duration}"/>
<testcase classname="<exe-name>.global" name="not allowed" time="{duration}"/> <testcase classname="<exe-name>.global" name="not allowed" time="{duration}"/>
<testcase classname="<exe-name>.global" name="null strings" time="{duration}"/> <testcase classname="<exe-name>.global" name="null strings" time="{duration}"/>
<testcase classname="<exe-name>.global" name="null_ptr" time="{duration}"/>
<testcase classname="<exe-name>.global" name="pair&lt;pair&lt;int,const char *,pair&lt;std::string,int> > -> toString" time="{duration}"/> <testcase classname="<exe-name>.global" name="pair&lt;pair&lt;int,const char *,pair&lt;std::string,int> > -> toString" time="{duration}"/>
<testcase classname="<exe-name>.global" name="pointer to class" time="{duration}"/> <testcase classname="<exe-name>.global" name="pointer to class" time="{duration}"/>
<testcase classname="<exe-name>.global" name="random SECTION tests/s1" time="{duration}"/> <testcase classname="<exe-name>.global" name="random SECTION tests/s1" time="{duration}"/>
@ -775,8 +778,25 @@ TrickyTests.cpp:<line number>
<testcase classname="<exe-name>.global" name="toString on wchar_t const pointer returns the string contents" time="{duration}"/> <testcase classname="<exe-name>.global" name="toString on wchar_t const pointer returns the string contents" time="{duration}"/>
<testcase classname="<exe-name>.global" name="toString on wchar_t returns the string contents" time="{duration}"/> <testcase classname="<exe-name>.global" name="toString on wchar_t returns the string contents" time="{duration}"/>
<testcase classname="<exe-name>.global" name="toString( vectors&lt;has_maker )" time="{duration}"/> <testcase classname="<exe-name>.global" name="toString( vectors&lt;has_maker )" time="{duration}"/>
<testcase classname="<exe-name>.global" name="toString(enum class w/operator&lt;&lt;)" time="{duration}"/>
<testcase classname="<exe-name>.global" name="toString(enum class)" time="{duration}">
<failure message="&quot;{?}&quot; == &quot;0&quot;" type="CHECK">
EnumToString.cpp:<line number>
</failure>
<failure message="&quot;{?}&quot; == &quot;1&quot;" type="CHECK">
EnumToString.cpp:<line number>
</failure>
</testcase>
<testcase classname="<exe-name>.global" name="toString(enum w/operator&lt;&lt;)" time="{duration}"/> <testcase classname="<exe-name>.global" name="toString(enum w/operator&lt;&lt;)" time="{duration}"/>
<testcase classname="<exe-name>.global" name="toString(enum)" time="{duration}"/> <testcase classname="<exe-name>.global" name="toString(enum)" time="{duration}"/>
<testcase classname="<exe-name>.global" name="tuple&lt;>" time="{duration}"/>
<testcase classname="<exe-name>.global" name="tuple&lt;float,int>" time="{duration}"/>
<testcase classname="<exe-name>.global" name="tuple&lt;int>" time="{duration}"/>
<testcase classname="<exe-name>.global" name="tuple&lt;0,int,const char *>" time="{duration}"/>
<testcase classname="<exe-name>.global" name="tuple&lt;string,string>" time="{duration}"/>
<testcase classname="<exe-name>.global" name="tuple&lt;tuple&lt;int>,tuple&lt;>,float>" time="{duration}"/>
<testcase classname="<exe-name>.global" name="vec&lt;vec&lt;string,alloc>> -> toString" time="{duration}"/>
<testcase classname="<exe-name>.global" name="vector&lt;int,allocator> -> toString" time="{duration}"/>
<testcase classname="<exe-name>.global" name="vector&lt;int> -> toString" time="{duration}"/> <testcase classname="<exe-name>.global" name="vector&lt;int> -> toString" time="{duration}"/>
<testcase classname="<exe-name>.global" name="vector&lt;string> -> toString" time="{duration}"/> <testcase classname="<exe-name>.global" name="vector&lt;string> -> toString" time="{duration}"/>
<testcase classname="<exe-name>.global" name="vectors can be sized and resized" time="{duration}"/> <testcase classname="<exe-name>.global" name="vectors can be sized and resized" time="{duration}"/>

View File

@ -1029,6 +1029,105 @@
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="Comparison with explicitly convertible types" tags="[Approx]" filename="projects/<exe-name>/ApproxTests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
td == Approx(10.0)
</Original>
<Expanded>
StrongDoubleTypedef(10) == Approx( 10.0 )
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
Approx(10.0) == td
</Original>
<Expanded>
Approx( 10.0 ) == StrongDoubleTypedef(10)
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
td != Approx(11.0)
</Original>
<Expanded>
StrongDoubleTypedef(10) != Approx( 11.0 )
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
Approx(11.0) != td
</Original>
<Expanded>
Approx( 11.0 ) != StrongDoubleTypedef(10)
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
td &lt;= Approx(10.0)
</Original>
<Expanded>
StrongDoubleTypedef(10) &lt;= Approx( 10.0 )
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
td &lt;= Approx(11.0)
</Original>
<Expanded>
StrongDoubleTypedef(10) &lt;= Approx( 11.0 )
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
Approx(10.0) &lt;= td
</Original>
<Expanded>
Approx( 10.0 ) &lt;= StrongDoubleTypedef(10)
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
Approx(9.0) &lt;= td
</Original>
<Expanded>
Approx( 9.0 ) &lt;= StrongDoubleTypedef(10)
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
td >= Approx(9.0)
</Original>
<Expanded>
StrongDoubleTypedef(10) >= Approx( 9.0 )
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
td >= Approx(10.0)
</Original>
<Expanded>
StrongDoubleTypedef(10) >= Approx( 10.0 )
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
Approx(10.0) >= td
</Original>
<Expanded>
Approx( 10.0 ) >= StrongDoubleTypedef(10)
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
<Original>
Approx(11.0) >= td
</Original>
<Expanded>
Approx( 11.0 ) >= StrongDoubleTypedef(10)
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="Comparisons between ints where one side is computed" filename="projects/<exe-name>/ConditionTests.cpp" > <TestCase name="Comparisons between ints where one side is computed" filename="projects/<exe-name>/ConditionTests.cpp" >
<Expression success="true" type="CHECK" filename="projects/<exe-name>/ConditionTests.cpp" > <Expression success="true" type="CHECK" filename="projects/<exe-name>/ConditionTests.cpp" >
<Original> <Original>
@ -8927,6 +9026,19 @@ spanner <OverallResult success="true"/>
<TestCase name="just info" tags="[info][isolated info][messages]" filename="projects/<exe-name>/MessageTests.cpp" > <TestCase name="just info" tags="[info][isolated info][messages]" filename="projects/<exe-name>/MessageTests.cpp" >
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="long long" filename="projects/<exe-name>/MiscTests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/MiscTests.cpp" >
<Original>
l == std::numeric_limits&lt;long long>::max()
</Original>
<Expanded>
9223372036854775807 (0x<hex digits>)
==
9223372036854775807 (0x<hex digits>)
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="looped SECTION tests" tags="[.][failing][hide][sections]" filename="projects/<exe-name>/MiscTests.cpp" > <TestCase name="looped SECTION tests" tags="[.][failing][hide][sections]" filename="projects/<exe-name>/MiscTests.cpp" >
<Section name="s1" description="b is currently: 0" filename="projects/<exe-name>/MiscTests.cpp" > <Section name="s1" description="b is currently: 0" filename="projects/<exe-name>/MiscTests.cpp" >
<Expression success="false" type="CHECK" filename="projects/<exe-name>/MiscTests.cpp" > <Expression success="false" type="CHECK" filename="projects/<exe-name>/MiscTests.cpp" >
@ -9143,6 +9255,17 @@ spanner <OverallResult success="true"/>
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="null_ptr" tags="[Tricky]" filename="projects/<exe-name>/TrickyTests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/TrickyTests.cpp" >
<Original>
ptr.get() == 0
</Original>
<Expanded>
0 == 0
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="pair&lt;pair&lt;int,const char *,pair&lt;std::string,int> > -> toString" tags="[pair][toString]" filename="projects/<exe-name>/ToStringPair.cpp" > <TestCase name="pair&lt;pair&lt;int,const char *,pair&lt;std::string,int> > -> toString" tags="[pair][toString]" filename="projects/<exe-name>/ToStringPair.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringPair.cpp" > <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringPair.cpp" >
<Original> <Original>
@ -9512,6 +9635,54 @@ spanner <OverallResult success="true"/>
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="toString(enum class w/operator&lt;&lt;)" tags="[enum][enumClass][toString]" filename="projects/<exe-name>/EnumToString.cpp" >
<Expression success="true" type="CHECK" filename="projects/<exe-name>/EnumToString.cpp" >
<Original>
::Catch::Detail::stringify(e0) == "E2/V0"
</Original>
<Expanded>
"E2/V0" == "E2/V0"
</Expanded>
</Expression>
<Expression success="true" type="CHECK" filename="projects/<exe-name>/EnumToString.cpp" >
<Original>
::Catch::Detail::stringify(e1) == "E2/V1"
</Original>
<Expanded>
"E2/V1" == "E2/V1"
</Expanded>
</Expression>
<Expression success="true" type="CHECK" filename="projects/<exe-name>/EnumToString.cpp" >
<Original>
::Catch::Detail::stringify(e3) == "Unknown enum value 10"
</Original>
<Expanded>
"Unknown enum value 10"
==
"Unknown enum value 10"
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="toString(enum class)" tags="[enum][enumClass][toString]" filename="projects/<exe-name>/EnumToString.cpp" >
<Expression success="false" type="CHECK" filename="projects/<exe-name>/EnumToString.cpp" >
<Original>
::Catch::Detail::stringify(e0) == "0"
</Original>
<Expanded>
"{?}" == "0"
</Expanded>
</Expression>
<Expression success="false" type="CHECK" filename="projects/<exe-name>/EnumToString.cpp" >
<Original>
::Catch::Detail::stringify(e1) == "1"
</Original>
<Expanded>
"{?}" == "1"
</Expanded>
</Expression>
<OverallResult success="false"/>
</TestCase>
<TestCase name="toString(enum w/operator&lt;&lt;)" tags="[enum][toString]" filename="projects/<exe-name>/EnumToString.cpp" > <TestCase name="toString(enum w/operator&lt;&lt;)" tags="[enum][toString]" filename="projects/<exe-name>/EnumToString.cpp" >
<Expression success="true" type="CHECK" filename="projects/<exe-name>/EnumToString.cpp" > <Expression success="true" type="CHECK" filename="projects/<exe-name>/EnumToString.cpp" >
<Original> <Original>
@ -9550,6 +9721,142 @@ spanner <OverallResult success="true"/>
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="tuple&lt;>" tags="[toString][tuple]" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Original>
"{ }" == ::Catch::Detail::stringify(type{})
</Original>
<Expanded>
"{ }" == "{ }"
</Expanded>
</Expression>
<Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Original>
"{ }" == ::Catch::Detail::stringify(value)
</Original>
<Expanded>
"{ }" == "{ }"
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="tuple&lt;float,int>" tags="[toString][tuple]" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Original>
"1.2f" == ::Catch::Detail::stringify(float(1.2))
</Original>
<Expanded>
"1.2f" == "1.2f"
</Expanded>
</Expression>
<Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Original>
"{ 1.2f, 0 }" == ::Catch::Detail::stringify(type{1.2f,0})
</Original>
<Expanded>
"{ 1.2f, 0 }" == "{ 1.2f, 0 }"
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="tuple&lt;int>" tags="[toString][tuple]" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Original>
"{ 0 }" == ::Catch::Detail::stringify(type{0})
</Original>
<Expanded>
"{ 0 }" == "{ 0 }"
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="tuple&lt;0,int,const char *>" tags="[toString][tuple]" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Original>
"{ 0, 42, \"Catch me\" }" == ::Catch::Detail::stringify(value)
</Original>
<Expanded>
"{ 0, 42, "Catch me" }"
==
"{ 0, 42, "Catch me" }"
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="tuple&lt;string,string>" tags="[toString][tuple]" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Original>
"{ \"hello\", \"world\" }" == ::Catch::Detail::stringify(type{"hello","world"})
</Original>
<Expanded>
"{ "hello", "world" }"
==
"{ "hello", "world" }"
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="tuple&lt;tuple&lt;int>,tuple&lt;>,float>" tags="[toString][tuple]" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
<Original>
"{ { 42 }, { }, 1.2f }" == ::Catch::Detail::stringify(value)
</Original>
<Expanded>
"{ { 42 }, { }, 1.2f }"
==
"{ { 42 }, { }, 1.2f }"
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="vec&lt;vec&lt;string,alloc>> -> toString" tags="[toString][vector,allocator]" filename="projects/<exe-name>/ToStringVector.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringVector.cpp" >
<Original>
::Catch::Detail::stringify(v) == "{ }"
</Original>
<Expanded>
"{ }" == "{ }"
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringVector.cpp" >
<Original>
::Catch::Detail::stringify(v) == "{ { \"hello\" }, { \"world\" } }"
</Original>
<Expanded>
"{ { "hello" }, { "world" } }"
==
"{ { "hello" }, { "world" } }"
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="vector&lt;int,allocator> -> toString" tags="[toString][vector,allocator]" filename="projects/<exe-name>/ToStringVector.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringVector.cpp" >
<Original>
::Catch::Detail::stringify(vv) == "{ }"
</Original>
<Expanded>
"{ }" == "{ }"
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringVector.cpp" >
<Original>
::Catch::Detail::stringify(vv) == "{ 42 }"
</Original>
<Expanded>
"{ 42 }" == "{ 42 }"
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringVector.cpp" >
<Original>
::Catch::Detail::stringify(vv) == "{ 42, 250 }"
</Original>
<Expanded>
"{ 42, 250 }" == "{ 42, 250 }"
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="vector&lt;int> -> toString" tags="[toString][vector]" filename="projects/<exe-name>/ToStringVector.cpp" > <TestCase name="vector&lt;int> -> toString" tags="[toString][vector]" filename="projects/<exe-name>/ToStringVector.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringVector.cpp" > <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringVector.cpp" >
<Original> <Original>
@ -9769,7 +10076,7 @@ spanner <OverallResult success="true"/>
</Section> </Section>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<OverallResults successes="792" failures="97" expectedFailures="21"/> <OverallResults successes="822" failures="99" expectedFailures="21"/>
</Group> </Group>
<OverallResults successes="792" failures="96" expectedFailures="21"/> <OverallResults successes="822" failures="98" expectedFailures="21"/>
</Catch> </Catch>

View File

@ -28,7 +28,7 @@ TEST_CASE( "toString(enum w/operator<<)", "[toString][enum]" ) {
// Enum class without user-provided stream operator // Enum class without user-provided stream operator
enum class EnumClass1 { EnumClass1Value0, EnumClass1Value1 }; enum class EnumClass1 { EnumClass1Value0, EnumClass1Value1 };
TEST_CASE( "toString(enum class)", "[toString][enum][enumClass][c++11][.]" ) { TEST_CASE( "toString(enum class)", "[toString][enum][enumClass]" ) {
EnumClass1 e0 = EnumClass1::EnumClass1Value0; EnumClass1 e0 = EnumClass1::EnumClass1Value0;
CHECK( ::Catch::Detail::stringify(e0) == "0" ); CHECK( ::Catch::Detail::stringify(e0) == "0" );
EnumClass1 e1 = EnumClass1::EnumClass1Value1; EnumClass1 e1 = EnumClass1::EnumClass1Value1;
@ -49,7 +49,7 @@ std::ostream& operator<<( std::ostream& os, EnumClass2 e2 ) {
} }
} }
TEST_CASE( "toString(enum class w/operator<<)", "[toString][enum][enumClass][c++11][.]" ) { TEST_CASE( "toString(enum class w/operator<<)", "[toString][enum][enumClass]" ) {
EnumClass2 e0 = EnumClass2::EnumClass2Value0; EnumClass2 e0 = EnumClass2::EnumClass2Value0;
CHECK( ::Catch::Detail::stringify(e0) == "E2/V0" ); CHECK( ::Catch::Detail::stringify(e0) == "E2/V0" );
EnumClass2 e1 = EnumClass2::EnumClass2Value1; EnumClass2 e1 = EnumClass2::EnumClass2Value1;

View File

@ -372,7 +372,7 @@ TEST_CASE( "XmlEncode" ) {
} }
} }
TEST_CASE( "long long", "[c++11][.]" ) { TEST_CASE( "long long" ) {
long long l = std::numeric_limits<long long>::max(); long long l = std::numeric_limits<long long>::max();
REQUIRE( l == std::numeric_limits<long long>::max() ); REQUIRE( l == std::numeric_limits<long long>::max() );

View File

@ -2,7 +2,7 @@
#include <tuple> #include <tuple>
TEST_CASE( "tuple<>", "[toString][tuple][c++11][.]" ) TEST_CASE( "tuple<>", "[toString][tuple]" )
{ {
typedef std::tuple<> type; typedef std::tuple<> type;
CHECK( "{ }" == ::Catch::Detail::stringify(type{}) ); CHECK( "{ }" == ::Catch::Detail::stringify(type{}) );
@ -10,34 +10,34 @@ TEST_CASE( "tuple<>", "[toString][tuple][c++11][.]" )
CHECK( "{ }" == ::Catch::Detail::stringify(value) ); CHECK( "{ }" == ::Catch::Detail::stringify(value) );
} }
TEST_CASE( "tuple<int>", "[toString][tuple][c++11][.]" ) TEST_CASE( "tuple<int>", "[toString][tuple]" )
{ {
typedef std::tuple<int> type; typedef std::tuple<int> type;
CHECK( "{ 0 }" == ::Catch::Detail::stringify(type{0}) ); CHECK( "{ 0 }" == ::Catch::Detail::stringify(type{0}) );
} }
TEST_CASE( "tuple<float,int>", "[toString][tuple][c++11][.]" ) TEST_CASE( "tuple<float,int>", "[toString][tuple]" )
{ {
typedef std::tuple<float,int> type; typedef std::tuple<float,int> type;
CHECK( "1.2f" == ::Catch::Detail::stringify(float(1.2)) ); CHECK( "1.2f" == ::Catch::Detail::stringify(float(1.2)) );
CHECK( "{ 1.2f, 0 }" == ::Catch::Detail::stringify(type{1.2f,0}) ); CHECK( "{ 1.2f, 0 }" == ::Catch::Detail::stringify(type{1.2f,0}) );
} }
TEST_CASE( "tuple<string,string>", "[toString][tuple][c++11][.]" ) TEST_CASE( "tuple<string,string>", "[toString][tuple]" )
{ {
typedef std::tuple<std::string,std::string> type; typedef std::tuple<std::string,std::string> type;
CHECK( "{ \"hello\", \"world\" }" == ::Catch::Detail::stringify(type{"hello","world"}) ); CHECK( "{ \"hello\", \"world\" }" == ::Catch::Detail::stringify(type{"hello","world"}) );
} }
TEST_CASE( "tuple<tuple<int>,tuple<>,float>", "[toString][tuple][c++11][.]" ) TEST_CASE( "tuple<tuple<int>,tuple<>,float>", "[toString][tuple]" )
{ {
typedef std::tuple<std::tuple<int>,std::tuple<>,float> type; typedef std::tuple<std::tuple<int>,std::tuple<>,float> type;
type value { std::tuple<int>{42}, {}, 1.2f }; type value { std::tuple<int>{42}, {}, 1.2f };
CHECK( "{ { 42 }, { }, 1.2f }" == ::Catch::Detail::stringify(value) ); CHECK( "{ { 42 }, { }, 1.2f }" == ::Catch::Detail::stringify(value) );
} }
TEST_CASE( "tuple<nullptr,int,const char *>", "[toString][tuple][c++11][.]" ) TEST_CASE( "tuple<nullptr,int,const char *>", "[toString][tuple]" )
{ {
typedef std::tuple<std::nullptr_t,int,const char *> type; typedef std::tuple<std::nullptr_t,int,const char *> type;
type value { nullptr, 42, "Catch me" }; type value { nullptr, 42, "Catch me" };

View File

@ -48,7 +48,7 @@ namespace {
}; };
} }
TEST_CASE( "vector<int,allocator> -> toString", "[toString][vector,allocator][c++11][.]" ) { TEST_CASE( "vector<int,allocator> -> toString", "[toString][vector,allocator]" ) {
std::vector<int,minimal_allocator<int> > vv; std::vector<int,minimal_allocator<int> > vv;
REQUIRE( ::Catch::Detail::stringify(vv) == "{ }" ); REQUIRE( ::Catch::Detail::stringify(vv) == "{ }" );
vv.push_back( 42 ); vv.push_back( 42 );
@ -57,7 +57,7 @@ TEST_CASE( "vector<int,allocator> -> toString", "[toString][vector,allocator][c+
REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42, 250 }" ); REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42, 250 }" );
} }
TEST_CASE( "vec<vec<string,alloc>> -> toString", "[toString][vector,allocator][c++11][.]" ) { TEST_CASE( "vec<vec<string,alloc>> -> toString", "[toString][vector,allocator]" ) {
using inner = std::vector<std::string, minimal_allocator<std::string>>; using inner = std::vector<std::string, minimal_allocator<std::string>>;
using vector = std::vector<inner>; using vector = std::vector<inner>;
vector v; vector v;

View File

@ -383,7 +383,7 @@ TEST_CASE( "pointer to class", "[Tricky]" )
#include <memory> #include <memory>
TEST_CASE( "null_ptr", "[Tricky][c++11][.]" ) TEST_CASE( "null_ptr", "[Tricky]" )
{ {
std::unique_ptr<int> ptr; std::unique_ptr<int> ptr;
REQUIRE(ptr.get() == nullptr); REQUIRE(ptr.get() == nullptr);

View File

@ -145,15 +145,15 @@ print("Running approvals against executable:")
print(" " + cmdPath) print(" " + cmdPath)
# Standard console reporter # Standard console reporter
approve("console.std", ["~[c++11]~[!nonportable]", "--order", "lex"]) approve("console.std", ["~[!nonportable]", "--order", "lex"])
# console reporter, include passes, warn about No Assertions # console reporter, include passes, warn about No Assertions
approve("console.sw", ["~[c++11]~[!nonportable]", "-s", "-w", "NoAssertions", "--order", "lex"]) approve("console.sw", ["~[!nonportable]", "-s", "-w", "NoAssertions", "--order", "lex"])
# console reporter, include passes, warn about No Assertions, limit failures to first 4 # console reporter, include passes, warn about No Assertions, limit failures to first 4
approve("console.swa4", ["~[c++11]~[!nonportable]", "-s", "-w", "NoAssertions", "-x", "4", "--order", "lex"]) approve("console.swa4", ["~[!nonportable]", "-s", "-w", "NoAssertions", "-x", "4", "--order", "lex"])
# junit reporter, include passes, warn about No Assertions # junit reporter, include passes, warn about No Assertions
approve("junit.sw", ["~[c++11]~[!nonportable]", "-s", "-w", "NoAssertions", "-r", "junit", "--order", "lex"]) approve("junit.sw", ["~[!nonportable]", "-s", "-w", "NoAssertions", "-r", "junit", "--order", "lex"])
# xml reporter, include passes, warn about No Assertions # xml reporter, include passes, warn about No Assertions
approve("xml.sw", ["~[c++11]~[!nonportable]", "-s", "-w", "NoAssertions", "-r", "xml", "--order", "lex"]) approve("xml.sw", ["~[!nonportable]", "-s", "-w", "NoAssertions", "-r", "xml", "--order", "lex"])
if overallResult != 0: if overallResult != 0:
print("If these differences are expected, run approve.py to approve new baselines.") print("If these differences are expected, run approve.py to approve new baselines.")