Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TESTS_UTILS_AUTO_PARAMETERIZED_HPP_INCLUDED
00017 #define TESTS_UTILS_AUTO_PARAMETERIZED_HPP_INCLUDED
00018
00019 #include <boost/test/unit_test_suite.hpp>
00020 #include <boost/test/parameterized_test.hpp>
00021
00022 namespace test_utils {
00023
00024 #ifndef BOOST_AUTO_TU_REGISTRAR
00025 #define BOOST_AUTO_TU_REGISTRAR BOOST_AUTO_TC_REGISTRAR
00026 #endif
00027
00028 #define WESNOTH_PARAMETERIZED_TEST_CASE( test_name, type_name, values, param_name ) \
00029 struct test_name : public BOOST_AUTO_TEST_CASE_FIXTURE \
00030 { void test_method(const type_name&); }; \
00031 \
00032 type_name* BOOST_JOIN(test_name, _begin) = &values[0]; \
00033 type_name* BOOST_JOIN(test_name, _end) = BOOST_JOIN(test_name, _begin) + (sizeof(values)/sizeof(values[0])); \
00034 static void BOOST_AUTO_TC_INVOKER( test_name )(const type_name& param_name ) \
00035 { \
00036 test_name t; \
00037 t.test_method(param_name); \
00038 } \
00039 \
00040 struct BOOST_AUTO_TC_UNIQUE_ID( test_name ) {}; \
00041 \
00042 BOOST_AUTO_TU_REGISTRAR( test_name )( \
00043 boost::unit_test::make_test_case(&BOOST_AUTO_TC_INVOKER( test_name ), \
00044 BOOST_TEST_STRINGIZE( test_name ),\
00045 BOOST_JOIN(test_name, _begin), BOOST_JOIN(test_name, _end))); \
00046 \
00047 void test_name::test_method(const type_name& param_name) \
00048
00049
00050 }
00051 #endif