mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 12:17:11 +01:00 
			
		
		
		
	less copies and allocations in replaceInPlace
This commit is contained in:
		 Martin Jeřábek
					Martin Jeřábek
				
			
				
					committed by
					
						 Martin Hořeňovský
						Martin Hořeňovský
					
				
			
			
				
	
			
			
			 Martin Hořeňovský
						Martin Hořeňovský
					
				
			
						parent
						
							cde3509664
						
					
				
				
					commit
					4d8affc989
				
			| @@ -5,6 +5,7 @@ | |||||||
| //        https://www.boost.org/LICENSE_1_0.txt) | //        https://www.boost.org/LICENSE_1_0.txt) | ||||||
|  |  | ||||||
| // SPDX-License-Identifier: BSL-1.0 | // SPDX-License-Identifier: BSL-1.0 | ||||||
|  | #include <catch2/internal/catch_move_and_forward.hpp> | ||||||
| #include <catch2/internal/catch_string_manip.hpp> | #include <catch2/internal/catch_string_manip.hpp> | ||||||
| #include <catch2/internal/catch_stringref.hpp> | #include <catch2/internal/catch_stringref.hpp> | ||||||
|  |  | ||||||
| @@ -65,17 +66,29 @@ namespace Catch { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) { |     bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) { | ||||||
|         bool replaced = false; |  | ||||||
|         std::size_t i = str.find( replaceThis ); |         std::size_t i = str.find( replaceThis ); | ||||||
|         while( i != std::string::npos ) { |         if (i == std::string::npos) { | ||||||
|             replaced = true; |             return false; | ||||||
|             str = str.substr( 0, i ) + withThis + str.substr( i+replaceThis.size() ); |         } | ||||||
|             if( i < str.size()-withThis.size() ) |         std::size_t copyBegin = 0; | ||||||
|                 i = str.find( replaceThis, i+withThis.size() ); |         std::string origStr = CATCH_MOVE(str); | ||||||
|  |         str.clear(); | ||||||
|  |         // There is at least one replacement, so reserve with the best guess | ||||||
|  |         // we can make without actually counting the number of occurences. | ||||||
|  |         str.reserve(origStr.size() - replaceThis.size() + withThis.size()); | ||||||
|  |         do { | ||||||
|  |             str.append(origStr, copyBegin, i-copyBegin ); | ||||||
|  |             str += withThis; | ||||||
|  |             copyBegin = i + replaceThis.size(); | ||||||
|  |             if( copyBegin < origStr.size() ) | ||||||
|  |                 i = origStr.find( replaceThis, copyBegin ); | ||||||
|             else |             else | ||||||
|                 i = std::string::npos; |                 i = std::string::npos; | ||||||
|  |         } while( i != std::string::npos ); | ||||||
|  |         if ( copyBegin < origStr.size() ) { | ||||||
|  |             str.append(origStr, copyBegin, origStr.size() ); | ||||||
|         } |         } | ||||||
|         return replaced; |         return true; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     std::vector<StringRef> splitStringRef( StringRef str, char delimiter ) { |     std::vector<StringRef> splitStringRef( StringRef str, char delimiter ) { | ||||||
|   | |||||||
| @@ -1733,13 +1733,13 @@ Tag.tests.cpp:<line number>: passed: testCase.tags, VectorContains( Tag( "tag wi | |||||||
| Class.tests.cpp:<line number>: passed: Template_Fixture<TestType>::m_a == 1 for: 1 == 1 | Class.tests.cpp:<line number>: passed: Template_Fixture<TestType>::m_a == 1 for: 1 == 1 | ||||||
| Class.tests.cpp:<line number>: passed: Template_Fixture<TestType>::m_a == 1 for: 1 == 1 | Class.tests.cpp:<line number>: passed: Template_Fixture<TestType>::m_a == 1 for: 1 == 1 | ||||||
| Class.tests.cpp:<line number>: passed: Template_Fixture<TestType>::m_a == 1 for: 1.0 == 1 | Class.tests.cpp:<line number>: passed: Template_Fixture<TestType>::m_a == 1 for: 1.0 == 1 | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 1 > 0 | Misc.tests.cpp:<line number>: passed: std::is_default_constructible<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 4 > 0 | Misc.tests.cpp:<line number>: passed: std::is_default_constructible<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 1 > 0 | Misc.tests.cpp:<line number>: passed: std::is_trivially_copyable<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 4 > 0 | Misc.tests.cpp:<line number>: passed: std::is_trivially_copyable<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 4 > 0 | Misc.tests.cpp:<line number>: passed: std::is_arithmetic<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 1 > 0 | Misc.tests.cpp:<line number>: passed: std::is_arithmetic<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 4 > 0 | Misc.tests.cpp:<line number>: passed: std::is_arithmetic<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: v.size() == 5 for: 5 == 5 | Misc.tests.cpp:<line number>: passed: v.size() == 5 for: 5 == 5 | ||||||
| Misc.tests.cpp:<line number>: passed: v.capacity() >= 5 for: 5 >= 5 | Misc.tests.cpp:<line number>: passed: v.capacity() >= 5 for: 5 >= 5 | ||||||
| Misc.tests.cpp:<line number>: passed: v.size() == 10 for: 10 == 10 | Misc.tests.cpp:<line number>: passed: v.size() == 10 for: 10 == 10 | ||||||
| @@ -2479,6 +2479,10 @@ StringManip.tests.cpp:<line number>: passed: Catch::replaceInPlace(letters, lett | |||||||
| StringManip.tests.cpp:<line number>: passed: letters == "replaced" for: "replaced" == "replaced" | StringManip.tests.cpp:<line number>: passed: letters == "replaced" for: "replaced" == "replaced" | ||||||
| StringManip.tests.cpp:<line number>: passed: !(Catch::replaceInPlace(letters, "x", "z")) for: !false | StringManip.tests.cpp:<line number>: passed: !(Catch::replaceInPlace(letters, "x", "z")) for: !false | ||||||
| StringManip.tests.cpp:<line number>: passed: letters == letters for: "abcdefcg" == "abcdefcg" | StringManip.tests.cpp:<line number>: passed: letters == letters for: "abcdefcg" == "abcdefcg" | ||||||
|  | StringManip.tests.cpp:<line number>: passed: Catch::replaceInPlace(letters, "c", "cc") for: true | ||||||
|  | StringManip.tests.cpp:<line number>: passed: letters == "abccdefccg" for: "abccdefccg" == "abccdefccg" | ||||||
|  | StringManip.tests.cpp:<line number>: passed: Catch::replaceInPlace(s, "--", "-") for: true | ||||||
|  | StringManip.tests.cpp:<line number>: passed: s == "--" for: "--" == "--" | ||||||
| StringManip.tests.cpp:<line number>: passed: Catch::replaceInPlace(s, "'", "|'") for: true | StringManip.tests.cpp:<line number>: passed: Catch::replaceInPlace(s, "'", "|'") for: true | ||||||
| StringManip.tests.cpp:<line number>: passed: s == "didn|'t" for: "didn|'t" == "didn|'t" | StringManip.tests.cpp:<line number>: passed: s == "didn|'t" for: "didn|'t" == "didn|'t" | ||||||
| Stream.tests.cpp:<line number>: passed: Catch::makeStream( "%somestream" ) | Stream.tests.cpp:<line number>: passed: Catch::makeStream( "%somestream" ) | ||||||
| @@ -2686,6 +2690,6 @@ InternalBenchmark.tests.cpp:<line number>: passed: q3 == 23. for: 23.0 == 23.0 | |||||||
| Misc.tests.cpp:<line number>: passed: | Misc.tests.cpp:<line number>: passed: | ||||||
| Misc.tests.cpp:<line number>: passed: | Misc.tests.cpp:<line number>: passed: | ||||||
| test cases:  417 |  312 passed |  85 failed | 6 skipped | 14 failed as expected | test cases:  417 |  312 passed |  85 failed | 6 skipped | 14 failed as expected | ||||||
| assertions: 2256 | 2075 passed | 146 failed | 35 failed as expected | assertions: 2260 | 2079 passed | 146 failed | 35 failed as expected | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1726,13 +1726,13 @@ Tag.tests.cpp:<line number>: passed: testCase.tags, VectorContains( Tag( "tag wi | |||||||
| Class.tests.cpp:<line number>: passed: Template_Fixture<TestType>::m_a == 1 for: 1 == 1 | Class.tests.cpp:<line number>: passed: Template_Fixture<TestType>::m_a == 1 for: 1 == 1 | ||||||
| Class.tests.cpp:<line number>: passed: Template_Fixture<TestType>::m_a == 1 for: 1 == 1 | Class.tests.cpp:<line number>: passed: Template_Fixture<TestType>::m_a == 1 for: 1 == 1 | ||||||
| Class.tests.cpp:<line number>: passed: Template_Fixture<TestType>::m_a == 1 for: 1.0 == 1 | Class.tests.cpp:<line number>: passed: Template_Fixture<TestType>::m_a == 1 for: 1.0 == 1 | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 1 > 0 | Misc.tests.cpp:<line number>: passed: std::is_default_constructible<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 4 > 0 | Misc.tests.cpp:<line number>: passed: std::is_default_constructible<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 1 > 0 | Misc.tests.cpp:<line number>: passed: std::is_trivially_copyable<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 4 > 0 | Misc.tests.cpp:<line number>: passed: std::is_trivially_copyable<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 4 > 0 | Misc.tests.cpp:<line number>: passed: std::is_arithmetic<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 1 > 0 | Misc.tests.cpp:<line number>: passed: std::is_arithmetic<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: sizeof(TestType) > 0 for: 4 > 0 | Misc.tests.cpp:<line number>: passed: std::is_arithmetic<TestType>::value for: true | ||||||
| Misc.tests.cpp:<line number>: passed: v.size() == 5 for: 5 == 5 | Misc.tests.cpp:<line number>: passed: v.size() == 5 for: 5 == 5 | ||||||
| Misc.tests.cpp:<line number>: passed: v.capacity() >= 5 for: 5 >= 5 | Misc.tests.cpp:<line number>: passed: v.capacity() >= 5 for: 5 >= 5 | ||||||
| Misc.tests.cpp:<line number>: passed: v.size() == 10 for: 10 == 10 | Misc.tests.cpp:<line number>: passed: v.size() == 10 for: 10 == 10 | ||||||
| @@ -2468,6 +2468,10 @@ StringManip.tests.cpp:<line number>: passed: Catch::replaceInPlace(letters, lett | |||||||
| StringManip.tests.cpp:<line number>: passed: letters == "replaced" for: "replaced" == "replaced" | StringManip.tests.cpp:<line number>: passed: letters == "replaced" for: "replaced" == "replaced" | ||||||
| StringManip.tests.cpp:<line number>: passed: !(Catch::replaceInPlace(letters, "x", "z")) for: !false | StringManip.tests.cpp:<line number>: passed: !(Catch::replaceInPlace(letters, "x", "z")) for: !false | ||||||
| StringManip.tests.cpp:<line number>: passed: letters == letters for: "abcdefcg" == "abcdefcg" | StringManip.tests.cpp:<line number>: passed: letters == letters for: "abcdefcg" == "abcdefcg" | ||||||
|  | StringManip.tests.cpp:<line number>: passed: Catch::replaceInPlace(letters, "c", "cc") for: true | ||||||
|  | StringManip.tests.cpp:<line number>: passed: letters == "abccdefccg" for: "abccdefccg" == "abccdefccg" | ||||||
|  | StringManip.tests.cpp:<line number>: passed: Catch::replaceInPlace(s, "--", "-") for: true | ||||||
|  | StringManip.tests.cpp:<line number>: passed: s == "--" for: "--" == "--" | ||||||
| StringManip.tests.cpp:<line number>: passed: Catch::replaceInPlace(s, "'", "|'") for: true | StringManip.tests.cpp:<line number>: passed: Catch::replaceInPlace(s, "'", "|'") for: true | ||||||
| StringManip.tests.cpp:<line number>: passed: s == "didn|'t" for: "didn|'t" == "didn|'t" | StringManip.tests.cpp:<line number>: passed: s == "didn|'t" for: "didn|'t" == "didn|'t" | ||||||
| Stream.tests.cpp:<line number>: passed: Catch::makeStream( "%somestream" ) | Stream.tests.cpp:<line number>: passed: Catch::makeStream( "%somestream" ) | ||||||
| @@ -2675,6 +2679,6 @@ InternalBenchmark.tests.cpp:<line number>: passed: q3 == 23. for: 23.0 == 23.0 | |||||||
| Misc.tests.cpp:<line number>: passed: | Misc.tests.cpp:<line number>: passed: | ||||||
| Misc.tests.cpp:<line number>: passed: | Misc.tests.cpp:<line number>: passed: | ||||||
| test cases:  417 |  312 passed |  85 failed | 6 skipped | 14 failed as expected | test cases:  417 |  312 passed |  85 failed | 6 skipped | 14 failed as expected | ||||||
| assertions: 2256 | 2075 passed | 146 failed | 35 failed as expected | assertions: 2260 | 2079 passed | 146 failed | 35 failed as expected | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1589,5 +1589,5 @@ due to unexpected exception with message: | |||||||
|  |  | ||||||
| =============================================================================== | =============================================================================== | ||||||
| test cases:  417 |  326 passed |  70 failed | 7 skipped | 14 failed as expected | test cases:  417 |  326 passed |  70 failed | 7 skipped | 14 failed as expected | ||||||
| assertions: 2239 | 2075 passed | 129 failed | 35 failed as expected | assertions: 2243 | 2079 passed | 129 failed | 35 failed as expected | ||||||
|  |  | ||||||
|   | |||||||
| @@ -11655,9 +11655,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_default_constructible<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   1 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| Template test case with test types specified inside non-copyable and non- | Template test case with test types specified inside non-copyable and non- | ||||||
| @@ -11667,9 +11667,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_default_constructible<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   4 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| Template test case with test types specified inside non-default-constructible | Template test case with test types specified inside non-default-constructible | ||||||
| @@ -11679,9 +11679,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_trivially_copyable<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   1 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| Template test case with test types specified inside non-default-constructible | Template test case with test types specified inside non-default-constructible | ||||||
| @@ -11691,9 +11691,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_trivially_copyable<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   4 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| Template test case with test types specified inside std::tuple - MyTypes - 0 | Template test case with test types specified inside std::tuple - MyTypes - 0 | ||||||
| @@ -11702,9 +11702,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_arithmetic<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   4 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| Template test case with test types specified inside std::tuple - MyTypes - 1 | Template test case with test types specified inside std::tuple - MyTypes - 1 | ||||||
| @@ -11713,9 +11713,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_arithmetic<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   1 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| Template test case with test types specified inside std::tuple - MyTypes - 2 | Template test case with test types specified inside std::tuple - MyTypes - 2 | ||||||
| @@ -11724,9 +11724,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_arithmetic<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   4 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| TemplateTest: vectors can be sized and resized - float | TemplateTest: vectors can be sized and resized - float | ||||||
| @@ -17289,6 +17289,42 @@ StringManip.tests.cpp:<line number>: PASSED: | |||||||
| with expansion: | with expansion: | ||||||
|   "abcdefcg" == "abcdefcg" |   "abcdefcg" == "abcdefcg" | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------------------- | ||||||
|  | replaceInPlace | ||||||
|  |   no replace in already-replaced string | ||||||
|  |   lengthening | ||||||
|  | ------------------------------------------------------------------------------- | ||||||
|  | StringManip.tests.cpp:<line number> | ||||||
|  | ............................................................................... | ||||||
|  |  | ||||||
|  | StringManip.tests.cpp:<line number>: PASSED: | ||||||
|  |   CHECK( Catch::replaceInPlace(letters, "c", "cc") ) | ||||||
|  | with expansion: | ||||||
|  |   true | ||||||
|  |  | ||||||
|  | StringManip.tests.cpp:<line number>: PASSED: | ||||||
|  |   CHECK( letters == "abccdefccg" ) | ||||||
|  | with expansion: | ||||||
|  |   "abccdefccg" == "abccdefccg" | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------------------- | ||||||
|  | replaceInPlace | ||||||
|  |   no replace in already-replaced string | ||||||
|  |   shortening | ||||||
|  | ------------------------------------------------------------------------------- | ||||||
|  | StringManip.tests.cpp:<line number> | ||||||
|  | ............................................................................... | ||||||
|  |  | ||||||
|  | StringManip.tests.cpp:<line number>: PASSED: | ||||||
|  |   CHECK( Catch::replaceInPlace(s, "--", "-") ) | ||||||
|  | with expansion: | ||||||
|  |   true | ||||||
|  |  | ||||||
|  | StringManip.tests.cpp:<line number>: PASSED: | ||||||
|  |   CHECK( s == "--" ) | ||||||
|  | with expansion: | ||||||
|  |   "--" == "--" | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| replaceInPlace | replaceInPlace | ||||||
|   escape ' |   escape ' | ||||||
| @@ -18732,5 +18768,5 @@ Misc.tests.cpp:<line number>: PASSED: | |||||||
|  |  | ||||||
| =============================================================================== | =============================================================================== | ||||||
| test cases:  417 |  312 passed |  85 failed | 6 skipped | 14 failed as expected | test cases:  417 |  312 passed |  85 failed | 6 skipped | 14 failed as expected | ||||||
| assertions: 2256 | 2075 passed | 146 failed | 35 failed as expected | assertions: 2260 | 2079 passed | 146 failed | 35 failed as expected | ||||||
|  |  | ||||||
|   | |||||||
| @@ -11648,9 +11648,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_default_constructible<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   1 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| Template test case with test types specified inside non-copyable and non- | Template test case with test types specified inside non-copyable and non- | ||||||
| @@ -11660,9 +11660,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_default_constructible<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   4 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| Template test case with test types specified inside non-default-constructible | Template test case with test types specified inside non-default-constructible | ||||||
| @@ -11672,9 +11672,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_trivially_copyable<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   1 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| Template test case with test types specified inside non-default-constructible | Template test case with test types specified inside non-default-constructible | ||||||
| @@ -11684,9 +11684,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_trivially_copyable<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   4 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| Template test case with test types specified inside std::tuple - MyTypes - 0 | Template test case with test types specified inside std::tuple - MyTypes - 0 | ||||||
| @@ -11695,9 +11695,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_arithmetic<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   4 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| Template test case with test types specified inside std::tuple - MyTypes - 1 | Template test case with test types specified inside std::tuple - MyTypes - 1 | ||||||
| @@ -11706,9 +11706,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_arithmetic<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   1 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| Template test case with test types specified inside std::tuple - MyTypes - 2 | Template test case with test types specified inside std::tuple - MyTypes - 2 | ||||||
| @@ -11717,9 +11717,9 @@ Misc.tests.cpp:<line number> | |||||||
| ............................................................................... | ............................................................................... | ||||||
|  |  | ||||||
| Misc.tests.cpp:<line number>: PASSED: | Misc.tests.cpp:<line number>: PASSED: | ||||||
|   REQUIRE( sizeof(TestType) > 0 ) |   REQUIRE( std::is_arithmetic<TestType>::value ) | ||||||
| with expansion: | with expansion: | ||||||
|   4 > 0 |   true | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| TemplateTest: vectors can be sized and resized - float | TemplateTest: vectors can be sized and resized - float | ||||||
| @@ -17278,6 +17278,42 @@ StringManip.tests.cpp:<line number>: PASSED: | |||||||
| with expansion: | with expansion: | ||||||
|   "abcdefcg" == "abcdefcg" |   "abcdefcg" == "abcdefcg" | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------------------- | ||||||
|  | replaceInPlace | ||||||
|  |   no replace in already-replaced string | ||||||
|  |   lengthening | ||||||
|  | ------------------------------------------------------------------------------- | ||||||
|  | StringManip.tests.cpp:<line number> | ||||||
|  | ............................................................................... | ||||||
|  |  | ||||||
|  | StringManip.tests.cpp:<line number>: PASSED: | ||||||
|  |   CHECK( Catch::replaceInPlace(letters, "c", "cc") ) | ||||||
|  | with expansion: | ||||||
|  |   true | ||||||
|  |  | ||||||
|  | StringManip.tests.cpp:<line number>: PASSED: | ||||||
|  |   CHECK( letters == "abccdefccg" ) | ||||||
|  | with expansion: | ||||||
|  |   "abccdefccg" == "abccdefccg" | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------------------- | ||||||
|  | replaceInPlace | ||||||
|  |   no replace in already-replaced string | ||||||
|  |   shortening | ||||||
|  | ------------------------------------------------------------------------------- | ||||||
|  | StringManip.tests.cpp:<line number> | ||||||
|  | ............................................................................... | ||||||
|  |  | ||||||
|  | StringManip.tests.cpp:<line number>: PASSED: | ||||||
|  |   CHECK( Catch::replaceInPlace(s, "--", "-") ) | ||||||
|  | with expansion: | ||||||
|  |   true | ||||||
|  |  | ||||||
|  | StringManip.tests.cpp:<line number>: PASSED: | ||||||
|  |   CHECK( s == "--" ) | ||||||
|  | with expansion: | ||||||
|  |   "--" == "--" | ||||||
|  |  | ||||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||||||
| replaceInPlace | replaceInPlace | ||||||
|   escape ' |   escape ' | ||||||
| @@ -18721,5 +18757,5 @@ Misc.tests.cpp:<line number>: PASSED: | |||||||
|  |  | ||||||
| =============================================================================== | =============================================================================== | ||||||
| test cases:  417 |  312 passed |  85 failed | 6 skipped | 14 failed as expected | test cases:  417 |  312 passed |  85 failed | 6 skipped | 14 failed as expected | ||||||
| assertions: 2256 | 2075 passed | 146 failed | 35 failed as expected | assertions: 2260 | 2079 passed | 146 failed | 35 failed as expected | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||||
| <testsuitesloose text artifact | <testsuitesloose text artifact | ||||||
| > | > | ||||||
|   <testsuite name="<exe-name>" errors="17" failures="129" skipped="12" tests="2268" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> |   <testsuite name="<exe-name>" errors="17" failures="129" skipped="12" tests="2272" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||||
|     <properties> |     <properties> | ||||||
|       <property name="random-seed" value="1"/> |       <property name="random-seed" value="1"/> | ||||||
|       <property name="filters" value=""*" ~[!nonportable] ~[!benchmark] ~[approvals]"/> |       <property name="filters" value=""*" ~[!nonportable] ~[!benchmark] ~[approvals]"/> | ||||||
| @@ -1966,6 +1966,8 @@ at Message.tests.cpp:<line number> | |||||||
|     <testcase classname="<exe-name>.global" name="replaceInPlace/replace last char" time="{duration}" status="run"/> |     <testcase classname="<exe-name>.global" name="replaceInPlace/replace last char" time="{duration}" status="run"/> | ||||||
|     <testcase classname="<exe-name>.global" name="replaceInPlace/replace all chars" time="{duration}" status="run"/> |     <testcase classname="<exe-name>.global" name="replaceInPlace/replace all chars" time="{duration}" status="run"/> | ||||||
|     <testcase classname="<exe-name>.global" name="replaceInPlace/replace no chars" time="{duration}" status="run"/> |     <testcase classname="<exe-name>.global" name="replaceInPlace/replace no chars" time="{duration}" status="run"/> | ||||||
|  |     <testcase classname="<exe-name>.global" name="replaceInPlace/no replace in already-replaced string/lengthening" time="{duration}" status="run"/> | ||||||
|  |     <testcase classname="<exe-name>.global" name="replaceInPlace/no replace in already-replaced string/shortening" time="{duration}" status="run"/> | ||||||
|     <testcase classname="<exe-name>.global" name="replaceInPlace/escape '" time="{duration}" status="run"/> |     <testcase classname="<exe-name>.global" name="replaceInPlace/escape '" time="{duration}" status="run"/> | ||||||
|     <testcase classname="<exe-name>.global" name="request an unknown %-starting stream fails" time="{duration}" status="run"/> |     <testcase classname="<exe-name>.global" name="request an unknown %-starting stream fails" time="{duration}" status="run"/> | ||||||
|     <testcase classname="<exe-name>.global" name="resolution" time="{duration}" status="run"/> |     <testcase classname="<exe-name>.global" name="resolution" time="{duration}" status="run"/> | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||||
| <testsuites> | <testsuites> | ||||||
|   <testsuite name="<exe-name>" errors="17" failures="129" skipped="12" tests="2268" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> |   <testsuite name="<exe-name>" errors="17" failures="129" skipped="12" tests="2272" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||||
|     <properties> |     <properties> | ||||||
|       <property name="random-seed" value="1"/> |       <property name="random-seed" value="1"/> | ||||||
|       <property name="filters" value=""*" ~[!nonportable] ~[!benchmark] ~[approvals]"/> |       <property name="filters" value=""*" ~[!nonportable] ~[!benchmark] ~[approvals]"/> | ||||||
| @@ -1965,6 +1965,8 @@ at Message.tests.cpp:<line number> | |||||||
|     <testcase classname="<exe-name>.global" name="replaceInPlace/replace last char" time="{duration}" status="run"/> |     <testcase classname="<exe-name>.global" name="replaceInPlace/replace last char" time="{duration}" status="run"/> | ||||||
|     <testcase classname="<exe-name>.global" name="replaceInPlace/replace all chars" time="{duration}" status="run"/> |     <testcase classname="<exe-name>.global" name="replaceInPlace/replace all chars" time="{duration}" status="run"/> | ||||||
|     <testcase classname="<exe-name>.global" name="replaceInPlace/replace no chars" time="{duration}" status="run"/> |     <testcase classname="<exe-name>.global" name="replaceInPlace/replace no chars" time="{duration}" status="run"/> | ||||||
|  |     <testcase classname="<exe-name>.global" name="replaceInPlace/no replace in already-replaced string/lengthening" time="{duration}" status="run"/> | ||||||
|  |     <testcase classname="<exe-name>.global" name="replaceInPlace/no replace in already-replaced string/shortening" time="{duration}" status="run"/> | ||||||
|     <testcase classname="<exe-name>.global" name="replaceInPlace/escape '" time="{duration}" status="run"/> |     <testcase classname="<exe-name>.global" name="replaceInPlace/escape '" time="{duration}" status="run"/> | ||||||
|     <testcase classname="<exe-name>.global" name="request an unknown %-starting stream fails" time="{duration}" status="run"/> |     <testcase classname="<exe-name>.global" name="request an unknown %-starting stream fails" time="{duration}" status="run"/> | ||||||
|     <testcase classname="<exe-name>.global" name="resolution" time="{duration}" status="run"/> |     <testcase classname="<exe-name>.global" name="resolution" time="{duration}" status="run"/> | ||||||
|   | |||||||
| @@ -262,6 +262,8 @@ at AssertionHandler.tests.cpp:<line number> | |||||||
|     <testCase name="replaceInPlace/replace last char" duration="{duration}"/> |     <testCase name="replaceInPlace/replace last char" duration="{duration}"/> | ||||||
|     <testCase name="replaceInPlace/replace all chars" duration="{duration}"/> |     <testCase name="replaceInPlace/replace all chars" duration="{duration}"/> | ||||||
|     <testCase name="replaceInPlace/replace no chars" duration="{duration}"/> |     <testCase name="replaceInPlace/replace no chars" duration="{duration}"/> | ||||||
|  |     <testCase name="replaceInPlace/no replace in already-replaced string/lengthening" duration="{duration}"/> | ||||||
|  |     <testCase name="replaceInPlace/no replace in already-replaced string/shortening" duration="{duration}"/> | ||||||
|     <testCase name="replaceInPlace/escape '" duration="{duration}"/> |     <testCase name="replaceInPlace/escape '" duration="{duration}"/> | ||||||
|     <testCase name="splitString" duration="{duration}"/> |     <testCase name="splitString" duration="{duration}"/> | ||||||
|     <testCase name="startsWith" duration="{duration}"/> |     <testCase name="startsWith" duration="{duration}"/> | ||||||
|   | |||||||
| @@ -261,6 +261,8 @@ at AssertionHandler.tests.cpp:<line number> | |||||||
|     <testCase name="replaceInPlace/replace last char" duration="{duration}"/> |     <testCase name="replaceInPlace/replace last char" duration="{duration}"/> | ||||||
|     <testCase name="replaceInPlace/replace all chars" duration="{duration}"/> |     <testCase name="replaceInPlace/replace all chars" duration="{duration}"/> | ||||||
|     <testCase name="replaceInPlace/replace no chars" duration="{duration}"/> |     <testCase name="replaceInPlace/replace no chars" duration="{duration}"/> | ||||||
|  |     <testCase name="replaceInPlace/no replace in already-replaced string/lengthening" duration="{duration}"/> | ||||||
|  |     <testCase name="replaceInPlace/no replace in already-replaced string/shortening" duration="{duration}"/> | ||||||
|     <testCase name="replaceInPlace/escape '" duration="{duration}"/> |     <testCase name="replaceInPlace/escape '" duration="{duration}"/> | ||||||
|     <testCase name="splitString" duration="{duration}"/> |     <testCase name="splitString" duration="{duration}"/> | ||||||
|     <testCase name="startsWith" duration="{duration}"/> |     <testCase name="startsWith" duration="{duration}"/> | ||||||
|   | |||||||
| @@ -2804,19 +2804,19 @@ ok {test-number} - Template_Fixture<TestType>::m_a == 1 for: 1 == 1 | |||||||
| # Template test case method with test types specified inside std::tuple - MyTypes - 2 | # Template test case method with test types specified inside std::tuple - MyTypes - 2 | ||||||
| ok {test-number} - Template_Fixture<TestType>::m_a == 1 for: 1.0 == 1 | ok {test-number} - Template_Fixture<TestType>::m_a == 1 for: 1.0 == 1 | ||||||
| # Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 0 | # Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 0 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 1 > 0 | ok {test-number} - std::is_default_constructible<TestType>::value for: true | ||||||
| # Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 1 | # Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 1 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 4 > 0 | ok {test-number} - std::is_default_constructible<TestType>::value for: true | ||||||
| # Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 0 | # Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 0 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 1 > 0 | ok {test-number} - std::is_trivially_copyable<TestType>::value for: true | ||||||
| # Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 1 | # Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 1 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 4 > 0 | ok {test-number} - std::is_trivially_copyable<TestType>::value for: true | ||||||
| # Template test case with test types specified inside std::tuple - MyTypes - 0 | # Template test case with test types specified inside std::tuple - MyTypes - 0 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 4 > 0 | ok {test-number} - std::is_arithmetic<TestType>::value for: true | ||||||
| # Template test case with test types specified inside std::tuple - MyTypes - 1 | # Template test case with test types specified inside std::tuple - MyTypes - 1 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 1 > 0 | ok {test-number} - std::is_arithmetic<TestType>::value for: true | ||||||
| # Template test case with test types specified inside std::tuple - MyTypes - 2 | # Template test case with test types specified inside std::tuple - MyTypes - 2 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 4 > 0 | ok {test-number} - std::is_arithmetic<TestType>::value for: true | ||||||
| # TemplateTest: vectors can be sized and resized - float | # TemplateTest: vectors can be sized and resized - float | ||||||
| ok {test-number} - v.size() == 5 for: 5 == 5 | ok {test-number} - v.size() == 5 for: 5 == 5 | ||||||
| # TemplateTest: vectors can be sized and resized - float | # TemplateTest: vectors can be sized and resized - float | ||||||
| @@ -4198,6 +4198,14 @@ ok {test-number} - !(Catch::replaceInPlace(letters, "x", "z")) for: !false | |||||||
| # replaceInPlace | # replaceInPlace | ||||||
| ok {test-number} - letters == letters for: "abcdefcg" == "abcdefcg" | ok {test-number} - letters == letters for: "abcdefcg" == "abcdefcg" | ||||||
| # replaceInPlace | # replaceInPlace | ||||||
|  | ok {test-number} - Catch::replaceInPlace(letters, "c", "cc") for: true | ||||||
|  | # replaceInPlace | ||||||
|  | ok {test-number} - letters == "abccdefccg" for: "abccdefccg" == "abccdefccg" | ||||||
|  | # replaceInPlace | ||||||
|  | ok {test-number} - Catch::replaceInPlace(s, "--", "-") for: true | ||||||
|  | # replaceInPlace | ||||||
|  | ok {test-number} - s == "--" for: "--" == "--" | ||||||
|  | # replaceInPlace | ||||||
| ok {test-number} - Catch::replaceInPlace(s, "'", "|'") for: true | ok {test-number} - Catch::replaceInPlace(s, "'", "|'") for: true | ||||||
| # replaceInPlace | # replaceInPlace | ||||||
| ok {test-number} - s == "didn|'t" for: "didn|'t" == "didn|'t" | ok {test-number} - s == "didn|'t" for: "didn|'t" == "didn|'t" | ||||||
| @@ -4541,5 +4549,5 @@ ok {test-number} - q3 == 23. for: 23.0 == 23.0 | |||||||
| ok {test-number} - | ok {test-number} - | ||||||
| # xmlentitycheck | # xmlentitycheck | ||||||
| ok {test-number} - | ok {test-number} - | ||||||
| 1..2268 | 1..2272 | ||||||
|  |  | ||||||
|   | |||||||
| @@ -2797,19 +2797,19 @@ ok {test-number} - Template_Fixture<TestType>::m_a == 1 for: 1 == 1 | |||||||
| # Template test case method with test types specified inside std::tuple - MyTypes - 2 | # Template test case method with test types specified inside std::tuple - MyTypes - 2 | ||||||
| ok {test-number} - Template_Fixture<TestType>::m_a == 1 for: 1.0 == 1 | ok {test-number} - Template_Fixture<TestType>::m_a == 1 for: 1.0 == 1 | ||||||
| # Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 0 | # Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 0 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 1 > 0 | ok {test-number} - std::is_default_constructible<TestType>::value for: true | ||||||
| # Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 1 | # Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 1 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 4 > 0 | ok {test-number} - std::is_default_constructible<TestType>::value for: true | ||||||
| # Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 0 | # Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 0 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 1 > 0 | ok {test-number} - std::is_trivially_copyable<TestType>::value for: true | ||||||
| # Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 1 | # Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 1 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 4 > 0 | ok {test-number} - std::is_trivially_copyable<TestType>::value for: true | ||||||
| # Template test case with test types specified inside std::tuple - MyTypes - 0 | # Template test case with test types specified inside std::tuple - MyTypes - 0 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 4 > 0 | ok {test-number} - std::is_arithmetic<TestType>::value for: true | ||||||
| # Template test case with test types specified inside std::tuple - MyTypes - 1 | # Template test case with test types specified inside std::tuple - MyTypes - 1 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 1 > 0 | ok {test-number} - std::is_arithmetic<TestType>::value for: true | ||||||
| # Template test case with test types specified inside std::tuple - MyTypes - 2 | # Template test case with test types specified inside std::tuple - MyTypes - 2 | ||||||
| ok {test-number} - sizeof(TestType) > 0 for: 4 > 0 | ok {test-number} - std::is_arithmetic<TestType>::value for: true | ||||||
| # TemplateTest: vectors can be sized and resized - float | # TemplateTest: vectors can be sized and resized - float | ||||||
| ok {test-number} - v.size() == 5 for: 5 == 5 | ok {test-number} - v.size() == 5 for: 5 == 5 | ||||||
| # TemplateTest: vectors can be sized and resized - float | # TemplateTest: vectors can be sized and resized - float | ||||||
| @@ -4187,6 +4187,14 @@ ok {test-number} - !(Catch::replaceInPlace(letters, "x", "z")) for: !false | |||||||
| # replaceInPlace | # replaceInPlace | ||||||
| ok {test-number} - letters == letters for: "abcdefcg" == "abcdefcg" | ok {test-number} - letters == letters for: "abcdefcg" == "abcdefcg" | ||||||
| # replaceInPlace | # replaceInPlace | ||||||
|  | ok {test-number} - Catch::replaceInPlace(letters, "c", "cc") for: true | ||||||
|  | # replaceInPlace | ||||||
|  | ok {test-number} - letters == "abccdefccg" for: "abccdefccg" == "abccdefccg" | ||||||
|  | # replaceInPlace | ||||||
|  | ok {test-number} - Catch::replaceInPlace(s, "--", "-") for: true | ||||||
|  | # replaceInPlace | ||||||
|  | ok {test-number} - s == "--" for: "--" == "--" | ||||||
|  | # replaceInPlace | ||||||
| ok {test-number} - Catch::replaceInPlace(s, "'", "|'") for: true | ok {test-number} - Catch::replaceInPlace(s, "'", "|'") for: true | ||||||
| # replaceInPlace | # replaceInPlace | ||||||
| ok {test-number} - s == "didn|'t" for: "didn|'t" == "didn|'t" | ok {test-number} - s == "didn|'t" for: "didn|'t" == "didn|'t" | ||||||
| @@ -4530,5 +4538,5 @@ ok {test-number} - q3 == 23. for: 23.0 == 23.0 | |||||||
| ok {test-number} - | ok {test-number} - | ||||||
| # xmlentitycheck | # xmlentitycheck | ||||||
| ok {test-number} - | ok {test-number} - | ||||||
| 1..2268 | 1..2272 | ||||||
|  |  | ||||||
|   | |||||||
| @@ -13560,10 +13560,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 0" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 0" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_default_constructible<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         1 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -13571,10 +13571,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 1" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 1" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_default_constructible<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         4 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -13582,10 +13582,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 0" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 0" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_trivially_copyable<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         1 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -13593,10 +13593,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 1" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 1" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_trivially_copyable<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         4 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -13604,10 +13604,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside std::tuple - MyTypes - 0" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside std::tuple - MyTypes - 0" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_arithmetic<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         4 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -13615,10 +13615,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside std::tuple - MyTypes - 1" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside std::tuple - MyTypes - 1" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_arithmetic<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         1 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -13626,10 +13626,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside std::tuple - MyTypes - 2" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside std::tuple - MyTypes - 2" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_arithmetic<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         4 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -20034,6 +20034,50 @@ b1! | |||||||
|       </Expression> |       </Expression> | ||||||
|       <OverallResults successes="2" failures="0" expectedFailures="0" skipped="false"/> |       <OverallResults successes="2" failures="0" expectedFailures="0" skipped="false"/> | ||||||
|     </Section> |     </Section> | ||||||
|  |     <Section name="no replace in already-replaced string" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |       <Section name="lengthening" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |           <Original> | ||||||
|  |             Catch::replaceInPlace(letters, "c", "cc") | ||||||
|  |           </Original> | ||||||
|  |           <Expanded> | ||||||
|  |             true | ||||||
|  |           </Expanded> | ||||||
|  |         </Expression> | ||||||
|  |         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |           <Original> | ||||||
|  |             letters == "abccdefccg" | ||||||
|  |           </Original> | ||||||
|  |           <Expanded> | ||||||
|  |             "abccdefccg" == "abccdefccg" | ||||||
|  |           </Expanded> | ||||||
|  |         </Expression> | ||||||
|  |         <OverallResults successes="2" failures="0" expectedFailures="0" skipped="false"/> | ||||||
|  |       </Section> | ||||||
|  |       <OverallResults successes="2" failures="0" expectedFailures="0" skipped="false"/> | ||||||
|  |     </Section> | ||||||
|  |     <Section name="no replace in already-replaced string" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |       <Section name="shortening" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |           <Original> | ||||||
|  |             Catch::replaceInPlace(s, "--", "-") | ||||||
|  |           </Original> | ||||||
|  |           <Expanded> | ||||||
|  |             true | ||||||
|  |           </Expanded> | ||||||
|  |         </Expression> | ||||||
|  |         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |           <Original> | ||||||
|  |             s == "--" | ||||||
|  |           </Original> | ||||||
|  |           <Expanded> | ||||||
|  |             "--" == "--" | ||||||
|  |           </Expanded> | ||||||
|  |         </Expression> | ||||||
|  |         <OverallResults successes="2" failures="0" expectedFailures="0" skipped="false"/> | ||||||
|  |       </Section> | ||||||
|  |       <OverallResults successes="2" failures="0" expectedFailures="0" skipped="false"/> | ||||||
|  |     </Section> | ||||||
|     <Section name="escape '" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > |     <Section name="escape '" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|       <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > |       <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|         <Original> |         <Original> | ||||||
| @@ -21675,6 +21719,6 @@ b1! | |||||||
|     </Section> |     </Section> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
|   </TestCase> |   </TestCase> | ||||||
|   <OverallResults successes="2075" failures="146" expectedFailures="35" skips="12"/> |   <OverallResults successes="2079" failures="146" expectedFailures="35" skips="12"/> | ||||||
|   <OverallResultsCases successes="312" failures="85" expectedFailures="14" skips="6"/> |   <OverallResultsCases successes="312" failures="85" expectedFailures="14" skips="6"/> | ||||||
| </Catch2TestRun> | </Catch2TestRun> | ||||||
|   | |||||||
| @@ -13560,10 +13560,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 0" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 0" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_default_constructible<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         1 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -13571,10 +13571,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 1" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside non-copyable and non-movable std::tuple - NonCopyableAndNonMovableTypes - 1" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_default_constructible<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         4 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -13582,10 +13582,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 0" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 0" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_trivially_copyable<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         1 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -13593,10 +13593,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 1" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside non-default-constructible std::tuple - MyNonDefaultConstructibleTypes - 1" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_trivially_copyable<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         4 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -13604,10 +13604,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside std::tuple - MyTypes - 0" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside std::tuple - MyTypes - 0" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_arithmetic<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         4 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -13615,10 +13615,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside std::tuple - MyTypes - 1" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside std::tuple - MyTypes - 1" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_arithmetic<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         1 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -13626,10 +13626,10 @@ Message from section two | |||||||
|   <TestCase name="Template test case with test types specified inside std::tuple - MyTypes - 2" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |   <TestCase name="Template test case with test types specified inside std::tuple - MyTypes - 2" tags="[list][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > |     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" > | ||||||
|       <Original> |       <Original> | ||||||
|         sizeof(TestType) > 0 |         std::is_arithmetic<TestType>::value | ||||||
|       </Original> |       </Original> | ||||||
|       <Expanded> |       <Expanded> | ||||||
|         4 > 0 |         true | ||||||
|       </Expanded> |       </Expanded> | ||||||
|     </Expression> |     </Expression> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
| @@ -20033,6 +20033,50 @@ b1! | |||||||
|       </Expression> |       </Expression> | ||||||
|       <OverallResults successes="2" failures="0" expectedFailures="0" skipped="false"/> |       <OverallResults successes="2" failures="0" expectedFailures="0" skipped="false"/> | ||||||
|     </Section> |     </Section> | ||||||
|  |     <Section name="no replace in already-replaced string" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |       <Section name="lengthening" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |           <Original> | ||||||
|  |             Catch::replaceInPlace(letters, "c", "cc") | ||||||
|  |           </Original> | ||||||
|  |           <Expanded> | ||||||
|  |             true | ||||||
|  |           </Expanded> | ||||||
|  |         </Expression> | ||||||
|  |         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |           <Original> | ||||||
|  |             letters == "abccdefccg" | ||||||
|  |           </Original> | ||||||
|  |           <Expanded> | ||||||
|  |             "abccdefccg" == "abccdefccg" | ||||||
|  |           </Expanded> | ||||||
|  |         </Expression> | ||||||
|  |         <OverallResults successes="2" failures="0" expectedFailures="0" skipped="false"/> | ||||||
|  |       </Section> | ||||||
|  |       <OverallResults successes="2" failures="0" expectedFailures="0" skipped="false"/> | ||||||
|  |     </Section> | ||||||
|  |     <Section name="no replace in already-replaced string" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |       <Section name="shortening" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |           <Original> | ||||||
|  |             Catch::replaceInPlace(s, "--", "-") | ||||||
|  |           </Original> | ||||||
|  |           <Expanded> | ||||||
|  |             true | ||||||
|  |           </Expanded> | ||||||
|  |         </Expression> | ||||||
|  |         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|  |           <Original> | ||||||
|  |             s == "--" | ||||||
|  |           </Original> | ||||||
|  |           <Expanded> | ||||||
|  |             "--" == "--" | ||||||
|  |           </Expanded> | ||||||
|  |         </Expression> | ||||||
|  |         <OverallResults successes="2" failures="0" expectedFailures="0" skipped="false"/> | ||||||
|  |       </Section> | ||||||
|  |       <OverallResults successes="2" failures="0" expectedFailures="0" skipped="false"/> | ||||||
|  |     </Section> | ||||||
|     <Section name="escape '" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > |     <Section name="escape '" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|       <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > |       <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/StringManip.tests.cpp" > | ||||||
|         <Original> |         <Original> | ||||||
| @@ -21674,6 +21718,6 @@ b1! | |||||||
|     </Section> |     </Section> | ||||||
|     <OverallResult success="true" skips="0"/> |     <OverallResult success="true" skips="0"/> | ||||||
|   </TestCase> |   </TestCase> | ||||||
|   <OverallResults successes="2075" failures="146" expectedFailures="35" skips="12"/> |   <OverallResults successes="2079" failures="146" expectedFailures="35" skips="12"/> | ||||||
|   <OverallResultsCases successes="312" failures="85" expectedFailures="14" skips="6"/> |   <OverallResultsCases successes="312" failures="85" expectedFailures="14" skips="6"/> | ||||||
| </Catch2TestRun> | </Catch2TestRun> | ||||||
|   | |||||||
| @@ -57,6 +57,17 @@ TEST_CASE("replaceInPlace", "[string-manip]") { | |||||||
|         CHECK_FALSE(Catch::replaceInPlace(letters, "x", "z")); |         CHECK_FALSE(Catch::replaceInPlace(letters, "x", "z")); | ||||||
|         CHECK(letters == letters); |         CHECK(letters == letters); | ||||||
|     } |     } | ||||||
|  |     SECTION("no replace in already-replaced string") { | ||||||
|  |         SECTION("lengthening") { | ||||||
|  |             CHECK(Catch::replaceInPlace(letters, "c", "cc")); | ||||||
|  |             CHECK(letters == "abccdefccg"); | ||||||
|  |         } | ||||||
|  |         SECTION("shortening") { | ||||||
|  |             std::string s = "----"; | ||||||
|  |             CHECK(Catch::replaceInPlace(s, "--", "-")); | ||||||
|  |             CHECK(s == "--"); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|     SECTION("escape '") { |     SECTION("escape '") { | ||||||
|         std::string s = "didn't"; |         std::string s = "didn't"; | ||||||
|         CHECK(Catch::replaceInPlace(s, "'", "|'")); |         CHECK(Catch::replaceInPlace(s, "'", "|'")); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user