mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Introduce support for DJGPP cross compiler
DJGPP cross compiler is targeting DOS which does not support POSIX signals. Probably for the same reason (targeting DOS) this compiler does not support wide characters.
This commit is contained in:
		 Tomas Zeman
					Tomas Zeman
				
			
				
					committed by
					
						 Martin Hořeňovský
						Martin Hořeňovský
					
				
			
			
				
	
			
			
			 Martin Hořeňovský
						Martin Hořeňovský
					
				
			
						parent
						
							352853ed7e
						
					
				
				
					commit
					95c849f613
				
			| @@ -236,9 +236,9 @@ Matchers.tests.cpp:<line number>: passed: 0., !WithinAbs(1., 0.99) for: 0.0 not | ||||
| Matchers.tests.cpp:<line number>: passed: 0., !WithinAbs(1., 0.99) for: 0.0 not is within 0.99 of 1.0 | ||||
| Matchers.tests.cpp:<line number>: passed: NAN, !WithinAbs(NAN, 0) for: nanf not is within 0.0 of nan | ||||
| Matchers.tests.cpp:<line number>: passed: 1., WithinULP(1., 0) for: 1.0 is within 0 ULPs of 1.0 | ||||
| Matchers.tests.cpp:<line number>: passed: std::nextafter(1., 2.), WithinULP(1., 1) for: 1.0 is within 1 ULPs of 1.0 | ||||
| Matchers.tests.cpp:<line number>: passed: std::nextafter(1., 0.), WithinULP(1., 1) for: 1.0 is within 1 ULPs of 1.0 | ||||
| Matchers.tests.cpp:<line number>: passed: std::nextafter(1., 2.), !WithinULP(1., 0) for: 1.0 not is within 0 ULPs of 1.0 | ||||
| Matchers.tests.cpp:<line number>: passed: nextafter(1., 2.), WithinULP(1., 1) for: 1.0 is within 1 ULPs of 1.0 | ||||
| Matchers.tests.cpp:<line number>: passed: nextafter(1., 0.), WithinULP(1., 1) for: 1.0 is within 1 ULPs of 1.0 | ||||
| Matchers.tests.cpp:<line number>: passed: nextafter(1., 2.), !WithinULP(1., 0) for: 1.0 not is within 0 ULPs of 1.0 | ||||
| Matchers.tests.cpp:<line number>: passed: 1., WithinULP(1., 0) for: 1.0 is within 0 ULPs of 1.0 | ||||
| Matchers.tests.cpp:<line number>: passed: -0., WithinULP(0., 0) for: -0.0 is within 0 ULPs of 0.0 | ||||
| Matchers.tests.cpp:<line number>: passed: NAN, !WithinULP(NAN, 123) for: nanf not is within 123 ULPs of nanf | ||||
| @@ -256,9 +256,9 @@ Matchers.tests.cpp:<line number>: passed: 0.f, !WithinAbs(1.f, 0.99f) for: 0.0f | ||||
| Matchers.tests.cpp:<line number>: passed: 0.f, WithinAbs(-0.f, 0) for: 0.0f is within 0.0 of -0.0 | ||||
| Matchers.tests.cpp:<line number>: passed: NAN, !WithinAbs(NAN, 0) for: nanf not is within 0.0 of nan | ||||
| Matchers.tests.cpp:<line number>: passed: 1.f, WithinULP(1.f, 0) for: 1.0f is within 0 ULPs of 1.0f | ||||
| Matchers.tests.cpp:<line number>: passed: std::nextafter(1.f, 2.f), WithinULP(1.f, 1) for: 1.0f is within 1 ULPs of 1.0f | ||||
| Matchers.tests.cpp:<line number>: passed: std::nextafter(1.f, 0.f), WithinULP(1.f, 1) for: 1.0f is within 1 ULPs of 1.0f | ||||
| Matchers.tests.cpp:<line number>: passed: std::nextafter(1.f, 2.f), !WithinULP(1.f, 0) for: 1.0f not is within 0 ULPs of 1.0f | ||||
| Matchers.tests.cpp:<line number>: passed: nextafter(1.f, 2.f), WithinULP(1.f, 1) for: 1.0f is within 1 ULPs of 1.0f | ||||
| Matchers.tests.cpp:<line number>: passed: nextafter(1.f, 0.f), WithinULP(1.f, 1) for: 1.0f is within 1 ULPs of 1.0f | ||||
| Matchers.tests.cpp:<line number>: passed: nextafter(1.f, 2.f), !WithinULP(1.f, 0) for: 1.0f not is within 0 ULPs of 1.0f | ||||
| Matchers.tests.cpp:<line number>: passed: 1.f, WithinULP(1.f, 0) for: 1.0f is within 0 ULPs of 1.0f | ||||
| Matchers.tests.cpp:<line number>: passed: -0.f, WithinULP(0.f, 0) for: -0.0f is within 0 ULPs of 0.0f | ||||
| Matchers.tests.cpp:<line number>: passed: NAN, !WithinULP(NAN, 123) for: nanf not is within 123 ULPs of nanf | ||||
|   | ||||
| @@ -1873,19 +1873,19 @@ with expansion: | ||||
|  | ||||
| Matchers.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE_THAT( std::nextafter(1., 2.), WithinULP(1., 1) ) | ||||
|   REQUIRE_THAT( nextafter(1., 2.), WithinULP(1., 1) ) | ||||
| with expansion: | ||||
|   1.0 is within 1 ULPs of 1.0 | ||||
|  | ||||
| Matchers.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE_THAT( std::nextafter(1., 0.), WithinULP(1., 1) ) | ||||
|   REQUIRE_THAT( nextafter(1., 0.), WithinULP(1., 1) ) | ||||
| with expansion: | ||||
|   1.0 is within 1 ULPs of 1.0 | ||||
|  | ||||
| Matchers.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE_THAT( std::nextafter(1., 2.), !WithinULP(1., 0) ) | ||||
|   REQUIRE_THAT( nextafter(1., 2.), !WithinULP(1., 0) ) | ||||
| with expansion: | ||||
|   1.0 not is within 0 ULPs of 1.0 | ||||
|  | ||||
| @@ -2013,19 +2013,19 @@ with expansion: | ||||
|  | ||||
| Matchers.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE_THAT( std::nextafter(1.f, 2.f), WithinULP(1.f, 1) ) | ||||
|   REQUIRE_THAT( nextafter(1.f, 2.f), WithinULP(1.f, 1) ) | ||||
| with expansion: | ||||
|   1.0f is within 1 ULPs of 1.0f | ||||
|  | ||||
| Matchers.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE_THAT( std::nextafter(1.f, 0.f), WithinULP(1.f, 1) ) | ||||
|   REQUIRE_THAT( nextafter(1.f, 0.f), WithinULP(1.f, 1) ) | ||||
| with expansion: | ||||
|   1.0f is within 1 ULPs of 1.0f | ||||
|  | ||||
| Matchers.tests.cpp:<line number>: | ||||
| PASSED: | ||||
|   REQUIRE_THAT( std::nextafter(1.f, 2.f), !WithinULP(1.f, 0) ) | ||||
|   REQUIRE_THAT( nextafter(1.f, 2.f), !WithinULP(1.f, 0) ) | ||||
| with expansion: | ||||
|   1.0f not is within 0 ULPs of 1.0f | ||||
|  | ||||
|   | ||||
| @@ -2121,7 +2121,7 @@ | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE_THAT" filename="projects/<exe-name>/UsageTests/Matchers.tests.cpp" > | ||||
|           <Original> | ||||
|             std::nextafter(1., 2.), WithinULP(1., 1) | ||||
|             nextafter(1., 2.), WithinULP(1., 1) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             1.0 is within 1 ULPs of 1.0 | ||||
| @@ -2129,7 +2129,7 @@ | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE_THAT" filename="projects/<exe-name>/UsageTests/Matchers.tests.cpp" > | ||||
|           <Original> | ||||
|             std::nextafter(1., 0.), WithinULP(1., 1) | ||||
|             nextafter(1., 0.), WithinULP(1., 1) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             1.0 is within 1 ULPs of 1.0 | ||||
| @@ -2137,7 +2137,7 @@ | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE_THAT" filename="projects/<exe-name>/UsageTests/Matchers.tests.cpp" > | ||||
|           <Original> | ||||
|             std::nextafter(1., 2.), !WithinULP(1., 0) | ||||
|             nextafter(1., 2.), !WithinULP(1., 0) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             1.0 not is within 0 ULPs of 1.0 | ||||
| @@ -2296,7 +2296,7 @@ | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE_THAT" filename="projects/<exe-name>/UsageTests/Matchers.tests.cpp" > | ||||
|           <Original> | ||||
|             std::nextafter(1.f, 2.f), WithinULP(1.f, 1) | ||||
|             nextafter(1.f, 2.f), WithinULP(1.f, 1) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             1.0f is within 1 ULPs of 1.0f | ||||
| @@ -2304,7 +2304,7 @@ | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE_THAT" filename="projects/<exe-name>/UsageTests/Matchers.tests.cpp" > | ||||
|           <Original> | ||||
|             std::nextafter(1.f, 0.f), WithinULP(1.f, 1) | ||||
|             nextafter(1.f, 0.f), WithinULP(1.f, 1) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             1.0f is within 1 ULPs of 1.0f | ||||
| @@ -2312,7 +2312,7 @@ | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE_THAT" filename="projects/<exe-name>/UsageTests/Matchers.tests.cpp" > | ||||
|           <Original> | ||||
|             std::nextafter(1.f, 2.f), !WithinULP(1.f, 0) | ||||
|             nextafter(1.f, 2.f), !WithinULP(1.f, 0) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             1.0f not is within 0 ULPs of 1.0f | ||||
|   | ||||
| @@ -77,6 +77,20 @@ namespace { namespace MatchersTests { | ||||
|  | ||||
|     using namespace Catch::Matchers; | ||||
|  | ||||
| #ifdef __DJGPP__ | ||||
|     float nextafter(float from, float to) | ||||
|     { | ||||
|         return ::nextafterf(from, to); | ||||
|     } | ||||
|  | ||||
|     double nextafter(double from, double to) | ||||
|     { | ||||
|         return ::nextafter(from, to); | ||||
|     } | ||||
| #else | ||||
|     using std::nextafter; | ||||
| #endif | ||||
|  | ||||
|     TEST_CASE("String matchers", "[matchers]") { | ||||
|         REQUIRE_THAT(testStringForMatching(), Contains("string")); | ||||
|         REQUIRE_THAT(testStringForMatching(), Contains("string", Catch::CaseSensitive::No)); | ||||
| @@ -130,12 +144,16 @@ namespace { namespace MatchersTests { | ||||
|              (defined(_GLIBCXX_RELEASE) && \ | ||||
|              _GLIBCXX_RELEASE > 4)))) | ||||
|  | ||||
| // DJGPP meets the above condition but <regex> does not work properly anyway | ||||
| #ifndef __DJGPP__ | ||||
|             REQUIRE_THAT(testStringForMatching(), Matches("this string contains 'abc' as a substring")); | ||||
|             REQUIRE_THAT(testStringForMatching(), | ||||
|                          Matches("this string CONTAINS 'abc' as a substring", Catch::CaseSensitive::No)); | ||||
|             REQUIRE_THAT(testStringForMatching(), Matches("^this string contains 'abc' as a substring$")); | ||||
|             REQUIRE_THAT(testStringForMatching(), Matches("^.* 'abc' .*$")); | ||||
|             REQUIRE_THAT(testStringForMatching(), Matches("^.* 'ABC' .*$", Catch::CaseSensitive::No)); | ||||
| #endif | ||||
|  | ||||
| #endif | ||||
|  | ||||
|             REQUIRE_THAT(testStringForMatching2(), !Matches("this string contains 'abc' as a substring")); | ||||
| @@ -307,9 +325,9 @@ namespace { namespace MatchersTests { | ||||
|             SECTION("ULPs") { | ||||
|                 REQUIRE_THAT(1.f, WithinULP(1.f, 0)); | ||||
|  | ||||
|                 REQUIRE_THAT(std::nextafter(1.f, 2.f), WithinULP(1.f, 1)); | ||||
|                 REQUIRE_THAT(std::nextafter(1.f, 0.f), WithinULP(1.f, 1)); | ||||
|                 REQUIRE_THAT(std::nextafter(1.f, 2.f), !WithinULP(1.f, 0)); | ||||
|                 REQUIRE_THAT(nextafter(1.f, 2.f), WithinULP(1.f, 1)); | ||||
|                 REQUIRE_THAT(nextafter(1.f, 0.f), WithinULP(1.f, 1)); | ||||
|                 REQUIRE_THAT(nextafter(1.f, 2.f), !WithinULP(1.f, 0)); | ||||
|  | ||||
|                 REQUIRE_THAT(1.f, WithinULP(1.f, 0)); | ||||
|                 REQUIRE_THAT(-0.f, WithinULP(0.f, 0)); | ||||
| @@ -344,9 +362,9 @@ namespace { namespace MatchersTests { | ||||
|             SECTION("ULPs") { | ||||
|                 REQUIRE_THAT(1., WithinULP(1., 0)); | ||||
|  | ||||
|                 REQUIRE_THAT(std::nextafter(1., 2.), WithinULP(1., 1)); | ||||
|                 REQUIRE_THAT(std::nextafter(1., 0.), WithinULP(1., 1)); | ||||
|                 REQUIRE_THAT(std::nextafter(1., 2.), !WithinULP(1., 0)); | ||||
|                 REQUIRE_THAT(nextafter(1., 2.), WithinULP(1., 1)); | ||||
|                 REQUIRE_THAT(nextafter(1., 0.), WithinULP(1., 1)); | ||||
|                 REQUIRE_THAT(nextafter(1., 2.), !WithinULP(1., 0)); | ||||
|  | ||||
|                 REQUIRE_THAT(1., WithinULP(1., 0)); | ||||
|                 REQUIRE_THAT(-0., WithinULP(0., 0)); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user