Chris@16: // (C) Copyright Gennadiy Rozental 2005-2008. Chris@16: // Distributed under the Boost Software License, Version 1.0. Chris@16: // (See accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: // See http://www.boost.org/libs/test for the library home page. Chris@16: // Chris@16: // File : $RCSfile$ Chris@16: // Chris@16: // Version : $Revision: 49312 $ Chris@16: // Chris@16: // Description : Facilities to perform interaction based testng of logged expectations Chris@16: // *************************************************************************** Chris@16: Chris@16: #ifndef BOOST_TEST_LOGGED_EXPECTATIONS_HPP_120905GER Chris@16: #define BOOST_TEST_LOGGED_EXPECTATIONS_HPP_120905GER Chris@16: Chris@16: // Boost.Test Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: #include Chris@16: Chris@16: //____________________________________________________________________________// Chris@16: Chris@16: // ************************************************************************** // Chris@16: // ************** BOOST_TEST_LOGGED_EXPECTATIONS ************** // Chris@16: // ************************************************************************** // Chris@16: Chris@16: #define BOOST_TEST_LOGGED_EXPECTATIONS( test_name ) \ Chris@16: struct test_name : public BOOST_AUTO_TEST_CASE_FIXTURE \ Chris@16: { void test_method(); }; \ Chris@16: \ Chris@16: static void BOOST_AUTO_TC_INVOKER( test_name )() \ Chris@16: { \ Chris@16: test_name t; \ Chris@16: ::boost::itest::logged_expectations( \ Chris@16: boost::bind( &test_name::test_method, t ), \ Chris@16: BOOST_STRINGIZE(test_name) ".elog", \ Chris@16: !::boost::unit_test::runtime_config::save_pattern() ); \ Chris@16: } \ Chris@16: \ Chris@16: struct BOOST_AUTO_TC_UNIQUE_ID( test_name ) {}; \ Chris@16: \ Chris@16: BOOST_AUTO_TU_REGISTRAR( test_name )( \ Chris@16: boost::unit_test::make_test_case( \ Chris@16: &BOOST_AUTO_TC_INVOKER( test_name ), #test_name ), \ Chris@16: boost::unit_test::ut_detail::auto_tc_exp_fail< \ Chris@16: BOOST_AUTO_TC_UNIQUE_ID( test_name )>::instance()->value() ); \ Chris@16: \ Chris@16: void test_name::test_method() \ Chris@16: /**/ Chris@16: Chris@16: namespace boost { Chris@16: Chris@16: namespace itest { Chris@16: Chris@16: // ************************************************************************** // Chris@16: // ************** logged expectations test ************** // Chris@16: // ************************************************************************** // Chris@16: Chris@16: void BOOST_TEST_DECL Chris@16: logged_expectations( unit_test::callback0<> const& F, Chris@16: unit_test::const_string log_file_name, Chris@16: bool test_or_log = true ); Chris@16: Chris@16: } // namespace itest Chris@16: Chris@16: } // namespace boost Chris@16: Chris@16: #include Chris@16: Chris@16: #endif // BOOST_TEST_LOGGED_EXPECTATIONS_HPP_120905GER