Opened 7 years ago
Closed 7 years ago
#11854 closed Feature Requests (fixed)
Add fixture support in BOOST_DATA_TEST_CASE
Reported by: | Owned by: | Gennadiy Rozental | |
---|---|---|---|
Milestone: | Boost 1.61.0 | Component: | test |
Version: | Boost 1.59.0 | Severity: | Problem |
Keywords: | Cc: |
Description
Now BOOST_DATA_TEST_CASE doesn't support test fixture at all. There is the ability to support this:
#define BOOST_FIXTURE_DATA_TEST_CASE_IMPL( arity, test_name, F, dataset, params ) \ struct test_name : public F { \ template<BOOST_PP_ENUM_PARAMS(arity, typename Arg)> \ static void test_method( BOOST_DATA_TEST_CASE_PARAMS( params ) ) \ { \ BOOST_TEST_CHECKPOINT('"' << #test_name << "\" fixture entry."); \ test_name t; \ BOOST_TEST_CHECKPOINT('"' << #test_name << "\" entry."); \ BOOST_TEST_CONTEXT( "" \ BOOST_PP_SEQ_FOR_EACH(BOOST_DATA_TEST_CONTEXT, _, params)) \ t._impl(BOOST_PP_SEQ_ENUM(params)); \ BOOST_TEST_CHECKPOINT('"' << #test_name << "\" exit."); \ } \ private: \ template<BOOST_PP_ENUM_PARAMS(arity, typename Arg)> \ void _impl(BOOST_DATA_TEST_CASE_PARAMS( params )); \ }; \ \ BOOST_AUTO_TU_REGISTRAR( test_name )( \ boost::unit_test::data::ds_detail::make_test_case_gen<test_name>( \ BOOST_STRINGIZE( test_name ), \ __FILE__, __LINE__, \ boost::unit_test::data::make(dataset) ), \ boost::unit_test::decorator::collector::instance() ); \ \ template<BOOST_PP_ENUM_PARAMS(arity, typename Arg)> \ void test_name::_impl( BOOST_DATA_TEST_CASE_PARAMS( params ) ) \ /**/ #define BOOST_AUTO_DATA_TEST_CASE_WITH_PARAMS( test_name, dataset, ... ) \ BOOST_FIXTURE_DATA_TEST_CASE_IMPL( BOOST_PP_VARIADIC_SIZE(__VA_ARGS__), \ test_name, BOOST_AUTO_TEST_CASE_FIXTURE, dataset, \ BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__) ) \ /**/ #define BOOST_AUTO_DATA_TEST_CASE_NO_PARAMS( test_name, dataset ) \ BOOST_AUTO_DATA_TEST_CASE_WITH_PARAMS( test_name, dataset, sample ) \ /**/ #if BOOST_PP_VARIADICS_MSVC #define BOOST_AUTO_DATA_TEST_CASE( ... ) \ BOOST_PP_CAT( \ BOOST_PP_IIF(BOOST_PP_EQUAL(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__),2), \ BOOST_AUTO_DATA_TEST_CASE_NO_PARAMS, \ BOOST_AUTO_DATA_TEST_CASE_WITH_PARAMS) (__VA_ARGS__), ) \ /**/ #else #define BOOST_AUTO_DATA_TEST_CASE( ... ) \ BOOST_PP_IIF(BOOST_PP_EQUAL(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__),2), \ BOOST_AUTO_DATA_TEST_CASE_NO_PARAMS, \ BOOST_AUTO_DATA_TEST_CASE_WITH_PARAMS) (__VA_ARGS__) \ /**/ #endif
Change History (2)
comment:1 by , 7 years ago
Milestone: | To Be Determined → Boost 1.61.0 |
---|
comment:2 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Merged to master rev 6a3a616