summaryrefslogtreecommitdiff
path: root/boost/test/tools
diff options
context:
space:
mode:
Diffstat (limited to 'boost/test/tools')
-rw-r--r--boost/test/tools/context.hpp37
-rw-r--r--boost/test/tools/detail/print_helper.hpp1
-rw-r--r--boost/test/tools/fpc_op.hpp17
-rw-r--r--boost/test/tools/old/impl.hpp2
-rw-r--r--boost/test/tools/old/interface.hpp10
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() ) \