Use correct type name instead of index for TEMPLATE_PRODUCT_TEST_CASE (#1544)

Previously, for a TEMPLATE_PRODUCT_TEST_CASE("Test" ..., T, (P1, P2)),
the generated test case names were

  Test - 0
  Test - 1

With this commit, the correct typename is used:

  Test - T<P1>
  Test - T<P2>

-----------

MSVC needs another indirection to evaluate INTERNAL_CATCH_STRINGIZE
and also inserts a space before theINTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS
parameter, which we can get rid of by pointer arithmetic.
This commit is contained in:
Tobias Ribizel 2019-02-17 21:52:22 +01:00 committed by Martin Hořeňovský
parent 359a54b6bd
commit c99a346490
7 changed files with 85 additions and 57 deletions

View File

@ -57,6 +57,16 @@
#define INTERNAL_CATCH_EXPAND2(...) INTERNAL_CATCH_NO## __VA_ARGS__ #define INTERNAL_CATCH_EXPAND2(...) INTERNAL_CATCH_NO## __VA_ARGS__
#define INTERNAL_CATCH_DEF(...) INTERNAL_CATCH_DEF __VA_ARGS__ #define INTERNAL_CATCH_DEF(...) INTERNAL_CATCH_DEF __VA_ARGS__
#define INTERNAL_CATCH_NOINTERNAL_CATCH_DEF #define INTERNAL_CATCH_NOINTERNAL_CATCH_DEF
#define INTERNAL_CATCH_STRINGIZE(...) INTERNAL_CATCH_STRINGIZE2(__VA_ARGS__)
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define INTERNAL_CATCH_STRINGIZE2(...) #__VA_ARGS__
#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param))
#else
// MSVC is adding extra space and needs another indirection to expand INTERNAL_CATCH_NOINTERNAL_CATCH_DEF
#define INTERNAL_CATCH_STRINGIZE2(...) INTERNAL_CATCH_STRINGIZE3(__VA_ARGS__)
#define INTERNAL_CATCH_STRINGIZE3(...) #__VA_ARGS__
#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) (INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param)) + 1)
#endif
#define INTERNAL_CATCH_REMOVE_PARENS(...) INTERNAL_CATCH_EXPAND1(INTERNAL_CATCH_DEF __VA_ARGS__) #define INTERNAL_CATCH_REMOVE_PARENS(...) INTERNAL_CATCH_EXPAND1(INTERNAL_CATCH_DEF __VA_ARGS__)

View File

@ -161,7 +161,10 @@ struct AutoReg : NonCopyable {
CATCH_INTERNAL_CHECK_UNIQUE_TYPES(Types...) \ CATCH_INTERNAL_CHECK_UNIQUE_TYPES(Types...) \
int index = 0; \ int index = 0; \
using expander = int[]; \ using expander = int[]; \
(void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFuncName<Types> ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " + Catch::StringMaker<int>::convert(index++), Tags } ), 0)... };/* NOLINT */ \ constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TmplTypes))};\
constexpr char const* types_list[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TypesList))};\
constexpr auto num_types = sizeof(types_list) / sizeof(types_list[0]);\
(void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFuncName<Types> ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + "<" + std::string(types_list[index % num_types]) + ">", Tags } ), index++, 0)... };/* NOLINT */\
} \ } \
}; \ }; \
static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){ \ static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){ \
@ -226,7 +229,10 @@ struct AutoReg : NonCopyable {
CATCH_INTERNAL_CHECK_UNIQUE_TYPES(Types...)\ CATCH_INTERNAL_CHECK_UNIQUE_TYPES(Types...)\
int index = 0;\ int index = 0;\
using expander = int[];\ using expander = int[];\
(void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + Catch::StringMaker<int>::convert(index++), Tags } ), 0)... };/* NOLINT */ \ constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TmplTypes))};\
constexpr char const* types_list[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TypesList))};\
constexpr auto num_types = sizeof(types_list) / sizeof(types_list[0]);\
(void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + "<" + std::string(types_list[index % num_types]) + ">", Tags } ), index++, 0)... };/* NOLINT */ \
}\ }\
};\ };\
static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\ static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\

View File

