123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- // (C) Copyright Gennadiy Rozental 2005-2008.
- // Distributed under the Boost Software License, Version 1.0.
- // (See accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt)
- // See http://www.boost.org/libs/test for the library home page.
- //
- // File : $RCSfile$
- //
- // Version : $Revision: 57992 $
- //
- // Description : implements simple text based progress monitor
- // ***************************************************************************
- #ifndef BOOST_TEST_PROGRESS_MONITOR_IPP_020105GER
- #define BOOST_TEST_PROGRESS_MONITOR_IPP_020105GER
- // Boost.Test
- #include <boost/test/progress_monitor.hpp>
- #include <boost/test/unit_test_suite_impl.hpp>
- #include <boost/test/detail/unit_test_parameters.hpp>
- // Boost
- #include <boost/progress.hpp>
- #include <boost/scoped_ptr.hpp>
- #include <boost/test/detail/suppress_warnings.hpp>
- //____________________________________________________________________________//
- namespace boost {
- namespace unit_test {
- // ************************************************************************** //
- // ************** progress_monitor ************** //
- // ************************************************************************** //
- namespace {
- struct progress_monitor_impl {
- // Constructor
- progress_monitor_impl()
- : m_stream( runtime_config::log_sink() )
- {}
- std::ostream* m_stream;
- scoped_ptr<progress_display> m_progress_display;
- };
- progress_monitor_impl& s_pm_impl() { static progress_monitor_impl the_inst; return the_inst; }
- } // local namespace
- //____________________________________________________________________________//
- void
- progress_monitor_t::test_start( counter_t test_cases_amount )
- {
- s_pm_impl().m_progress_display.reset( new progress_display( test_cases_amount, *s_pm_impl().m_stream ) );
- }
- //____________________________________________________________________________//
- void
- progress_monitor_t::test_aborted()
- {
- (*s_pm_impl().m_progress_display) += s_pm_impl().m_progress_display->count();
- }
- //____________________________________________________________________________//
- void
- progress_monitor_t::test_unit_finish( test_unit const& tu, unsigned long )
- {
- if( tu.p_type == tut_case )
- ++(*s_pm_impl().m_progress_display);
- }
- //____________________________________________________________________________//
- void
- progress_monitor_t::test_unit_skipped( test_unit const& tu )
- {
- test_case_counter tcc;
- traverse_test_tree( tu, tcc );
-
- (*s_pm_impl().m_progress_display) += tcc.p_count;
- }
- //____________________________________________________________________________//
- void
- progress_monitor_t::set_stream( std::ostream& ostr )
- {
- s_pm_impl().m_stream = &ostr;
- }
- //____________________________________________________________________________//
-
- } // namespace unit_test
- } // namespace boost
- //____________________________________________________________________________//
- #include <boost/test/detail/enable_warnings.hpp>
- #endif // BOOST_TEST_PROGRESS_MONITOR_IPP_020105GER
|