Skip to content

Commit

Permalink
Rebased approvals for stringified enum tests
Browse files Browse the repository at this point in the history
  • Loading branch information
philsquared committed Apr 26, 2019
1 parent 46066ed commit 9837c35
Show file tree
Hide file tree
Showing 5 changed files with 376 additions and 7 deletions.
24 changes: 24 additions & 0 deletions projects/SelfTest/Baselines/compact.sw.approved.txt
Original file line number Diff line number Diff line change
Expand Up @@ -299,8 +299,22 @@ Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'c
Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'custom std exception'
Approx.tests.cpp:<line number>: passed: 101.000001 != Approx(100).epsilon(0.01) for: 101.000001 != Approx( 100.0 )
Approx.tests.cpp:<line number>: passed: std::pow(10, -5) != Approx(std::pow(10, -7)) for: 0.00001 != Approx( 0.0000001 )
ToString.tests.cpp:<line number>: passed: enumInfo->lookup(0) == "Value1" for: Value1 == "Value1"
ToString.tests.cpp:<line number>: passed: enumInfo->lookup(1) == "Value2" for: Value2 == "Value2"
ToString.tests.cpp:<line number>: passed: enumInfo->lookup(3) == "{** unexpected enum value **}" for: {** unexpected enum value **}
==
"{** unexpected enum value **}"
Matchers.tests.cpp:<line number>: failed: testStringForMatching(), EndsWith("Substring") for: "this string contains 'abc' as a substring" ends with: "Substring"
Matchers.tests.cpp:<line number>: failed: testStringForMatching(), EndsWith("this", Catch::CaseSensitive::No) for: "this string contains 'abc' as a substring" ends with: "this" (case insensitive)
EnumToString.tests.cpp:<line number>: passed: stringify( EnumClass3::Value1 ) == "Value1" for: "Value1" == "Value1"
EnumToString.tests.cpp:<line number>: passed: stringify( EnumClass3::Value2 ) == "Value2" for: "Value2" == "Value2"
EnumToString.tests.cpp:<line number>: passed: stringify( EnumClass3::Value3 ) == "Value3" for: "Value3" == "Value3"
EnumToString.tests.cpp:<line number>: passed: stringify( EnumClass3::Value4 ) == "{** unexpected enum value **}" for: "{** unexpected enum value **}"
==
"{** unexpected enum value **}"
EnumToString.tests.cpp:<line number>: passed: stringify( ec3 ) == "Value2" for: "Value2" == "Value2"
EnumToString.tests.cpp:<line number>: passed: stringify( Bikeshed::Colours::Red ) == "Red" for: "Red" == "Red"
EnumToString.tests.cpp:<line number>: passed: stringify( Bikeshed::Colours::Blue ) == "Blue" for: "Blue" == "Blue"
Approx.tests.cpp:<line number>: passed: 101.01 != Approx(100).epsilon(0.01) for: 101.01 != Approx( 100.0 )
Condition.tests.cpp:<line number>: failed: data.int_seven == 6 for: 7 == 6
Condition.tests.cpp:<line number>: failed: data.int_seven == 8 for: 7 == 8
Expand Down Expand Up @@ -1364,6 +1378,13 @@ Tricky.tests.cpp:<line number>: passed: ptr.get() == 0 for: 0 == 0
ToStringPair.tests.cpp:<line number>: passed: ::Catch::Detail::stringify( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" for: "{ { 42, "Arthur" }, { "Ford", 24 } }"
==
"{ { 42, "Arthur" }, { "Ford", 24 } }"
ToString.tests.cpp:<line number>: passed: parseEnums( "" ), Equals( std::vector<std::string>{} ) for: { } Equals: { }
ToString.tests.cpp:<line number>: passed: parseEnums( "ClassName::EnumName::Value1" ), Equals(std::vector<std::string>{"Value1"} ) for: { "Value1" } Equals: { "Value1" }
ToString.tests.cpp:<line number>: passed: parseEnums( "Value1" ), Equals( std::vector<std::string>{"Value1"} ) for: { "Value1" } Equals: { "Value1" }
ToString.tests.cpp:<line number>: passed: parseEnums( "EnumName::Value1" ), Equals(std::vector<std::string>{"Value1"} ) for: { "Value1" } Equals: { "Value1" }
ToString.tests.cpp:<line number>: passed: parseEnums( "ClassName::EnumName::Value1, ClassName::EnumName::Value2" ), Equals( std::vector<std::string>{"Value1", "Value2"} ) for: { "Value1", "Value2" } Equals: { "Value1", "Value2" }
ToString.tests.cpp:<line number>: passed: parseEnums( "ClassName::EnumName::Value1, ClassName::EnumName::Value2, ClassName::EnumName::Value3" ), Equals( std::vector<std::string>{"Value1", "Value2", "Value3"} ) for: { "Value1", "Value2", "Value3" } Equals: { "Value1", "Value2", "Value3" }
ToString.tests.cpp:<line number>: passed: parseEnums( "ClassName::EnumName::Value1,ClassName::EnumName::Value2 , ClassName::EnumName::Value3" ), Equals( std::vector<std::string>{"Value1", "Value2", "Value3"} ) for: { "Value1", "Value2", "Value3" } Equals: { "Value1", "Value2", "Value3" }
Tricky.tests.cpp:<line number>: passed: p == 0 for: 0 == 0
Message.tests.cpp:<line number>: passed: true with 1 message: 'this MAY be seen IF info is printed for passing assertions'
Message.tests.cpp:<line number>: failed: false with 2 messages: 'this SHOULD be seen' and 'this SHOULD also be seen'
Expand Down Expand Up @@ -1391,6 +1412,9 @@ String.tests.cpp:<line number>: passed: s == "didn|'t" for: "didn|'t" == "didn|'
Misc.tests.cpp:<line number>: failed: false with 1 message: '3'
Message.tests.cpp:<line number>: failed: false with 2 messages: 'hi' and 'i := 7'
Tag.tests.cpp:<line number>: passed: testcase.tags, Catch::VectorContains(std::string("magic-tag")) && Catch::VectorContains(std::string(".")) for: { ".", "magic-tag" } ( Contains: "magic-tag" and Contains: "." )
String.tests.cpp:<line number>: passed: splitStringRef("", ',' ), Equals(std::vector<StringRef>() ) for: { } Equals: { }
String.tests.cpp:<line number>: passed: splitStringRef("abc", ',' ), Equals(std::vector<StringRef>{"abc"} ) for: { abc } Equals: { abc }
String.tests.cpp:<line number>: passed: splitStringRef("abc,def", ',' ), Equals(std::vector<StringRef>{"abc", "def"} ) for: { abc, def } Equals: { abc, def }
Message.tests.cpp:<line number>: failed: false with 4 messages: 'Count 1 to 3...' and '1' and '2' and '3'
Message.tests.cpp:<line number>: failed: false with 4 messages: 'Count 4 to 6...' and '4' and '5' and '6'
ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify( emptyMap ) == "{ }" for: "{ }" == "{ }"
Expand Down
4 changes: 2 additions & 2 deletions projects/SelfTest/Baselines/console.std.approved.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1299,6 +1299,6 @@ due to unexpected exception with message:
Why would you throw a std::string?

===============================================================================
test cases: 260 | 193 passed | 63 failed | 4 failed as expected
assertions: 1428 | 1283 passed | 124 failed | 21 failed as expected
test cases: 265 | 198 passed | 63 failed | 4 failed as expected
assertions: 1448 | 1303 passed | 124 failed | 21 failed as expected

154 changes: 152 additions & 2 deletions projects/SelfTest/Baselines/console.sw.approved.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2223,6 +2223,29 @@ Approx.tests.cpp:<line number>: PASSED:
with expansion:
0.00001 != Approx( 0.0000001 )

-------------------------------------------------------------------------------
Directly creating an EnumInfo
-------------------------------------------------------------------------------
ToString.tests.cpp:<line number>
...............................................................................

ToString.tests.cpp:<line number>: PASSED:
CHECK( enumInfo->lookup(0) == "Value1" )
with expansion:
Value1 == "Value1"

ToString.tests.cpp:<line number>: PASSED:
CHECK( enumInfo->lookup(1) == "Value2" )
with expansion:
Value2 == "Value2"

ToString.tests.cpp:<line number>: PASSED:
CHECK( enumInfo->lookup(3) == "{** unexpected enum value **}" )
with expansion:
{** unexpected enum value **}
==
"{** unexpected enum value **}"

-------------------------------------------------------------------------------
EndsWith string matcher
-------------------------------------------------------------------------------
Expand All @@ -2240,6 +2263,56 @@ with expansion:
"this string contains 'abc' as a substring" ends with: "this" (case
insensitive)

-------------------------------------------------------------------------------
Enums can quickly have stringification enabled using REGISTER_ENUM
-------------------------------------------------------------------------------
EnumToString.tests.cpp:<line number>
...............................................................................

EnumToString.tests.cpp:<line number>: PASSED:
REQUIRE( stringify( EnumClass3::Value1 ) == "Value1" )
with expansion:
"Value1" == "Value1"

EnumToString.tests.cpp:<line number>: PASSED:
REQUIRE( stringify( EnumClass3::Value2 ) == "Value2" )
with expansion:
"Value2" == "Value2"

EnumToString.tests.cpp:<line number>: PASSED:
REQUIRE( stringify( EnumClass3::Value3 ) == "Value3" )
with expansion:
"Value3" == "Value3"

EnumToString.tests.cpp:<line number>: PASSED:
REQUIRE( stringify( EnumClass3::Value4 ) == "{** unexpected enum value **}" )
with expansion:
"{** unexpected enum value **}"
==
"{** unexpected enum value **}"

EnumToString.tests.cpp:<line number>: PASSED:
REQUIRE( stringify( ec3 ) == "Value2" )
with expansion:
"Value2" == "Value2"

-------------------------------------------------------------------------------
Enums in namespaces can quickly have stringification enabled using
REGISTER_ENUM
-------------------------------------------------------------------------------
EnumToString.tests.cpp:<line number>
...............................................................................

EnumToString.tests.cpp:<line number>: PASSED:
REQUIRE( stringify( Bikeshed::Colours::Red ) == "Red" )
with expansion:
"Red" == "Red"

EnumToString.tests.cpp:<line number>: PASSED:
REQUIRE( stringify( Bikeshed::Colours::Blue ) == "Blue" )
with expansion:
"Blue" == "Blue"

-------------------------------------------------------------------------------
Epsilon only applies to Approx's value
-------------------------------------------------------------------------------
Expand Down Expand Up @@ -10130,6 +10203,62 @@ with expansion:
==
"{ { 42, "Arthur" }, { "Ford", 24 } }"

-------------------------------------------------------------------------------
parseEnums
No enums
-------------------------------------------------------------------------------
ToString.tests.cpp:<line number>
...............................................................................

ToString.tests.cpp:<line number>: PASSED:
CHECK_THAT( parseEnums( "" ), Equals( std::vector<std::string>{} ) )
with expansion:
{ } Equals: { }

-------------------------------------------------------------------------------
parseEnums
One enum value
-------------------------------------------------------------------------------
ToString.tests.cpp:<line number>
...............................................................................

ToString.tests.cpp:<line number>: PASSED:
CHECK_THAT( parseEnums( "ClassName::EnumName::Value1" ), Equals(std::vector<std::string>{"Value1"} ) )
with expansion:
{ "Value1" } Equals: { "Value1" }

ToString.tests.cpp:<line number>: PASSED:
CHECK_THAT( parseEnums( "Value1" ), Equals( std::vector<std::string>{"Value1"} ) )
with expansion:
{ "Value1" } Equals: { "Value1" }

ToString.tests.cpp:<line number>: PASSED:
CHECK_THAT( parseEnums( "EnumName::Value1" ), Equals(std::vector<std::string>{"Value1"} ) )
with expansion:
{ "Value1" } Equals: { "Value1" }

-------------------------------------------------------------------------------
parseEnums
Multiple enum values
-------------------------------------------------------------------------------
ToString.tests.cpp:<line number>
...............................................................................

ToString.tests.cpp:<line number>: PASSED:
CHECK_THAT( parseEnums( "ClassName::EnumName::Value1, ClassName::EnumName::Value2" ), Equals( std::vector<std::string>{"Value1", "Value2"} ) )
with expansion:
{ "Value1", "Value2" } Equals: { "Value1", "Value2" }

ToString.tests.cpp:<line number>: PASSED:
CHECK_THAT( parseEnums( "ClassName::EnumName::Value1, ClassName::EnumName::Value2, ClassName::EnumName::Value3" ), Equals( std::vector<std::string>{"Value1", "Value2", "Value3"} ) )
with expansion:
{ "Value1", "Value2", "Value3" } Equals: { "Value1", "Value2", "Value3" }

ToString.tests.cpp:<line number>: PASSED:
CHECK_THAT( parseEnums( "ClassName::EnumName::Value1,ClassName::EnumName::Value2 , ClassName::EnumName::Value3" ), Equals( std::vector<std::string>{"Value1", "Value2", "Value3"} ) )
with expansion:
{ "Value1", "Value2", "Value3" } Equals: { "Value1", "Value2", "Value3" }

-------------------------------------------------------------------------------
pointer to class
-------------------------------------------------------------------------------
Expand Down Expand Up @@ -10377,6 +10506,27 @@ Tag.tests.cpp:<line number>: PASSED:
with expansion:
{ ".", "magic-tag" } ( Contains: "magic-tag" and Contains: "." )

-------------------------------------------------------------------------------
splitString
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>: PASSED:
CHECK_THAT( splitStringRef("", ',' ), Equals(std::vector<StringRef>() ) )
with expansion:
{ } Equals: { }

String.tests.cpp:<line number>: PASSED:
CHECK_THAT( splitStringRef("abc", ',' ), Equals(std::vector<StringRef>{"abc"} ) )
with expansion:
{ abc } Equals: { abc }

String.tests.cpp:<line number>: PASSED:
CHECK_THAT( splitStringRef("abc,def", ',' ), Equals(std::vector<StringRef>{"abc", "def"} ) )
with expansion:
{ abc, def } Equals: { abc, def }

-------------------------------------------------------------------------------
stacks unscoped info in loops
-------------------------------------------------------------------------------
Expand Down Expand Up @@ -11218,6 +11368,6 @@ Misc.tests.cpp:<line number>
Misc.tests.cpp:<line number>: PASSED:

===============================================================================
test cases: 260 | 177 passed | 79 failed | 4 failed as expected
assertions: 1445 | 1283 passed | 141 failed | 21 failed as expected
test cases: 265 | 182 passed | 79 failed | 4 failed as expected
assertions: 1465 | 1303 passed | 141 failed | 21 failed as expected

9 changes: 8 additions & 1 deletion projects/SelfTest/Baselines/junit.sw.approved.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuitesloose text artifact
>
<testsuite name="<exe-name>" errors="17" failures="125" tests="1446" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
<testsuite name="<exe-name>" errors="17" failures="125" tests="1466" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
<properties>
<property name="filters" value="~[!nonportable]~[!benchmark]~[approvals]"/>
<property name="random-seed" value="1"/>
Expand Down Expand Up @@ -227,6 +227,7 @@ Exception.tests.cpp:<line number>
</error>
</testcase>
<testcase classname="<exe-name>.global" name="Default scale is invisible to comparison" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Directly creating an EnumInfo" time="{duration}"/>
<testcase classname="<exe-name>.global" name="EndsWith string matcher" time="{duration}">
<failure message="&quot;this string contains 'abc' as a substring&quot; ends with: &quot;Substring&quot;" type="CHECK_THAT">
Matchers.tests.cpp:<line number>
Expand All @@ -235,6 +236,8 @@ Matchers.tests.cpp:<line number>
Matchers.tests.cpp:<line number>
</failure>
</testcase>
<testcase classname="<exe-name>.global" name="Enums can quickly have stringification enabled using REGISTER_ENUM" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Enums in namespaces can quickly have stringification enabled using REGISTER_ENUM" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Epsilon only applies to Approx's value" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Equality checks that should fail" time="{duration}">
<failure message="7 == 6" type="CHECK">
Expand Down Expand Up @@ -960,6 +963,9 @@ Message.tests.cpp:<line number>
<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="parseEnums/No enums" time="{duration}"/>
<testcase classname="<exe-name>.global" name="parseEnums/One enum value" time="{duration}"/>
<testcase classname="<exe-name>.global" name="parseEnums/Multiple enum values" time="{duration}"/>
<testcase classname="<exe-name>.global" name="pointer to class" time="{duration}"/>
<testcase classname="<exe-name>.global" name="print unscoped info if passing unscoped info is printed" time="{duration}"/>
<testcase classname="<exe-name>.global" name="prints unscoped info on failure" time="{duration}">
Expand Down Expand Up @@ -998,6 +1004,7 @@ Message.tests.cpp:<line number>
</failure>
</testcase>
<testcase classname="<exe-name>.global" name="shortened hide tags are split apart" time="{duration}"/>
<testcase classname="<exe-name>.global" name="splitString" time="{duration}"/>
<testcase classname="<exe-name>.global" name="stacks unscoped info in loops" time="{duration}">
<failure message="false" type="CHECK">
Count 1 to 3...
Expand Down
Loading

0 comments on commit 9837c35

Please sign in to comment.