@ -793,9 +793,9 @@ CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--use-colour", "no"
CmdLine.tests.cpp:<line number>: passed: config.useColour == UseColour::No for: 2 == 2 CmdLine.tests.cpp:<line number>: passed: config.useColour == UseColour::No for: 2 == 2
CmdLine.tests.cpp:<line number>: passed: !result for: true CmdLine.tests.cpp:<line number>: passed: !result for: true
CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), Contains( "colour mode must be one of" ) for: "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of" CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), Contains( "colour mode must be one of" ) for: "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of"
Misc.tests.cpp:<line number>: passed: std::tuple_size<TestType>::value >= 1 for: 1 >= 1
Misc.tests.cpp:<line number>: passed: std::tuple_size<TestType>::value >= 1 for: 2 >= 1
Misc.tests.cpp:<line number>: passed: std::tuple_size<TestType>::value >= 1 for: 3 >= 1 Misc.tests.cpp:<line number>: passed: std::tuple_size<TestType>::value >= 1 for: 3 >= 1
Misc.tests.cpp:<line number>: passed: std::tuple_size<TestType>::value >= 1 for: 2 >= 1
Misc.tests.cpp:<line number>: passed: std::tuple_size<TestType>::value >= 1 for: 1 >= 1
Decomposition.tests.cpp:<line number>: failed: truthy(false) for: Hey, its truthy! Decomposition.tests.cpp:<line number>: failed: truthy(false) for: Hey, its truthy!
Matchers.tests.cpp:<line number>: failed: testStringForMatching(), Matches("this STRING contains 'abc' as a substring") for: "this string contains 'abc' as a substring" matches "this STRING contains 'abc' as a substring" case sensitively Matchers.tests.cpp:<line number>: failed: testStringForMatching(), Matches("this STRING contains 'abc' as a substring") for: "this string contains 'abc' as a substring" matches "this STRING contains 'abc' as a substring" case sensitively
Matchers.tests.cpp:<line number>: failed: testStringForMatching(), Matches("contains 'abc' as a substring") for: "this string contains 'abc' as a substring" matches "contains 'abc' as a substring" case sensitively Matchers.tests.cpp:<line number>: failed: testStringForMatching(), Matches("contains 'abc' as a substring") for: "this string contains 'abc' as a substring" matches "contains 'abc' as a substring" case sensitively

View File

@ -93,7 +93,8 @@ with expansion:
"hello" == "world" "hello" == "world"
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 0 A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - Template_Foo
<float>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -104,7 +105,8 @@ with expansion:
0 == 1 0 == 1
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 1 A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - Template_Foo
<int>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -115,7 +117,8 @@ with expansion:
0 == 1 0 == 1
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 2 A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - std::vector
<float>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -126,7 +129,8 @@ with expansion:
0 == 1 0 == 1
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 3 A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - std::vector
<int>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
............................................................................... ...............................................................................

View File

