mirror of
https://github.com/catchorg/Catch2.git
synced 2024-12-23 11:43:29 +01:00
54 lines
1.6 KiB
C++
54 lines
1.6 KiB
C++
|
/*
|
||
|
* main.cpp
|
||
|
* Catch - Test
|
||
|
*
|
||
|
* Created by Phil on 22/10/2010.
|
||
|
* Copyright 2010 Two Blue Cubes Ltd
|
||
|
*
|
||
|
* 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"
|
||
|
#include "catch_runner.hpp"
|
||
|
|
||
|
// This code runs the meta tests and verifies that the failing ones failed and the successful ones succeeded
|
||
|
int main (int argc, char * const argv[])
|
||
|
{
|
||
|
using namespace Catch;
|
||
|
|
||
|
ReporterConfig reporterConfig( ReporterConfig::Include::SuccessfulResults );
|
||
|
BasicReporter reporter (reporterConfig );
|
||
|
Runner runner;
|
||
|
runner.setReporter( &reporter );
|
||
|
|
||
|
std::ostringstream ossSucceeding;
|
||
|
reporterConfig.setStreamBuf( ossSucceeding.rdbuf() );
|
||
|
runner.runMatching( "succeeding/*" );
|
||
|
std::string succeedingResults = ossSucceeding.str();
|
||
|
|
||
|
std::ostringstream ossFailing;
|
||
|
reporterConfig.setStreamBuf( ossFailing.rdbuf() );
|
||
|
runner.runMatching( "failing/*" );
|
||
|
std::string failingResults = ossFailing.str();
|
||
|
|
||
|
int result = 0;
|
||
|
if( succeedingResults.find( "failed" ) != std::string::npos )
|
||
|
{
|
||
|
std::cerr << "Some tests that should have succeeded failed:\n\n" << succeedingResults;
|
||
|
result = 1;
|
||
|
}
|
||
|
if( failingResults.find( "succeeded" ) != std::string::npos )
|
||
|
{
|
||
|
std::cerr << "Some tests that should have failed succeeded:\n\n" << failingResults;
|
||
|
result = 1;
|
||
|
}
|
||
|
|
||
|
if( result == 0 )
|
||
|
{
|
||
|
std::cout << "All tests completed successfully" << std::endl;
|
||
|
}
|
||
|
return result;
|
||
|
}
|