diff --git a/include/boost/detail/lightweight_test.hpp b/include/boost/detail/lightweight_test.hpp index 79beb0a..dbd99b9 100644 --- a/include/boost/detail/lightweight_test.hpp +++ b/include/boost/detail/lightweight_test.hpp @@ -11,6 +11,7 @@ // boost/detail/lightweight_test.hpp - lightweight test library // // Copyright (c) 2002, 2009 Peter Dimov +// Copyright (2) Beman Dawes 2010, 2011 // // Distributed under the Boost Software License, Version 1.0. // See accompanying file LICENSE_1_0.txt or copy at @@ -23,9 +24,15 @@ // int boost::report_errors() // +#include #include #include -#include + +// IDE's like Visual Studio perform better if output goes to std::cout or +// some other stream, so allow user to configure output stream: +#ifndef BOOST_LIGHTWEIGHT_TEST_OSTREAM +# define BOOST_LIGHTWEIGHT_TEST_OSTREAM std::cerr +#endif namespace boost { @@ -58,24 +65,30 @@ inline int & test_errors() inline void test_failed_impl(char const * expr, char const * file, int line, char const * function) { - std::cerr << file << "(" << line << "): test '" << expr << "' failed in function '" << function << "'" << std::endl; + BOOST_LIGHTWEIGHT_TEST_OSTREAM + << file << "(" << line << "): test '" << expr << "' failed in function '" + << function << "'" << std::endl; ++test_errors(); } inline void error_impl(char const * msg, char const * file, int line, char const * function) { - std::cerr << file << "(" << line << "): " << msg << " in function '" << function << "'" << std::endl; + BOOST_LIGHTWEIGHT_TEST_OSTREAM + << file << "(" << line << "): " << msg << " in function '" + << function << "'" << std::endl; ++test_errors(); } -template inline void test_eq_impl( char const * expr1, char const * expr2, char const * file, int line, char const * function, T const & t, U const & u ) +template inline void test_eq_impl( char const * expr1, char const * expr2, + char const * file, int line, char const * function, T const & t, U const & u ) { if( t == u ) { } else { - std::cerr << file << "(" << line << "): test '" << expr1 << " == " << expr2 + BOOST_LIGHTWEIGHT_TEST_OSTREAM + << file << "(" << line << "): test '" << expr1 << " == " << expr2 << "' failed in function '" << function << "': " << "'" << t << "' != '" << u << "'" << std::endl; ++test_errors(); @@ -108,12 +121,14 @@ inline int report_errors() if( errors == 0 ) { - std::cerr << "No errors detected." << std::endl; + BOOST_LIGHTWEIGHT_TEST_OSTREAM + << "No errors detected." << std::endl; return 0; } else { - std::cerr << errors << " error" << (errors == 1? "": "s") << " detected." << std::endl; + BOOST_LIGHTWEIGHT_TEST_OSTREAM + << errors << " error" << (errors == 1? "": "s") << " detected." << std::endl; return 1; } }