@ -1045,7 +1045,8 @@ with expansion:
"hello" == "hello" "hello" == "hello"
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 0 A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - Template_Foo
<float>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -1056,7 +1057,8 @@ with expansion:
0 == 1 0 == 1
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 1 A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - Template_Foo
<int>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -1067,7 +1069,8 @@ with expansion:
0 == 1 0 == 1
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 2 A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - std::vector
<float>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -1078,7 +1081,8 @@ with expansion:
0 == 1 0 == 1
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 3 A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - std::vector
<int>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -1089,7 +1093,8 @@ with expansion:
0 == 1 0 == 1
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - 0 A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - Template_Foo
<float>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -1100,7 +1105,8 @@ with expansion:
0 == 0 0 == 0
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - 1 A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - Template_Foo
<int>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -1111,7 +1117,8 @@ with expansion:
0 == 0 0 == 0
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - 2 A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - std::vector
<float>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -1122,7 +1129,8 @@ with expansion:
0 == 0 0 == 0
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - 3 A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - std::vector
<int>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -1221,7 +1229,7 @@ with expansion:
1 == 1 1 == 1
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A Template product test case - 0 A Template product test case - Foo<float>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Misc.tests.cpp:<line number> Misc.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -1232,7 +1240,7 @@ with expansion:
0 == 0 0 == 0
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A Template product test case - 1 A Template product test case - Foo<int>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Misc.tests.cpp:<line number> Misc.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -1243,7 +1251,7 @@ with expansion:
0 == 0 0 == 0
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A Template product test case - 2 A Template product test case - std::vector<float>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Misc.tests.cpp:<line number> Misc.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -1254,7 +1262,7 @@ with expansion:
0 == 0 0 == 0
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
A Template product test case - 3 A Template product test case - std::vector<int>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Misc.tests.cpp:<line number> Misc.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -5779,7 +5787,7 @@ with expansion:
contains: "colour mode must be one of" contains: "colour mode must be one of"
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Product with differing arities - 0 Product with differing arities - std::tuple<int, double, float>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Misc.tests.cpp:<line number> Misc.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -5787,10 +5795,10 @@ Misc.tests.cpp:<line number>
Misc.tests.cpp:<line number>: PASSED: Misc.tests.cpp:<line number>: PASSED:
REQUIRE( std::tuple_size<TestType>::value >= 1 ) REQUIRE( std::tuple_size<TestType>::value >= 1 )
with expansion: with expansion:
1 >= 1 3 >= 1
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Product with differing arities - 1 Product with differing arities - std::tuple<int, double>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Misc.tests.cpp:<line number> Misc.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -5801,7 +5809,7 @@ with expansion:
2 >= 1 2 >= 1
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Product with differing arities - 2 Product with differing arities - std::tuple<int>
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Misc.tests.cpp:<line number> Misc.tests.cpp:<line number>
............................................................................... ...............................................................................
@ -5809,7 +5817,7 @@ Misc.tests.cpp:<line number>
Misc.tests.cpp:<line number>: PASSED: Misc.tests.cpp:<line number>: PASSED:
REQUIRE( std::tuple_size<TestType>::value >= 1 ) REQUIRE( std::tuple_size<TestType>::value >= 1 )
with expansion: with expansion:
3 >= 1 1 >= 1
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Reconstruction should be based on stringification: #914 Reconstruction should be based on stringification: #914

View File

