summaryrefslogtreecommitdiff
path: root/boost/test/impl/progress_monitor.ipp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/test/impl/progress_monitor.ipp')
-rw-r--r--boost/test/impl/progress_monitor.ipp30
1 files changed, 20 insertions, 10 deletions
diff --git a/boost/test/impl/progress_monitor.ipp b/boost/test/impl/progress_monitor.ipp
index ebdd7e9320..7fb3baf8f0 100644
--- a/boost/test/impl/progress_monitor.ipp
+++ b/boost/test/impl/progress_monitor.ipp
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2014.
+// (C) Copyright Gennadiy Rozental 2001.
// 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)
@@ -17,8 +17,8 @@
// Boost.Test
#include <boost/test/progress_monitor.hpp>
-
#include <boost/test/unit_test_parameters.hpp>
+
#include <boost/test/utils/setcolor.hpp>
#include <boost/test/tree/test_unit.hpp>
@@ -102,15 +102,21 @@ namespace {
struct progress_monitor_impl {
// Constructor
progress_monitor_impl()
- : m_stream( runtime_config::log_sink() )
- {}
+ : m_stream( &std::cout )
+ , m_color_output( false )
+ {
+ }
- std::ostream* m_stream;
- scoped_ptr<progress_display> m_progress_display;
+ std::ostream* m_stream;
+ scoped_ptr<progress_display> m_progress_display;
+ bool m_color_output;
};
progress_monitor_impl& s_pm_impl() { static progress_monitor_impl the_inst; return the_inst; }
+#define PM_SCOPED_COLOR() \
+ BOOST_TEST_SCOPE_SETCOLOR( s_pm_impl().m_color_output, *s_pm_impl().m_stream, term_attr::BRIGHT, term_color::MAGENTA )
+
} // local namespace
//____________________________________________________________________________//
@@ -118,7 +124,9 @@ progress_monitor_impl& s_pm_impl() { static progress_monitor_impl the_inst; retu
void
progress_monitor_t::test_start( counter_t test_cases_amount )
{
- BOOST_TEST_SCOPE_SETCOLOR( *s_pm_impl().m_stream, term_attr::BRIGHT, term_color::MAGENTA );
+ s_pm_impl().m_color_output = runtime_config::get<bool>( runtime_config::COLOR_OUTPUT );
+
+ PM_SCOPED_COLOR();
s_pm_impl().m_progress_display.reset( new progress_display( test_cases_amount, *s_pm_impl().m_stream ) );
}
@@ -128,7 +136,7 @@ progress_monitor_t::test_start( counter_t test_cases_amount )
void
progress_monitor_t::test_aborted()
{
- BOOST_TEST_SCOPE_SETCOLOR( *s_pm_impl().m_stream, term_attr::BRIGHT, term_color::MAGENTA );
+ PM_SCOPED_COLOR();
(*s_pm_impl().m_progress_display) += s_pm_impl().m_progress_display->count();
}
@@ -138,7 +146,7 @@ progress_monitor_t::test_aborted()
void
progress_monitor_t::test_unit_finish( test_unit const& tu, unsigned long )
{
- BOOST_TEST_SCOPE_SETCOLOR( *s_pm_impl().m_stream, term_attr::BRIGHT, term_color::MAGENTA );
+ PM_SCOPED_COLOR();
if( tu.p_type == TUT_CASE )
++(*s_pm_impl().m_progress_display);
@@ -149,7 +157,7 @@ progress_monitor_t::test_unit_finish( test_unit const& tu, unsigned long )
void
progress_monitor_t::test_unit_skipped( test_unit const& tu, const_string /*reason*/ )
{
- BOOST_TEST_SCOPE_SETCOLOR( *s_pm_impl().m_stream, term_attr::BRIGHT, term_color::MAGENTA );
+ PM_SCOPED_COLOR();
test_case_counter tcc;
traverse_test_tree( tu, tcc );
@@ -167,6 +175,8 @@ progress_monitor_t::set_stream( std::ostream& ostr )
//____________________________________________________________________________//
+#undef PM_SCOPED_COLOR
+
} // namespace unit_test
} // namespace boost