diff options
Diffstat (limited to 'boost/test/tools')
-rw-r--r-- | boost/test/tools/context.hpp | 37 | ||||
-rw-r--r-- | boost/test/tools/detail/print_helper.hpp | 1 | ||||
-rw-r--r-- | boost/test/tools/fpc_op.hpp | 17 | ||||
-rw-r--r-- | boost/test/tools/old/impl.hpp | 2 | ||||
-rw-r--r-- | boost/test/tools/old/interface.hpp | 10 |
5 files changed, 52 insertions, 15 deletions
diff --git a/boost/test/tools/context.hpp b/boost/test/tools/context.hpp index 71650065ef..e5d6625e12 100644 --- a/boost/test/tools/context.hpp +++ b/boost/test/tools/context.hpp @@ -17,6 +17,20 @@ // Boost.Test #include <boost/test/utils/lazy_ostream.hpp> +#include <boost/test/detail/pp_variadic.hpp> + +#include <boost/preprocessor/repetition/enum_params.hpp> +#include <boost/preprocessor/repetition/enum_binary_params.hpp> +#include <boost/preprocessor/repetition/repeat_from_to.hpp> + +#include <boost/preprocessor/variadic/to_seq.hpp> +#include <boost/preprocessor/variadic/size.hpp> +#include <boost/preprocessor/cat.hpp> +#include <boost/preprocessor/seq/for_each_i.hpp> +#include <boost/preprocessor/seq/for_each.hpp> +#include <boost/preprocessor/seq/enum.hpp> +#include <boost/preprocessor/control/iif.hpp> +#include <boost/preprocessor/comparison/equal.hpp> #include <boost/test/detail/suppress_warnings.hpp> @@ -47,13 +61,30 @@ private: ::boost::unit_test::framework::add_context( BOOST_TEST_LAZY_MSG( context_descr ) , false ) \ /**/ +#define BOOST_TEST_INFO_SCOPE( context_descr ) \ + ::boost::test_tools::tt_detail::context_frame BOOST_JOIN( context_frame_, __LINE__ ) = \ + ::boost::test_tools::tt_detail::context_frame(BOOST_TEST_LAZY_MSG( context_descr ) ) \ +/**/ + //____________________________________________________________________________// -#define BOOST_TEST_CONTEXT( context_descr ) \ - if( ::boost::test_tools::tt_detail::context_frame BOOST_JOIN( context_frame_, __LINE__ ) = \ - ::boost::test_tools::tt_detail::context_frame( BOOST_TEST_LAZY_MSG( context_descr ) ) ) \ + +#define BOOST_CONTEXT_PARAM(r, ctx, i, context_descr) \ + if( ::boost::test_tools::tt_detail::context_frame BOOST_PP_CAT(ctx, i) = \ + ::boost::test_tools::tt_detail::context_frame(BOOST_TEST_LAZY_MSG( context_descr ) ) ) \ /**/ +#define BOOST_CONTEXT_PARAMS( params ) \ + BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONTEXT_PARAM, \ + BOOST_JOIN( context_frame_, __LINE__ ), \ + params) \ +/**/ + +#define BOOST_TEST_CONTEXT( ... ) \ + BOOST_CONTEXT_PARAMS( BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__) ) \ +/**/ + + //____________________________________________________________________________// } // namespace tt_detail diff --git a/boost/test/tools/detail/print_helper.hpp b/boost/test/tools/detail/print_helper.hpp index 232fad1509..2400e6e6ac 100644 --- a/boost/test/tools/detail/print_helper.hpp +++ b/boost/test/tools/detail/print_helper.hpp @@ -18,7 +18,6 @@ // Boost.Test #include <boost/test/detail/config.hpp> #include <boost/test/detail/global_typedef.hpp> -#include <boost/test/detail/workaround.hpp> // Boost #include <boost/mpl/or.hpp> diff --git a/boost/test/tools/fpc_op.hpp b/boost/test/tools/fpc_op.hpp index c84820bdba..18162e358a 100644 --- a/boost/test/tools/fpc_op.hpp +++ b/boost/test/tools/fpc_op.hpp @@ -20,6 +20,7 @@ // Boost #include <boost/type_traits/common_type.hpp> +#include <boost/type_traits/is_arithmetic.hpp> #include <boost/utility/enable_if.hpp> #include <boost/test/detail/suppress_warnings.hpp> @@ -108,10 +109,10 @@ inline assertion_result compare_fpv( Lhs const& lhs, Rhs const& rhs, op::EQ<Lhs,Rhs>* ) { if( lhs == 0 ) { - return compare_fpv_near_zero( rhs, (op::EQ<Lhs,Rhs>*)0 ); + return compare_fpv_near_zero<FPT>( rhs, (op::EQ<Lhs,Rhs>*)0 ); } else if( rhs == 0) { - return compare_fpv_near_zero( lhs, (op::EQ<Lhs,Rhs>*)0 ); + return compare_fpv_near_zero<FPT>( lhs, (op::EQ<Lhs,Rhs>*)0 ); } else { fpc::close_at_tolerance<FPT> P( fpc_tolerance<FPT>(), fpc::FPC_STRONG ); @@ -131,10 +132,10 @@ inline assertion_result compare_fpv( Lhs const& lhs, Rhs const& rhs, op::NE<Lhs,Rhs>* ) { if( lhs == 0 ) { - return compare_fpv_near_zero( rhs, (op::NE<Lhs,Rhs>*)0 ); + return compare_fpv_near_zero<FPT>( rhs, (op::NE<Lhs,Rhs>*)0 ); } else if( rhs == 0 ) { - return compare_fpv_near_zero( lhs, (op::NE<Lhs,Rhs>*)0 ); + return compare_fpv_near_zero<FPT>( lhs, (op::NE<Lhs,Rhs>*)0 ); } else { fpc::close_at_tolerance<FPT> P( fpc_tolerance<FPT>(), fpc::FPC_WEAK ); @@ -154,7 +155,12 @@ compare_fpv( Lhs const& lhs, Rhs const& rhs, op::NE<Lhs,Rhs>* ) template<typename Lhs,typename Rhs> \ struct name<Lhs,Rhs,typename boost::enable_if_c< \ (fpc::tolerance_based<Lhs>::value && \ - fpc::tolerance_based<Rhs>::value)>::type> { \ + fpc::tolerance_based<Rhs>::value) || \ + (fpc::tolerance_based<Lhs>::value && \ + boost::is_arithmetic<Rhs>::value) || \ + (boost::is_arithmetic<Lhs>::value && \ + fpc::tolerance_based<Rhs>::value) \ + >::type> { \ public: \ typedef typename common_type<Lhs,Rhs>::type FPT; \ typedef name<Lhs,Rhs> OP; \ @@ -211,4 +217,3 @@ BOOST_TEST_FOR_EACH_COMP_OP( DEFINE_FPV_COMPARISON ) #include <boost/test/detail/enable_warnings.hpp> #endif // BOOST_TEST_TOOLS_FPC_OP_HPP_050915GER - diff --git a/boost/test/tools/old/impl.hpp b/boost/test/tools/old/impl.hpp index b975f61b38..0b8f888cbe 100644 --- a/boost/test/tools/old/impl.hpp +++ b/boost/test/tools/old/impl.hpp @@ -114,7 +114,7 @@ inline assertion_result equal_impl( char const* left, char* right ) { return equ inline assertion_result equal_impl( char* left, char* right ) { return equal_impl( static_cast<char const*>(left), static_cast<char const*>(right) ); } #if !defined( BOOST_NO_CWCHAR ) -assertion_result BOOST_TEST_DECL equal_impl( wchar_t const* left, wchar_t const* right ); +BOOST_TEST_DECL assertion_result equal_impl( wchar_t const* left, wchar_t const* right ); inline assertion_result equal_impl( wchar_t* left, wchar_t const* right ) { return equal_impl( static_cast<wchar_t const*>(left), static_cast<wchar_t const*>(right) ); } inline assertion_result equal_impl( wchar_t const* left, wchar_t* right ) { return equal_impl( static_cast<wchar_t const*>(left), static_cast<wchar_t const*>(right) ); } inline assertion_result equal_impl( wchar_t* left, wchar_t* right ) { return equal_impl( static_cast<wchar_t const*>(left), static_cast<wchar_t const*>(right) ); } diff --git a/boost/test/tools/old/interface.hpp b/boost/test/tools/old/interface.hpp index 2d6f8b78c0..1b23c291a3 100644 --- a/boost/test/tools/old/interface.hpp +++ b/boost/test/tools/old/interface.hpp @@ -20,6 +20,8 @@ #include <boost/preprocessor/seq/size.hpp> #include <boost/preprocessor/seq/to_tuple.hpp> +#include <boost/core/ignore_unused.hpp> + #include <boost/test/detail/suppress_warnings.hpp> //____________________________________________________________________________// @@ -95,7 +97,7 @@ do { //____________________________________________________________________________// -#define BOOST_CHECK_THROW_IMPL( S, E, P, postfix, TL ) \ +#define BOOST_CHECK_THROW_IMPL( S, E, P, postfix, TL ) \ do { \ try { \ BOOST_TEST_PASSPOINT(); \ @@ -103,9 +105,9 @@ do { BOOST_TEST_TOOL_IMPL( 2, false, "exception " BOOST_STRINGIZE(E) " expected but not raised", \ TL, CHECK_MSG, _ ); \ } catch( E const& ex ) { \ - ::boost::unit_test::ut_detail::ignore_unused_variable_warning( ex ); \ - BOOST_TEST_TOOL_IMPL( 2, P, \ - "exception \"" BOOST_STRINGIZE( E )"\" raised as expected" postfix, \ + boost::ignore_unused( ex ); \ + BOOST_TEST_TOOL_IMPL( 2, P, \ + "exception \"" BOOST_STRINGIZE( E )"\" raised as expected" postfix, \ TL, CHECK_MSG, _ ); \ } \ } while( ::boost::test_tools::tt_detail::dummy_cond() ) \ |