mirror of
https://github.com/boostorg/detail.git
synced 2025-07-30 12:27:15 +02:00
Add BOOST_ASSERT_MSG. Add macros to configure output stream.
[SVN r68414]
This commit is contained in:
@ -11,6 +11,7 @@
|
|||||||
// boost/detail/lightweight_test.hpp - lightweight test library
|
// boost/detail/lightweight_test.hpp - lightweight test library
|
||||||
//
|
//
|
||||||
// Copyright (c) 2002, 2009 Peter Dimov
|
// Copyright (c) 2002, 2009 Peter Dimov
|
||||||
|
// Copyright (2) Beman Dawes 2010, 2011
|
||||||
//
|
//
|
||||||
// Distributed under the Boost Software License, Version 1.0.
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// See accompanying file LICENSE_1_0.txt or copy at
|
// See accompanying file LICENSE_1_0.txt or copy at
|
||||||
@ -23,9 +24,15 @@
|
|||||||
// int boost::report_errors()
|
// int boost::report_errors()
|
||||||
//
|
//
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
#include <boost/current_function.hpp>
|
#include <boost/current_function.hpp>
|
||||||
#include <boost/assert.hpp>
|
#include <boost/assert.hpp>
|
||||||
#include <iostream>
|
|
||||||
|
// 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
|
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)
|
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();
|
++test_errors();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void error_impl(char const * msg, char const * file, int line, char const * function)
|
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();
|
++test_errors();
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T, class U> 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<class T, class U> 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 )
|
if( t == u )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::cerr << file << "(" << line << "): test '" << expr1 << " == " << expr2
|
BOOST_LIGHTWEIGHT_TEST_OSTREAM
|
||||||
|
<< file << "(" << line << "): test '" << expr1 << " == " << expr2
|
||||||
<< "' failed in function '" << function << "': "
|
<< "' failed in function '" << function << "': "
|
||||||
<< "'" << t << "' != '" << u << "'" << std::endl;
|
<< "'" << t << "' != '" << u << "'" << std::endl;
|
||||||
++test_errors();
|
++test_errors();
|
||||||
@ -92,12 +105,14 @@ inline int report_errors()
|
|||||||
|
|
||||||
if( errors == 0 )
|
if( errors == 0 )
|
||||||
{
|
{
|
||||||
std::cerr << "No errors detected." << std::endl;
|
BOOST_LIGHTWEIGHT_TEST_OSTREAM
|
||||||
|
<< "No errors detected." << std::endl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
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;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user