mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Add a test for the internals
This commit is contained in:
		| @@ -17,6 +17,7 @@ endif(MSVC) #Temporary workaround | ||||
| set(TEST_SOURCES | ||||
|         ${SELF_TEST_DIR}/TestMain.cpp | ||||
|         ${SELF_TEST_DIR}/IntrospectiveTests/CmdLine.tests.cpp | ||||
|         ${SELF_TEST_DIR}/IntrospectiveTests/Details.tests.cpp | ||||
|         ${SELF_TEST_DIR}/IntrospectiveTests/GeneratorsImpl.tests.cpp | ||||
|         ${SELF_TEST_DIR}/IntrospectiveTests/InternalBenchmark.tests.cpp | ||||
|         ${SELF_TEST_DIR}/IntrospectiveTests/PartTracker.tests.cpp | ||||
|   | ||||
| @@ -265,6 +265,10 @@ ToStringGeneral.tests.cpp:<line number>: passed: c == i for: 2 == 2 | ||||
| ToStringGeneral.tests.cpp:<line number>: passed: c == i for: 3 == 3 | ||||
| ToStringGeneral.tests.cpp:<line number>: passed: c == i for: 4 == 4 | ||||
| ToStringGeneral.tests.cpp:<line number>: passed: c == i for: 5 == 5 | ||||
| Details.tests.cpp:<line number>: passed: Catch::throw_logic_error((Catch::ReusableStringStream() << ::Catch::SourceLineInfo( "projects/<exe-name>/IntrospectiveTests/Details.tests.cpp", static_cast<std::size_t>( 9 ) ) << ": Internal Catch2 error: " << "").str()), std::logic_error | ||||
| Details.tests.cpp:<line number>: passed: Catch::throw_domain_error((Catch::ReusableStringStream() << "").str()), std::domain_error | ||||
| Details.tests.cpp:<line number>: passed: Catch::throw_runtime_error((Catch::ReusableStringStream() << "").str()), std::runtime_error | ||||
| Details.tests.cpp:<line number>: passed: [](){do{ if( !(false) ) Catch::throw_domain_error((Catch::ReusableStringStream() << "").str()); } while(false);}(), std::domain_error | ||||
| Tricky.tests.cpp:<line number>: passed: std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}} | ||||
| Tricky.tests.cpp:<line number>: passed: std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}} | ||||
| Tricky.tests.cpp:<line number>: passed: std::vector<int>{1, 2, 3} == std::vector<int>{1, 2, 3} | ||||
|   | ||||
| @@ -1380,6 +1380,6 @@ due to unexpected exception with message: | ||||
|   Why would you throw a std::string? | ||||
|  | ||||
| =============================================================================== | ||||
| test cases:  298 |  224 passed |  70 failed |  4 failed as expected | ||||
| assertions: 1553 | 1401 passed | 131 failed | 21 failed as expected | ||||
| test cases:  299 |  225 passed |  70 failed |  4 failed as expected | ||||
| assertions: 1557 | 1405 passed | 131 failed | 21 failed as expected | ||||
|  | ||||
|   | ||||
| @@ -2128,6 +2128,24 @@ ToStringGeneral.tests.cpp:<line number>: PASSED: | ||||
| with expansion: | ||||
|   5 == 5 | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Check that our error handling macros throw the right exceptions | ||||
| ------------------------------------------------------------------------------- | ||||
| Details.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| Details.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE_THROWS_AS( Catch::throw_logic_error((Catch::ReusableStringStream() << ::Catch::SourceLineInfo( "projects/<exe-name>/IntrospectiveTests/Details.tests.cpp", static_cast<std::size_t>( 9 ) ) << ": Internal Catch2 error: " << "").str()), std::logic_error ) | ||||
|  | ||||
| Details.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE_THROWS_AS( Catch::throw_domain_error((Catch::ReusableStringStream() << "").str()), std::domain_error ) | ||||
|  | ||||
| Details.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE_THROWS_AS( Catch::throw_runtime_error((Catch::ReusableStringStream() << "").str()), std::runtime_error ) | ||||
|  | ||||
| Details.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE_THROWS_AS( [](){do{ if( !(false) ) Catch::throw_domain_error((Catch::ReusableStringStream() << "").str()); } while(false);}(), std::domain_error ) | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Commas in various macros are allowed | ||||
| ------------------------------------------------------------------------------- | ||||
| @@ -12409,6 +12427,6 @@ Misc.tests.cpp:<line number> | ||||
| Misc.tests.cpp:<line number>: PASSED: | ||||
|  | ||||
| =============================================================================== | ||||
| test cases:  298 |  208 passed |  86 failed |  4 failed as expected | ||||
| assertions: 1570 | 1401 passed | 148 failed | 21 failed as expected | ||||
| test cases:  299 |  209 passed |  86 failed |  4 failed as expected | ||||
| assertions: 1574 | 1405 passed | 148 failed | 21 failed as expected | ||||
|  | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <testsuitesloose text artifact | ||||
| > | ||||
|   <testsuite name="<exe-name>" errors="17" failures="132" tests="1571" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||
|   <testsuite name="<exe-name>" errors="17" failures="132" tests="1575" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||
|     <properties> | ||||
|       <property name="filters" value="~[!nonportable]~[!benchmark]~[approvals]"/> | ||||
|       <property name="random-seed" value="1"/> | ||||
| @@ -241,6 +241,7 @@ Exception.tests.cpp:<line number> | ||||
|     <testcase classname="<exe-name>.global" name="Character pretty printing/Specifically escaped" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="Character pretty printing/General chars" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="Character pretty printing/Low ASCII" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="Check that our error handling macros throw the right exceptions" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="Commas in various macros are allowed" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="Comparing function pointers" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="Comparison with explicitly convertible types" time="{duration}"/> | ||||
|   | ||||
| @@ -2438,6 +2438,41 @@ Nor would this | ||||
|       </Section> | ||||
|       <OverallResult success="true"/> | ||||
|     </TestCase> | ||||
|     <TestCase name="Check that our error handling macros throw the right exceptions" tags="[!throws][internals]" filename="projects/<exe-name>/IntrospectiveTests/Details.tests.cpp" > | ||||
|       <Expression success="true" type="REQUIRE_THROWS_AS" filename="projects/<exe-name>/IntrospectiveTests/Details.tests.cpp" > | ||||
|         <Original> | ||||
|           Catch::throw_logic_error((Catch::ReusableStringStream() << ::Catch::SourceLineInfo( "projects/<exe-name>/IntrospectiveTests/Details.tests.cpp", static_cast<std::size_t>( 9 ) ) << ": Internal Catch2 error: " << "").str()), std::logic_error | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           Catch::throw_logic_error((Catch::ReusableStringStream() << ::Catch::SourceLineInfo( "projects/<exe-name>/IntrospectiveTests/Details.tests.cpp", static_cast<std::size_t>( 9 ) ) << ": Internal Catch2 error: " << "").str()), std::logic_error | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <Expression success="true" type="REQUIRE_THROWS_AS" filename="projects/<exe-name>/IntrospectiveTests/Details.tests.cpp" > | ||||
|         <Original> | ||||
|           Catch::throw_domain_error((Catch::ReusableStringStream() << "").str()), std::domain_error | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           Catch::throw_domain_error((Catch::ReusableStringStream() << "").str()), std::domain_error | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <Expression success="true" type="REQUIRE_THROWS_AS" filename="projects/<exe-name>/IntrospectiveTests/Details.tests.cpp" > | ||||
|         <Original> | ||||
|           Catch::throw_runtime_error((Catch::ReusableStringStream() << "").str()), std::runtime_error | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           Catch::throw_runtime_error((Catch::ReusableStringStream() << "").str()), std::runtime_error | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <Expression success="true" type="REQUIRE_THROWS_AS" filename="projects/<exe-name>/IntrospectiveTests/Details.tests.cpp" > | ||||
|         <Original> | ||||
|           [](){do{ if( !(false) ) Catch::throw_domain_error((Catch::ReusableStringStream() << "").str()); } while(false);}(), std::domain_error | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           [](){do{ if( !(false) ) Catch::throw_domain_error((Catch::ReusableStringStream() << "").str()); } while(false);}(), std::domain_error | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <OverallResult success="true"/> | ||||
|     </TestCase> | ||||
|     <TestCase name="Commas in various macros are allowed" filename="projects/<exe-name>/UsageTests/Tricky.tests.cpp" > | ||||
|       <Expression success="true" type="REQUIRE_THROWS" filename="projects/<exe-name>/UsageTests/Tricky.tests.cpp" > | ||||
|         <Original> | ||||
| @@ -14767,7 +14802,7 @@ loose text artifact | ||||
|       </Section> | ||||
|       <OverallResult success="true"/> | ||||
|     </TestCase> | ||||
|     <OverallResults successes="1401" failures="149" expectedFailures="21"/> | ||||
|     <OverallResults successes="1405" failures="149" expectedFailures="21"/> | ||||
|   </Group> | ||||
|   <OverallResults successes="1401" failures="148" expectedFailures="21"/> | ||||
|   <OverallResults successes="1405" failures="148" expectedFailures="21"/> | ||||
| </Catch> | ||||
|   | ||||
							
								
								
									
										23
									
								
								projects/SelfTest/IntrospectiveTests/Details.tests.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								projects/SelfTest/IntrospectiveTests/Details.tests.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* | ||||
