1 // (C) Copyright Gennadiy Rozental 2011-2015. 2 // Distributed under the Boost Software License, Version 1.0. 3 // (See accompanying file LICENSE_1_0.txt or copy at 4 // http://www.boost.org/LICENSE_1_0.txt) 5 6 // See http://www.boost.org/libs/test for the library home page. 7 8 //[example_code 9 #define BOOST_TEST_MODULE example 10 #include <boost/test/included/unit_test.hpp> 11 12 struct my_exception 13 { my_exceptionmy_exception14 explicit my_exception( int ec = 0 ) : m_error_code( ec ) 15 {} 16 17 int m_error_code; 18 }; 19 is_critical(my_exception const & ex)20bool is_critical( my_exception const& ex ) { return ex.m_error_code < 0; } 21 some_func(int i)22void some_func( int i ) { if( i>=0 ) throw my_exception( i ); } 23 BOOST_AUTO_TEST_CASE(test_exception_predicate)24BOOST_AUTO_TEST_CASE( test_exception_predicate ) 25 { 26 BOOST_CHECK_EXCEPTION( some_func(0), my_exception, !is_critical ); 27 BOOST_CHECK_EXCEPTION( some_func(1), my_exception, is_critical ); 28 } 29 //] 30