@ -80,30 +80,30 @@ Class.tests.cpp:<line number>
</failure> </failure>
</testcase> </testcase>
<testcase classname="<exe-name>.TestClass" name="A METHOD_AS_TEST_CASE based test run that succeeds" time="{duration}"/> <testcase classname="<exe-name>.TestClass" name="A METHOD_AS_TEST_CASE based test run that succeeds" time="{duration}"/>
<testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 0" time="{duration}"> <testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - Template_Foo&lt;float>" time="{duration}">
<failure message="0 == 1" type="REQUIRE"> <failure message="0 == 1" type="REQUIRE">
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
</failure> </failure>
</testcase> </testcase>
<testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 1" time="{duration}"> <testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - Template_Foo&lt;int>" time="{duration}">
<failure message="0 == 1" type="REQUIRE"> <failure message="0 == 1" type="REQUIRE">
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
</failure> </failure>
</testcase> </testcase>
<testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 2" time="{duration}"> <testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - std::vector&lt;float>" time="{duration}">
<failure message="0 == 1" type="REQUIRE"> <failure message="0 == 1" type="REQUIRE">
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
</failure> </failure>
</testcase> </testcase>
<testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 3" time="{duration}"> <testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - std::vector&lt;int>" time="{duration}">
<failure message="0 == 1" type="REQUIRE"> <failure message="0 == 1" type="REQUIRE">
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
</failure> </failure>
</testcase> </testcase>
<testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - 0" time="{duration}"/> <testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - Template_Foo&lt;float>" time="{duration}"/>
<testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - 1" time="{duration}"/> <testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - Template_Foo&lt;int>" time="{duration}"/>
<testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - 2" time="{duration}"/> <testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - std::vector&lt;float>" time="{duration}"/>
<testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - 3" time="{duration}"/> <testcase classname="<exe-name>.Template_Fixture_2" name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - std::vector&lt;int>" time="{duration}"/>
<testcase classname="<exe-name>.Template_Fixture" name="A TEMPLATE_TEST_CASE_METHOD based test run that fails - double" time="{duration}"> <testcase classname="<exe-name>.Template_Fixture" name="A TEMPLATE_TEST_CASE_METHOD based test run that fails - double" time="{duration}">
<failure message="1.0 == 2" type="REQUIRE"> <failure message="1.0 == 2" type="REQUIRE">
Class.tests.cpp:<line number> Class.tests.cpp:<line number>
@ -128,10 +128,10 @@ Class.tests.cpp:<line number>
</failure> </failure>
</testcase> </testcase>
<testcase classname="<exe-name>.Fixture" name="A TEST_CASE_METHOD based test run that succeeds" time="{duration}"/> <testcase classname="<exe-name>.Fixture" name="A TEST_CASE_METHOD based test run that succeeds" time="{duration}"/>
<testcase classname="<exe-name>.global" name="A Template product test case - 0" time="{duration}"/> <testcase classname="<exe-name>.global" name="A Template product test case - Foo&lt;float>" time="{duration}"/>
<testcase classname="<exe-name>.global" name="A Template product test case - 1" time="{duration}"/> <testcase classname="<exe-name>.global" name="A Template product test case - Foo&lt;int>" time="{duration}"/>
<testcase classname="<exe-name>.global" name="A Template product test case - 2" time="{duration}"/> <testcase classname="<exe-name>.global" name="A Template product test case - std::vector&lt;float>" time="{duration}"/>
<testcase classname="<exe-name>.global" name="A Template product test case - 3" time="{duration}"/> <testcase classname="<exe-name>.global" name="A Template product test case - std::vector&lt;int>" time="{duration}"/>
<testcase classname="<exe-name>.global" name="A comparison that uses literals instead of the normal constructor" time="{duration}"/> <testcase classname="<exe-name>.global" name="A comparison that uses literals instead of the normal constructor" time="{duration}"/>
<testcase classname="<exe-name>.global" name="A couple of nested sections followed by a failure" time="{duration}"> <testcase classname="<exe-name>.global" name="A couple of nested sections followed by a failure" time="{duration}">
<failure type="FAIL"> <failure type="FAIL">
@ -566,9 +566,9 @@ Message.tests.cpp:<line number>
<testcase classname="<exe-name>.global" name="Process can be configured on command line/use-colour/yes" time="{duration}"/> <testcase classname="<exe-name>.global" name="Process can be configured on command line/use-colour/yes" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Process can be configured on command line/use-colour/no" time="{duration}"/> <testcase classname="<exe-name>.global" name="Process can be configured on command line/use-colour/no" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Process can be configured on command line/use-colour/error" time="{duration}"/> <testcase classname="<exe-name>.global" name="Process can be configured on command line/use-colour/error" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Product with differing arities - 0" time="{duration}"/> <testcase classname="<exe-name>.global" name="Product with differing arities - std::tuple&lt;int, double, float>" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Product with differing arities - 1" time="{duration}"/> <testcase classname="<exe-name>.global" name="Product with differing arities - std::tuple&lt;int, double>" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Product with differing arities - 2" time="{duration}"/> <testcase classname="<exe-name>.global" name="Product with differing arities - std::tuple&lt;int>" time="{duration}"/>
<testcase classname="<exe-name>.global" name="Reconstruction should be based on stringification: #914" time="{duration}"> <testcase classname="<exe-name>.global" name="Reconstruction should be based on stringification: #914" time="{duration}">
<failure message="Hey, its truthy!" type="CHECK"> <failure message="Hey, its truthy!" type="CHECK">
Decomposition.tests.cpp:<line number> Decomposition.tests.cpp:<line number>

View File