|  *  Distributed under the Boost Software License, Version 1.0. (See accompanying | ||||
|  *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||||
|  */ | ||||
|  | ||||
| #include "catch.hpp" | ||||
|  | ||||
| #if defined(_MSC_VER) | ||||
| #pragma warning(push) | ||||
| #pragma warning(disable:4702) // unreachable code in the macro expansions | ||||
| #endif | ||||
|  | ||||
| TEST_CASE("Check that our error handling macros throw the right exceptions", "[!throws][internals]") { | ||||
|     REQUIRE_THROWS_AS(CATCH_INTERNAL_ERROR(""), std::logic_error); | ||||
|     REQUIRE_THROWS_AS(CATCH_ERROR(""), std::domain_error); | ||||
|     REQUIRE_THROWS_AS(CATCH_RUNTIME_ERROR(""), std::runtime_error); | ||||
|     REQUIRE_THROWS_AS([](){CATCH_ENFORCE(false, "");}(), std::domain_error); | ||||
|     REQUIRE_NOTHROW([](){CATCH_ENFORCE(true, "");}()); | ||||
| } | ||||
|  | ||||
| #if defined(_MSC_VER) | ||||
| #pragma warning(pop) // unreachable code in the macro expansions | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user
	 Martin Hořeňovský
					Martin Hořeňovský