mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 04:07:10 +01:00 
			
		
		
		
	Add test for handling of reporter's assertion preferences
This commit is contained in:
		| @@ -300,6 +300,32 @@ set_tests_properties( | |||||||
|     FAIL_REGULAR_EXPRESSION "X25 - ERROR" |     FAIL_REGULAR_EXPRESSION "X25 - ERROR" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | add_executable(ReporterPreferencesForPassingAssertionsIsRespected ${TESTS_DIR}/X26-ReporterPreferencesForPassingAssertionsIsRespected.cpp) | ||||||
|  | target_link_libraries(ReporterPreferencesForPassingAssertionsIsRespected PRIVATE Catch2::Catch2WithMain) | ||||||
|  | add_test( | ||||||
|  |   NAME Reporters::PreferencesForPassingAssertionsIsRespected | ||||||
|  |   COMMAND ReporterPreferencesForPassingAssertionsIsRespected | ||||||
|  |     --reporter test-reporter | ||||||
|  | ) | ||||||
|  | set_tests_properties( | ||||||
|  |     Reporters::PreferencesForPassingAssertionsIsRespected | ||||||
|  |   PROPERTIES | ||||||
|  |     PASS_REGULAR_EXPRESSION "X26 - TestReporter constructed" | ||||||
|  |     FAIL_REGULAR_EXPRESSION "X26 - assertionEnded" | ||||||
|  | ) | ||||||
|  | add_test( | ||||||
|  |   NAME MultiReporter::PreferencesForPassingAssertionsIsRespected | ||||||
|  |   COMMAND ReporterPreferencesForPassingAssertionsIsRespected | ||||||
|  |     --reporter test-reporter | ||||||
|  |     --reporter console::${_NullFile} | ||||||
|  | ) | ||||||
|  | set_tests_properties( | ||||||
|  |     MultiReporter::PreferencesForPassingAssertionsIsRespected | ||||||
|  |   PROPERTIES | ||||||
|  |     PASS_REGULAR_EXPRESSION "X26 - TestReporter constructed" | ||||||
|  |     FAIL_REGULAR_EXPRESSION "X26 - assertionEnded" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| add_executable(DuplicatedTestCases-SameNameAndTags ${TESTS_DIR}/X31-DuplicatedTestCases.cpp) | add_executable(DuplicatedTestCases-SameNameAndTags ${TESTS_DIR}/X31-DuplicatedTestCases.cpp) | ||||||
| target_link_libraries(DuplicatedTestCases-SameNameAndTags PRIVATE Catch2::Catch2WithMain) | target_link_libraries(DuplicatedTestCases-SameNameAndTags PRIVATE Catch2::Catch2WithMain) | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ namespace { | |||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		void | 		void | ||||||
| 			testCaseEnded(Catch::TestCaseStats const& testCaseStats) override { |         testCaseEnded( Catch::TestCaseStats const& testCaseStats ) override { | ||||||
|             if ( testCaseStats.stdOut.empty() ) { |             if ( testCaseStats.stdOut.empty() ) { | ||||||
|                 std::cerr << "X25 - ERROR: empty stdout\n"; |                 std::cerr << "X25 - ERROR: empty stdout\n"; | ||||||
|             } |             } | ||||||
|   | |||||||
| @@ -0,0 +1,51 @@ | |||||||
|  |  | ||||||
|  | //              Copyright Catch2 Authors | ||||||
|  | // Distributed under the Boost Software License, Version 1.0. | ||||||
|  | //   (See accompanying file LICENSE_1_0.txt or copy at | ||||||
|  | //        https://www.boost.org/LICENSE_1_0.txt) | ||||||
|  |  | ||||||
|  | // SPDX-License-Identifier: BSL-1.0 | ||||||
|  |  | ||||||
|  | /**\file | ||||||
|  |  * Test that reporter is not passed passing assertions when it | ||||||
|  |  * doesn't ask for it. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include <catch2/catch_test_macros.hpp> | ||||||
|  | #include <catch2/reporters/catch_reporter_streaming_base.hpp> | ||||||
|  | #include <catch2/reporters/catch_reporter_registrars.hpp> | ||||||
|  |  | ||||||
|  | #include <iostream> | ||||||
|  |  | ||||||
|  | namespace { | ||||||
|  |  | ||||||
|  |   class TestReporter : public Catch::StreamingReporterBase { | ||||||
|  |   public: | ||||||
|  |       TestReporter(Catch::ReporterConfig const& _config): | ||||||
|  |           StreamingReporterBase(_config) { | ||||||
|  |           m_preferences.shouldReportAllAssertions = false; | ||||||
|  |           std::cout << "X26 - TestReporter constructed\n"; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       static std::string getDescription() { | ||||||
|  |           return "X26 - test reporter that opts out of passing assertions"; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       void | ||||||
|  |       assertionEnded( Catch::AssertionStats const& ) override { | ||||||
|  |           std::cerr << "X26 - assertionEnded\n"; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       ~TestReporter() override; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   TestReporter::~TestReporter() = default; | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
|  | CATCH_REGISTER_REPORTER("test-reporter", TestReporter) | ||||||
|  |  | ||||||
|  | TEST_CASE( "Test with only passing assertions" ) { | ||||||
|  |     REQUIRE( 1 == 1 ); | ||||||
|  |     REQUIRE( 2 == 2 ); | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 Martin Hořeňovský
					Martin Hořeňovský