mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-04 09:01:50 +01:00 
			
		
		
		
	
		
			
	
	
		
			32 lines
		
	
	
		
			803 B
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			32 lines
		
	
	
		
			803 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								// X02-DisabledMacros.cpp
							 | 
						||
| 
								 | 
							
								// Test that CATCH_CONFIG_DISABLE turns off TEST_CASE autoregistration
							 | 
						||
| 
								 | 
							
								// and expressions in assertion macros are not run.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define CATCH_CONFIG_MAIN
							 | 
						||
| 
								 | 
							
								#include <catch2/catch.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// CATCH_CONFIG_DISABLE also prevents reporter registration.
							 | 
						||
| 
								 | 
							
								// We need to manually register at least one reporter for our tests
							 | 
						||
| 
								 | 
							
								static Catch::ReporterRegistrar<Catch::ConsoleReporter> temporary( "console" );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <iostream>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								struct foo {
							 | 
						||
| 
								 | 
							
								    foo(){
							 | 
						||
| 
								 | 
							
								        REQUIRE_NOTHROW( print() );
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    void print() const {
							 | 
						||
| 
								 | 
							
								        std::cout << "This should not happen\n";
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Construct foo, but `foo::print` should not be run
							 | 
						||
| 
								 | 
							
								foo f;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// This test should not be run, because it won't be registered
							 | 
						||
| 
								 | 
							
								TEST_CASE( "Disabled Macros" ) {
							 | 
						||
| 
								 | 
							
								    std::cout << "This should not happen\n";
							 | 
						||
| 
								 | 
							
								    FAIL();
							 | 
						||
| 
								 | 
							
								}
							 |