1 //  (C) Copyright Gennadiy Rozental 2001-2008.
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: 49312 $
11 //
12 //  Description : defines class unit_test_result that is responsible for
13 //  gathering test results and presenting this information to end-user
14 // ***************************************************************************
15 
16 #ifndef BOOST_TEST_RESULTS_REPORTER_HPP_021205GER
17 #define BOOST_TEST_RESULTS_REPORTER_HPP_021205GER
18 
19 // Boost.Test
20 #include <boost/test/detail/global_typedef.hpp>
21 #include <boost/test/detail/fwd_decl.hpp>
22 
23 // STL
24 #include <iosfwd>   // for std::ostream&
25 
26 #include <boost/test/detail/suppress_warnings.hpp>
27 
28 //____________________________________________________________________________//
29 
30 namespace boost {
31 
32 namespace unit_test {
33 
34 namespace results_reporter {
35 
36 // ************************************************************************** //
37 // **************              formatter interface             ************** //
38 // ************************************************************************** //
39 
40 class BOOST_TEST_DECL format {
41 public:
42     // Destructor
~format()43     virtual ~format() {}
44 
45     virtual void    results_report_start( std::ostream& ostr ) = 0;
46     virtual void    results_report_finish( std::ostream& ostr ) = 0;
47 
48     virtual void    test_unit_report_start( test_unit const&, std::ostream& ostr ) = 0;
49     virtual void    test_unit_report_finish( test_unit const&, std::ostream& ostr ) = 0;
50 
51     virtual void    do_confirmation_report( test_unit const&, std::ostream& ostr ) = 0;
52 };
53 
54 // ************************************************************************** //
55 // **************              report configuration            ************** //
56 // ************************************************************************** //
57 
58 BOOST_TEST_DECL void    set_level( report_level );
59 BOOST_TEST_DECL void    set_stream( std::ostream& );
60 BOOST_TEST_DECL void    set_format( output_format );
61 BOOST_TEST_DECL void    set_format( results_reporter::format* );
62 
63 BOOST_TEST_DECL std::ostream& get_stream();
64 
65 // ************************************************************************** //
66 // **************               report initiation              ************** //
67 // ************************************************************************** //
68 
69 BOOST_TEST_DECL void    make_report( report_level l = INV_REPORT_LEVEL, test_unit_id = INV_TEST_UNIT_ID );
confirmation_report(test_unit_id id=INV_TEST_UNIT_ID)70 inline void             confirmation_report( test_unit_id id = INV_TEST_UNIT_ID )
71 { make_report( CONFIRMATION_REPORT, id ); }
short_report(test_unit_id id=INV_TEST_UNIT_ID)72 inline void             short_report( test_unit_id id = INV_TEST_UNIT_ID )
73 { make_report( SHORT_REPORT, id ); }
detailed_report(test_unit_id id=INV_TEST_UNIT_ID)74 inline void             detailed_report( test_unit_id id = INV_TEST_UNIT_ID )
75 { make_report( DETAILED_REPORT, id ); }
76 
77 } // namespace results_reporter
78 
79 } // namespace unit_test
80 
81 } // namespace boost
82 
83 //____________________________________________________________________________//
84 
85 #include <boost/test/detail/enable_warnings.hpp>
86 
87 #endif // BOOST_TEST_RESULTS_REPORTER_HPP_021205GER
88 
89