1 //  (C) Copyright Gennadiy Rozental 2005.
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: framework.hpp,v $
9 //
10 //  Version     : $Revision: 1.1.1.1 $
11 //
12 //  Description : defines framework singletom object
13 // ***************************************************************************
14 
15 #ifndef BOOST_TEST_FRAMEWORK_HPP_020805GER
16 #define BOOST_TEST_FRAMEWORK_HPP_020805GER
17 
18 // Boost.Test
19 #include <boost/test/detail/global_typedef.hpp>
20 #include <boost/test/detail/fwd_decl.hpp>
21 #include <boost/test/utils/trivial_singleton.hpp>
22 
23 #include <boost/test/detail/suppress_warnings.hpp>
24 
25 //____________________________________________________________________________//
26 
27 namespace boost {
28 
29 namespace unit_test {
30 
31 // ************************************************************************** //
32 // **************                   framework                  ************** //
33 // ************************************************************************** //
34 
35 namespace framework {
36 
37 // initialization
38 void                init( int argc, char* argv[] );
39 
40 // mutation access methods
41 void                register_test_unit( test_case* tc );
42 void                register_test_unit( test_suite* ts );
43 
44 void                register_observer( test_observer& );
45 void                reset_observers();
46 
47 // constant access methods
48 test_suite const&   master_test_suite();
49 test_case const&    current_test_case();
50 #if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x530) )
51 template<typename UnitType>
get(test_unit_id id)52 UnitType const&     get( test_unit_id id )
53 {
54     return static_cast<UnitType const&>( get( id, (test_unit_type)UnitType::type ) );
55 }
56 test_unit const&    get( test_unit_id, test_unit_type );
57 #else
58 test_unit const&    get( test_unit_id, test_unit_type );
59 template<typename UnitType>
get(test_unit_id id)60 UnitType const&     get( test_unit_id id )
61 {
62     return static_cast<UnitType const&>( get( id, (test_unit_type)UnitType::type ) );
63 }
64 #endif
65 
66 // test initiation
67 void                run( test_unit_id = INV_TEST_UNIT_ID, bool continue_test = true );
68 void                run( test_unit const*, bool continue_test = true );
69 
70 // public test events dispatchers
71 void                assertion_result( bool passed );
72 void                exception_caught( execution_exception const& );
73 void                test_unit_aborted();
74 
75 } // namespace framework
76 
77 } // unit_test
78 
79 } // namespace boost
80 
81 //____________________________________________________________________________//
82 
83 #include <boost/test/detail/enable_warnings.hpp>
84 
85 // ***************************************************************************
86 //  Revision History :
87 //
88 //  $Log: framework.hpp,v $
89 //  Revision 1.1.1.1  2006/03/20 20:15:27  ewalkup
90 //  boost libraries
91 //
92 //  Revision 1.3  2005/03/24 04:02:32  rogeeff
93 //  portability fixes
94 //
95 //  Revision 1.2  2005/03/23 21:02:10  rogeeff
96 //  Sunpro CC 5.3 fixes
97 //
98 //  Revision 1.1  2005/02/20 08:27:05  rogeeff
99 //  This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
100 //
101 // ***************************************************************************
102 
103 #endif // BOOST_TEST_FRAMEWORK_HPP_020805GER
104 
105