catch2/projects/SelfTest/TestMain.cpp

73 lines
2.2 KiB
C++
Raw Normal View History

2010-11-10 00:24:00 +01:00
/*
* 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)
*
*/
#define CATCH_CONFIG_MAIN
#include "catch.hpp"
#include "catch_self_test.hpp"
2011-04-01 09:15:58 +02:00
TEST_CASE( "selftest/main", "Runs all Catch self tests and checks their results" )
2010-11-10 00:24:00 +01:00
{
using namespace Catch;
///////////////////////////////////////////////////////////////////////////
SECTION( "selftest/expected result",
"Tests do what they claim" )
{
SECTION( "selftest/expected result/failing tests",
"Tests in the 'failing' branch fail" )
{
MetaTestRunner::runMatching( "./failing/*", MetaTestRunner::Expected::ToFail );
}
SECTION( "selftest/expected result/succeeding tests",
"Tests in the 'succeeding' branch succeed" )
{
MetaTestRunner::runMatching( "./succeeding/*", MetaTestRunner::Expected::ToSucceed );
}
}
///////////////////////////////////////////////////////////////////////////
SECTION( "selftest/test counts",
"Number of test cases that run is fixed" )
{
EmbeddedRunner runner;
SECTION( "selftest/test counts/succeeding tests",
"Number of 'succeeding' tests is fixed" )
{
runner.runMatching( "./succeeding/*" );
2011-09-19 19:17:51 +02:00
CHECK( runner.getSuccessCount() == 259 );
CHECK( runner.getFailureCount() == 0 );
}
SECTION( "selftest/test counts/failing tests",
"Number of 'failing' tests is fixed" )
{
runner.runMatching( "./failing/*" );
CHECK( runner.getSuccessCount() == 0 );
2011-09-19 19:17:51 +02:00
CHECK( runner.getFailureCount() == 62 );
}
}
2010-11-10 00:24:00 +01:00
}
TEST_CASE( "meta/Misc/Sections", "looped tests" )
{
Catch::EmbeddedRunner runner;
2011-02-21 19:50:35 +01:00
runner.runMatching( "./mixed/Misc/Sections/nested2" );
CHECK( runner.getSuccessCount() == 2 );
CHECK( runner.getFailureCount() == 1 );
}