mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 12:17:11 +01:00 
			
		
		
		
	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
					Tobias Ribizel
				
			
				
					committed by
					
						 Martin Hořeňovský
						Martin Hořeňovský
					
				
			
			
				
	
			
			
			 Martin Hořeňovský
						Martin Hořeňovský
					
				
			
						parent
						
							359a54b6bd
						
					
				
				
					commit
					c99a346490
				
			| @@ -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__) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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 ) = [](){\ | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
| @@ -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> | ||||||
| ............................................................................... | ............................................................................... | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
| @@ -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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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> | ||||||
|   | |||||||
| @@ -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<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<TestType>::m_a.size() == 1 |           Template_Fixture_2<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<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<TestType>::m_a.size() == 1 |           Template_Fixture_2<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<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<TestType>::m_a.size() == 1 |           Template_Fixture_2<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<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<TestType>::m_a.size() == 1 |           Template_Fixture_2<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<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<TestType>::m_a.size() == 0 |           Template_Fixture_2<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<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<TestType>::m_a.size() == 0 |           Template_Fixture_2<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<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<TestType>::m_a.size() == 0 |           Template_Fixture_2<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<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<TestType>::m_a.size() == 0 |           Template_Fixture_2<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<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<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<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<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<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<TestType>::value >= 1 |           std::tuple_size<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<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<TestType>::value >= 1 |           std::tuple_size<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<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<TestType>::value >= 1 |           std::tuple_size<TestType>::value >= 1 | ||||||
|         </Original> |         </Original> | ||||||
|         <Expanded> |         <Expanded> | ||||||
|           3 >= 1 |           1 >= 1 | ||||||
|         </Expanded> |         </Expanded> | ||||||
|       </Expression> |       </Expression> | ||||||
|       <OverallResult success="true"/> |       <OverallResult success="true"/> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user