@ -1195,7 +1195,7 @@
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 0" tags="[.][class][failing][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - Template_Foo&lt;float>" tags="[.][class][failing][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Expression success="false" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <Expression success="false" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Original> <Original>
Template_Fixture_2&lt;TestType>::m_a.size() == 1 Template_Fixture_2&lt;TestType>::m_a.size() == 1
@ -1206,7 +1206,7 @@
</Expression> </Expression>
<OverallResult success="false"/> <OverallResult success="false"/>
</TestCase> </TestCase>
<TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 1" tags="[.][class][failing][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - Template_Foo&lt;int>" tags="[.][class][failing][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Expression success="false" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <Expression success="false" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Original> <Original>
Template_Fixture_2&lt;TestType>::m_a.size() == 1 Template_Fixture_2&lt;TestType>::m_a.size() == 1
@ -1217,7 +1217,7 @@
</Expression> </Expression>
<OverallResult success="false"/> <OverallResult success="false"/>
</TestCase> </TestCase>
<TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 2" tags="[.][class][failing][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - std::vector&lt;float>" tags="[.][class][failing][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Expression success="false" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <Expression success="false" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Original> <Original>
Template_Fixture_2&lt;TestType>::m_a.size() == 1 Template_Fixture_2&lt;TestType>::m_a.size() == 1
@ -1228,7 +1228,7 @@
</Expression> </Expression>
<OverallResult success="false"/> <OverallResult success="false"/>
</TestCase> </TestCase>
<TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - 3" tags="[.][class][failing][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - std::vector&lt;int>" tags="[.][class][failing][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Expression success="false" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <Expression success="false" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Original> <Original>
Template_Fixture_2&lt;TestType>::m_a.size() == 1 Template_Fixture_2&lt;TestType>::m_a.size() == 1
@ -1239,7 +1239,7 @@
</Expression> </Expression>
<OverallResult success="false"/> <OverallResult success="false"/>
</TestCase> </TestCase>
<TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - 0" tags="[class][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - Template_Foo&lt;float>" tags="[class][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Original> <Original>
Template_Fixture_2&lt;TestType>::m_a.size() == 0 Template_Fixture_2&lt;TestType>::m_a.size() == 0
@ -1250,7 +1250,7 @@
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - 1" tags="[class][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - Template_Foo&lt;int>" tags="[class][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Original> <Original>
Template_Fixture_2&lt;TestType>::m_a.size() == 0 Template_Fixture_2&lt;TestType>::m_a.size() == 0
@ -1261,7 +1261,7 @@
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - 2" tags="[class][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - std::vector&lt;float>" tags="[class][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Original> <Original>
Template_Fixture_2&lt;TestType>::m_a.size() == 0 Template_Fixture_2&lt;TestType>::m_a.size() == 0
@ -1272,7 +1272,7 @@
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - 3" tags="[class][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <TestCase name="A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that succeeds - std::vector&lt;int>" tags="[class][product][template]" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" > <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Class.tests.cpp" >
<Original> <Original>
Template_Fixture_2&lt;TestType>::m_a.size() == 0 Template_Fixture_2&lt;TestType>::m_a.size() == 0
@ -1371,7 +1371,7 @@
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="A Template product test case - 0" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <TestCase name="A Template product test case - Foo&lt;float>" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Original> <Original>
x.size() == 0 x.size() == 0
@ -1382,7 +1382,7 @@
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="A Template product test case - 1" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <TestCase name="A Template product test case - Foo&lt;int>" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Original> <Original>
x.size() == 0 x.size() == 0
@ -1393,7 +1393,7 @@
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="A Template product test case - 2" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <TestCase name="A Template product test case - std::vector&lt;float>" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Original> <Original>
x.size() == 0 x.size() == 0
@ -1404,7 +1404,7 @@
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="A Template product test case - 3" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <TestCase name="A Template product test case - std::vector&lt;int>" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Original> <Original>
x.size() == 0 x.size() == 0
@ -7247,18 +7247,18 @@
</Section> </Section>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="Product with differing arities - 0" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <TestCase name="Product with differing arities - std::tuple&lt;int, double, float>" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Original> <Original>
std::tuple_size&lt;TestType>::value >= 1 std::tuple_size&lt;TestType>::value >= 1
</Original> </Original>
<Expanded> <Expanded>
1 >= 1 3 >= 1
</Expanded> </Expanded>
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="Product with differing arities - 1" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <TestCase name="Product with differing arities - std::tuple&lt;int, double>" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Original> <Original>
std::tuple_size&lt;TestType>::value >= 1 std::tuple_size&lt;TestType>::value >= 1
@ -7269,13 +7269,13 @@
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>
</TestCase> </TestCase>
<TestCase name="Product with differing arities - 2" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <TestCase name="Product with differing arities - std::tuple&lt;int>" tags="[product][template]" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" >
<Original> <Original>
std::tuple_size&lt;TestType>::value >= 1 std::tuple_size&lt;TestType>::value >= 1
</Original> </Original>
<Expanded> <Expanded>
3 >= 1 1 >= 1
</Expanded> </Expanded>
</Expression> </Expression>
<OverallResult success="true"/> <OverallResult success="true"/>