$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r81138 - trunk/boost/test
From: gennadiy.rozental_at_[hidden]
Date: 2012-11-01 18:29:39
Author: rogeeff
Date: 2012-11-01 18:29:38 EDT (Thu, 01 Nov 2012)
New Revision: 81138
URL: http://svn.boost.org/trac/boost/changeset/81138
Log:
BOOST_TEST now accepts second optional second arg, in which case it behaves as BOOST_CHECK_MESSAGE
Text files modified: 
   trunk/boost/test/test_tools.hpp |    53 ++++++++++++++++++++++++++++++--------- 
   1 files changed, 41 insertions(+), 12 deletions(-)
Modified: trunk/boost/test/test_tools.hpp
==============================================================================
--- trunk/boost/test/test_tools.hpp	(original)
+++ trunk/boost/test/test_tools.hpp	2012-11-01 18:29:38 EDT (Thu, 01 Nov 2012)
@@ -28,9 +28,10 @@
 #include <boost/preprocessor/seq/for_each.hpp>
 #include <boost/preprocessor/seq/size.hpp>
 #include <boost/preprocessor/seq/to_tuple.hpp>
-#include <boost/preprocessor/repetition/repeat.hpp>
-#include <boost/preprocessor/punctuation/comma_if.hpp>
-#include <boost/preprocessor/arithmetic/add.hpp>
+
+#include <boost/preprocessor/control/iif.hpp>
+#include <boost/preprocessor/comparison/equal.hpp>
+#include <boost/preprocessor/variadic/size.hpp>
 
 #include <boost/test/detail/suppress_warnings.hpp>
 
@@ -100,22 +101,22 @@
 
 //____________________________________________________________________________//
 
-#define BOOST_CHECKA_BUILD_ASSERTION( P )                                       \
+#define BOOST_TEST_BUILD_ASSERTION( P )                                         \
     ::boost::test_tools::assertion::expression const& E =                       \
     ::boost::test_tools::assertion::seed() ->* P;                               \
 /**/
 
-#define BOOST_WARNA( P )                    BOOST_TEST_TOOL_IMPL( 2,            \
+#define BOOST_WARN_ASSERTION( P )           BOOST_TEST_TOOL_IMPL( 2,            \
     (E.evaluate()), BOOST_TEST_TOOLS_STRINGIZE( P ), WARN,                      \
-    CHECK_BUILT_ASSERTION, _, BOOST_CHECKA_BUILD_ASSERTION( P ) )               \
+    CHECK_BUILT_ASSERTION, _, BOOST_TEST_BUILD_ASSERTION( P ) )                 \
 /**/
-#define BOOST_CHECKA( P )                   BOOST_TEST_TOOL_IMPL( 2,            \
+#define BOOST_CHECK_ASSERTION( P )          BOOST_TEST_TOOL_IMPL( 2,            \
     (E.evaluate()), BOOST_TEST_TOOLS_STRINGIZE( P ), CHECK,                     \
-    CHECK_BUILT_ASSERTION, _, BOOST_CHECKA_BUILD_ASSERTION( P ) )               \
+    CHECK_BUILT_ASSERTION, _, BOOST_TEST_BUILD_ASSERTION( P ) )                 \
 /**/
-#define BOOST_REQUIREA( P )                 BOOST_TEST_TOOL_IMPL( 2,            \
+#define BOOST_REQUIRE_ASSERTION( P )            BOOST_TEST_TOOL_IMPL( 2,        \
     (E.evaluate()), BOOST_TEST_TOOLS_STRINGIZE( P ), REQUIRE,                   \
-    CHECK_BUILT_ASSERTION, _, BOOST_CHECKA_BUILD_ASSERTION( P ) )               \
+    CHECK_BUILT_ASSERTION, _, BOOST_TEST_BUILD_ASSERTION( P ) )                 \
 /**/
 
 //____________________________________________________________________________//
@@ -126,6 +127,34 @@
 
 //____________________________________________________________________________//
 
+#if BOOST_PP_VARIADICS
+
+#define BOOST_TEST_WARN( ... )              BOOST_PP_IIF(                       \
+    BOOST_PP_EQUAL(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__),2),                      \
+    BOOST_WARN_MESSAGE,                                                         \
+    BOOST_WARN_ASSERTION)( __VA_ARGS__ )                                        \
+/**/
+#define BOOST_TEST( ... )                   BOOST_PP_IIF(                       \
+    BOOST_PP_EQUAL(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__),2),                      \
+    BOOST_CHECK_MESSAGE,                                                        \
+    BOOST_CHECK_ASSERTION)( __VA_ARGS__ )                                       \
+/**/
+#define BOOST_TEST_REQUIRE( ... )           BOOST_PP_IIF(                       \
+    BOOST_PP_EQUAL(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__),2),                      \
+    BOOST_REQUIRE_MESSAGE,                                                      \
+    BOOST_REQUIRE_ASSERTION)( __VA_ARGS__ )                                     \
+/**/
+
+#else
+
+#define BOOST_TEST_WARN( P )                BOOST_WARN_ASSERTION( P )
+#define BOOST_TEST( P )                     BOOST_CHECK_ASSERTION( P )
+#define BOOST_TEST_REQUIRE( P )             BOOST_REQUIRE_ASSERTION( P )
+
+#endif
+
+//____________________________________________________________________________//
+
 #define BOOST_ERROR( M )                    BOOST_CHECK_MESSAGE( false, M )
 #define BOOST_FAIL( M )                     BOOST_REQUIRE_MESSAGE( false, M )
 
@@ -137,11 +166,11 @@
         BOOST_TEST_PASSPOINT();                                                         \
         S;                                                                              \
         BOOST_TEST_TOOL_IMPL( 2, false, "exception " BOOST_STRINGIZE(E) " is expected", \
-                              TL, CHECK_MSG, _, BOOST_PP_EMPTY() );                       \
+                              TL, CHECK_MSG, _, BOOST_PP_EMPTY() );                     \
     } catch( E const& ex ) {                                                            \
         ::boost::unit_test::ut_detail::ignore_unused_variable_warning( ex );            \
         BOOST_TEST_TOOL_IMPL( 2, P, prefix BOOST_STRINGIZE( E ) " is caught",           \
-                              TL, CHECK_MSG, _ , BOOST_PP_EMPTY() );                      \
+                              TL, CHECK_MSG, _ , BOOST_PP_EMPTY() );                    \
     }                                                                                   \
 } while( ::boost::test_tools::dummy_cond )                                              \
 /**/