1 //  (C) Copyright Gennadiy Rozental 2001.
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 //  File        : $RCSfile$
9 //
10 //  Version     : $Revision: 74248 $
11 //
12 //  Description : test tools context interfaces
13 // ***************************************************************************
14 
15 #ifndef BOOST_TEST_TOOLS_CONTEXT_HPP_111712GER
16 #define BOOST_TEST_TOOLS_CONTEXT_HPP_111712GER
17 
18 // Boost.Test
19 #include <boost/test/utils/lazy_ostream.hpp>
20 
21 #include <boost/test/detail/suppress_warnings.hpp>
22 
23 //____________________________________________________________________________//
24 
25 namespace boost {
26 namespace test_tools {
27 namespace tt_detail {
28 
29 // ************************************************************************** //
30 // **************                 context_frame                ************** //
31 // ************************************************************************** //
32 
33 struct BOOST_TEST_DECL context_frame {
34     explicit    context_frame( ::boost::unit_test::lazy_ostream const& context_descr );
35     ~context_frame();
36 
37     operator    bool();
38 
39 private:
40     // Data members
41     int         m_frame_id;
42 };
43 
44 //____________________________________________________________________________//
45 
46 #define BOOST_TEST_INFO( context_descr )                                                        \
47     ::boost::unit_test::framework::add_context( BOOST_TEST_LAZY_MSG( context_descr ) , false )  \
48 /**/
49 
50 //____________________________________________________________________________//
51 
52 #define BOOST_TEST_CONTEXT( context_descr )                                                     \
53     if( ::boost::test_tools::tt_detail::context_frame BOOST_JOIN( context_frame_, __LINE__ ) =  \
54         ::boost::test_tools::tt_detail::context_frame( BOOST_TEST_LAZY_MSG( context_descr ) ) ) \
55 /**/
56 
57 //____________________________________________________________________________//
58 
59 } // namespace tt_detail
60 } // namespace test_tools
61 } // namespace boost
62 
63 #include <boost/test/detail/enable_warnings.hpp>
64 
65 #endif // BOOST_TEST_TOOLS_CONTEXT_HPP_111712GER
66