id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 11854,Add fixture support in BOOST_DATA_TEST_CASE,mikhail@…,Gennadiy Rozental,"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 \ 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 \ void _impl(BOOST_DATA_TEST_CASE_PARAMS( params )); \ }; \ \ BOOST_AUTO_TU_REGISTRAR( test_name )( \ boost::unit_test::data::ds_detail::make_test_case_gen( \ BOOST_STRINGIZE( test_name ), \ __FILE__, __LINE__, \ boost::unit_test::data::make(dataset) ), \ boost::unit_test::decorator::collector::instance() ); \ \ template \ 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 }}} ",Feature Requests,closed,Boost 1.61.0,test,Boost 1.59.0,Problem,fixed,,