=== boost/test/impl/test_tools.ipp ================================================================== --- boost/test/impl/test_tools.ipp (revision 5151) +++ boost/test/impl/test_tools.ipp (revision 5152) @@ -66,6 +66,7 @@ std::size_t num_of_args, ... ) { using namespace unit_test; + using ::boost::unit_test::lazy_ostream; if( !framework::is_initialized() ) throw std::runtime_error( "can't use testing tools before framework is initialized" ); @@ -139,16 +140,16 @@ va_list args; va_start( args, num_of_args ); - char const* arg1_descr = va_arg( args, char const* ); - char const* arg1_val = va_arg( args, char const* ); - char const* arg2_descr = va_arg( args, char const* ); - char const* arg2_val = va_arg( args, char const* ); + lazy_ostream const* arg1_descr = va_arg( args, lazy_ostream const* ); + lazy_ostream const* arg1_val = va_arg( args, lazy_ostream const* ); + lazy_ostream const* arg2_descr = va_arg( args, lazy_ostream const* ); + lazy_ostream const* arg2_val = va_arg( args, lazy_ostream const* ); unit_test_log << unit_test::log::begin( file_name, line_num ) - << ll << prefix << arg1_descr << check_str[ct-CHECK_EQUAL] << arg2_descr << suffix; + << ll << prefix << *arg1_descr << check_str[ct-CHECK_EQUAL] << *arg2_descr << suffix; if( tl != PASS ) - unit_test_log << " [" << arg1_val << rever_str[ct-CHECK_EQUAL] << arg2_val << "]" ; + unit_test_log << " [" << *arg1_val << rever_str[ct-CHECK_EQUAL] << *arg2_val << "]" ; va_end( args ); @@ -164,19 +165,19 @@ va_list args; va_start( args, num_of_args ); - char const* arg1_descr = va_arg( args, char const* ); - char const* arg1_val = va_arg( args, char const* ); - char const* arg2_descr = va_arg( args, char const* ); - char const* arg2_val = va_arg( args, char const* ); - /* toler_descr = */ va_arg( args, char const* ); - char const* toler_val = va_arg( args, char const* ); + lazy_ostream const* arg1_descr = va_arg( args, lazy_ostream const* ); + lazy_ostream const* arg1_val = va_arg( args, lazy_ostream const* ); + lazy_ostream const* arg2_descr = va_arg( args, lazy_ostream const* ); + lazy_ostream const* arg2_val = va_arg( args, lazy_ostream const* ); + /* toler_descr = */ va_arg( args, lazy_ostream const* ); + lazy_ostream const* toler_val = va_arg( args, lazy_ostream const* ); unit_test_log << unit_test::log::begin( file_name, line_num ) << ll; - unit_test_log << "difference between " << arg1_descr << "{" << arg1_val << "}" - << " and " << arg2_descr << "{" << arg2_val << "}" + unit_test_log << "difference between " << *arg1_descr << "{" << *arg1_val << "}" + << " and " << *arg2_descr << "{" << *arg2_val << "}" << ( tl == PASS ? " doesn't exceed " : " exceeds " ) - << toler_val; + << *toler_val; if( ct == CHECK_CLOSE ) unit_test_log << "%"; @@ -192,16 +193,16 @@ va_list args; va_start( args, num_of_args ); - char const* arg1_descr = va_arg( args, char const* ); - char const* arg1_val = va_arg( args, char const* ); - /* toler_descr = */ va_arg( args, char const* ); - char const* toler_val = va_arg( args, char const* ); + lazy_ostream const* arg1_descr = va_arg( args, lazy_ostream const* ); + lazy_ostream const* arg1_val = va_arg( args, lazy_ostream const* ); + /* toler_descr = */ va_arg( args, lazy_ostream const* ); + lazy_ostream const* toler_val = va_arg( args, lazy_ostream const* ); unit_test_log << unit_test::log::begin( file_name, line_num ) << ll; - unit_test_log << "absolute value of " << arg1_descr << "{" << arg1_val << "}" + unit_test_log << "absolute value of " << *arg1_descr << "{" << *arg1_val << "}" << ( tl == PASS ? " doesn't exceed " : " exceeds " ) - << toler_val; + << *toler_val; va_end( args ); @@ -223,8 +224,8 @@ unit_test_log << "( "; for( std::size_t i = 0; i < num_of_args; ++i ) { - unit_test_log << va_arg( args, char const* ); - va_arg( args, char const* ); // skip argument value; + unit_test_log << *va_arg( args, lazy_ostream const* ); + va_arg( args, lazy_ostream const* ); // skip argument value; if( i != num_of_args-1 ) unit_test_log << ", "; @@ -239,8 +240,8 @@ unit_test_log << " for ( "; for( std::size_t i = 0; i < num_of_args; ++i ) { - va_arg( args, char const* ); // skip argument description; - unit_test_log << va_arg( args, char const* ); + va_arg( args, lazy_ostream const* ); // skip argument description; + unit_test_log << *va_arg( args, lazy_ostream const* ); if( i != num_of_args-1 ) unit_test_log << ", "; === boost/test/test_tools.hpp ================================================================== --- boost/test/test_tools.hpp (revision 5151) +++ boost/test/test_tools.hpp (revision 5152) @@ -484,10 +484,11 @@ #define PRED_PARAMS( z, m, dummy ) BOOST_PP_COMMA_IF( m ) BOOST_JOIN( arg, m ) #define ARG_INFO( z, m, dummy ) \ - , BOOST_JOIN( BOOST_JOIN( arg, m ), _descr ) \ - , (boost::wrap_stringstream().ref() \ - << ::boost::test_tools::tt_detail:: \ - print_helper( BOOST_JOIN( arg, m ) )).str().c_str() \ + , &(const unit_test::lazy_ostream&)(unit_test::lazy_ostream::instance() \ + << BOOST_JOIN( BOOST_JOIN( arg, m ), _descr )) \ + , &(const unit_test::lazy_ostream&)(unit_test::lazy_ostream::instance() \ + << ::boost::test_tools::tt_detail:: \ + print_helper( BOOST_JOIN( arg, m ) )) \ /**/ #define IMPL_FRWD( z, n, dummy ) \