summaryrefslogtreecommitdiff
path: root/boost/test/tools/context.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/test/tools/context.hpp')
-rw-r--r--boost/test/tools/context.hpp37
1 files changed, 34 insertions, 3 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