2
0
mirror of https://github.com/boostorg/test.git synced 2026-01-25 06:42:22 +00:00
Files
test/doc/examples/example69.cpp
Raffi Enficiaud 18a1efad86 testing contexts
2015-01-09 15:33:29 +01:00

70 lines
1.3 KiB
C++

// (C) Copyright Raffi Enficiaud 2014.
// 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)
// See http://www.boost.org/libs/test for the library home page.
//[example_code
#define BOOST_TEST_MODULE example69
#include <boost/test/included/unit_test.hpp>
#include <sstream>
void func2()
{
BOOST_TEST_INFO( "[context] func2" );
BOOST_CHECK( false );
}
void func1()
{
BOOST_TEST_INFO( "[context] func1" );
func2();
}
void func3(int i)
{
if(i < 0)
{
BOOST_TEST_CONTEXT( "[context] i negative branch")
{
func2();
return;
}
}
BOOST_TEST(i != 1);
}
BOOST_AUTO_TEST_CASE( test_context_logging )
{
BOOST_TEST_INFO( "context consumed by the next assertion" );
BOOST_CHECK( true );
int a = 1;
int b = 1;
BOOST_TEST_INFO( "checking a != b [" << a << "!=" << b << "]" );
BOOST_TEST( a != b );
BOOST_TEST_INFO( "stacking" );
func1();
// no context, consumed by the test in func2
BOOST_CHECK( false );
BOOST_TEST_INFO( "*** consumed by first assertion (failing or not) ***" );
BOOST_TEST_CONTEXT( "[context] shown every time (sticky)")
{
for(int i = -1; i < 2; i++)
{
BOOST_TEST_CONTEXT( "[context] calling func3( " << i << " )")
{
func3(i);
}
}
}
}
//]