123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280 |
- #ifndef BOOST_TEST_UNIT_TEST_LOG_HPP_071894GER
- #define BOOST_TEST_UNIT_TEST_LOG_HPP_071894GER
- #include <boost/test/tree/observer.hpp>
- #include <boost/test/detail/global_typedef.hpp>
- #include <boost/test/detail/log_level.hpp>
- #include <boost/test/detail/fwd_decl.hpp>
- #include <boost/test/utils/wrap_stringstream.hpp>
- #include <boost/test/utils/lazy_ostream.hpp>
- #include <iosfwd> // for std::ostream&
- #include <boost/test/detail/suppress_warnings.hpp>
- namespace boost {
- namespace unit_test {
- namespace log {
- struct BOOST_TEST_DECL begin {
- begin( const_string fn, std::size_t ln )
- : m_file_name( fn )
- , m_line_num( ln )
- {}
- const_string m_file_name;
- std::size_t m_line_num;
- };
- struct end {};
- }
- namespace ut_detail {
- class BOOST_TEST_DECL entry_value_collector {
- public:
-
- entry_value_collector() : m_last( true ) {}
- entry_value_collector( entry_value_collector const& rhs ) : m_last( true ) { rhs.m_last = false; }
- ~entry_value_collector();
-
- entry_value_collector const& operator<<( lazy_ostream const& ) const;
- entry_value_collector const& operator<<( const_string ) const;
- private:
-
- mutable bool m_last;
- };
- }
- class BOOST_TEST_DECL unit_test_log_t : public test_observer {
- public:
-
- void test_start( counter_t test_cases_amount, test_unit_id ) BOOST_OVERRIDE;
- void test_finish() BOOST_OVERRIDE;
- void test_aborted() BOOST_OVERRIDE;
- void test_unit_start( test_unit const& ) BOOST_OVERRIDE;
- void test_unit_finish( test_unit const&, unsigned long elapsed ) BOOST_OVERRIDE;
- void test_unit_skipped( test_unit const&, const_string ) BOOST_OVERRIDE;
- void test_unit_aborted( test_unit const& ) BOOST_OVERRIDE;
- void test_unit_timed_out( test_unit const& ) BOOST_OVERRIDE;
- void exception_caught( execution_exception const& ex ) BOOST_OVERRIDE;
- int priority() BOOST_OVERRIDE { return 2; }
-
-
-
-
- void set_stream( std::ostream& );
-
-
-
-
- void set_stream( output_format, std::ostream& );
-
-
-
-
- std::ostream* get_stream( output_format ) const;
-
-
-
-
- log_level set_threshold_level( log_level );
-
-
-
-
-
- log_level set_threshold_level( output_format, log_level );
-
-
-
-
-
- void add_format( output_format );
-
-
-
- void set_format( output_format );
-
-
-
-
- unit_test_log_formatter* get_formatter( output_format );
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- void set_formatter( unit_test_log_formatter* );
-
-
-
-
-
-
-
-
-
-
-
-
- void add_formatter( unit_test_log_formatter* the_formatter );
-
- void set_checkpoint( const_string file, std::size_t line_num, const_string msg = const_string() );
-
- unit_test_log_t& operator<<( log::begin const& );
- unit_test_log_t& operator<<( log::end const& );
- unit_test_log_t& operator<<( log_level );
- unit_test_log_t& operator<<( const_string );
- unit_test_log_t& operator<<( lazy_ostream const& );
- ut_detail::entry_value_collector operator()( log_level );
-
- void configure();
- private:
-
- BOOST_TEST_SINGLETON_CONS( unit_test_log_t )
- };
- BOOST_TEST_SINGLETON_INST( unit_test_log )
- #define BOOST_TEST_LOG_ENTRY( ll ) \
- (::boost::unit_test::unit_test_log \
- << ::boost::unit_test::log::begin( BOOST_TEST_L(__FILE__), __LINE__ ))(ll) \
- }
- }
- #define BOOST_TEST_FRAMEWORK_MESSAGE( M ) \
- (::boost::unit_test::unit_test_log \
- << ::boost::unit_test::log::begin( \
- "boost.test framework", \
- 0 )) \
- ( ::boost::unit_test::log_messages ) \
- << BOOST_TEST_LAZY_MSG( M ) \
- #define BOOST_TEST_MESSAGE( M ) \
- BOOST_TEST_LOG_ENTRY( ::boost::unit_test::log_messages ) \
- << BOOST_TEST_LAZY_MSG( M ) \
- #define BOOST_TEST_PASSPOINT() \
- ::boost::unit_test::unit_test_log.set_checkpoint( \
- BOOST_TEST_L(__FILE__), \
- static_cast<std::size_t>(__LINE__) ) \
- #define BOOST_TEST_CHECKPOINT( M ) \
- ::boost::unit_test::unit_test_log.set_checkpoint( \
- BOOST_TEST_L(__FILE__), \
- static_cast<std::size_t>(__LINE__), \
- (::boost::wrap_stringstream().ref() << M).str() ) \
- #include <boost/test/detail/enable_warnings.hpp>
- #endif
|