15 #ifndef INCG_IRIS_IUTEST_PARAM_TESTS_HPP_3DBBF55E_A076_4207_B49E_34734EE333EE_
16 #define INCG_IRIS_IUTEST_PARAM_TESTS_HPP_3DBBF55E_A076_4207_B49E_34734EE333EE_
24 #if IUTEST_HAS_PARAM_TEST
42 #if IUTEST_HAS_PARAM_TEST_PARAM_NAME_GENERATOR
43 # define IUTEST_INSTANTIATE_TEST_SUITE_P(prefix_, testfixture_, generator_, ...) \
44 IIUT_INSTANTIATE_TEST_SUITE_P_(prefix_, testfixture_, generator_, __VA_ARGS__)
46 # define IUTEST_INSTANTIATE_TEST_SUITE_P(prefix_, testfixture_, generator_) \
47 IIUT_INSTANTIATE_TEST_SUITE_P_(prefix_, testfixture_, generator_)
61 #define IUTEST_P(testfixture_, testname_) IUTEST_TEST_P_(testfixture_, testname_)
64 #if IUTEST_HAS_ANY_PARAM_TEST
74 #define IUTEST_INSTANTIATE_TEST_SUITE_AP(prefix_, testsuite_, generator_) \
75 IIUT_INSTANTIATE_TEST_SUITE_AP_(prefix_, testsuite_, generator_)
87 #define IUTEST_AP(testsuite_, testname_) \
88 IUTEST_TEST_AP_(testsuite_, testname_)
98 #if !defined(IUTEST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS)
99 # define IIUT_GETTESTSUITEPATTERNHOLDER(T, testsuite_, package_) \
100 ::iutest::UnitTest::GetInstance()->parameterized_test_registry( \
101 ).GetTestSuitePatternHolder<T>(testsuite_, package_)
103 # define IIUT_GETTESTSUITEPATTERNHOLDER(T, testsuite_, package_) \
104 ::iutest::UnitTest::GetInstance()->parameterized_test_registry( \
105 ).GetTestSuitePatternHolder(testsuite_, package_, ::iutest::detail::explicit_type<T>())
108 #if IUTEST_HAS_AUTOFIXTURE_PARAM_TEST
109 # if IUTEST_HAS_IF_EXISTS
110 # define IIUT_TEST_P_FIXTURE_DECL_(testsuite_) IIUT_TEST_P_FIXTURE_DECL_I(IIUT_TO_VARNAME_(testsuite_))
111 # define IIUT_TEST_P_FIXTURE_DECL_I(testsuite_) IUTEST_IF_NOT_EXISTS(testsuite_, typedef ::iutest::TestWithAny testsuite_;)
112 # define IIUT_TEST_P_BASE_FIXTURE(testsuite_) IIUT_TO_VARNAME_(testsuite_)
114 # define IIUT_TEST_P_FIXTURE_DECL_(testsuite_)
115 # if !defined(IUTEST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
116 # define IIUT_TEST_P_BASE_FIXTURE(testsuite_) \
117 ::iutest::detail::paramtest_select_base_testsuite< void (int (IIUT_TO_VARNAME_(testsuite_))) >::type
119 # define IIUT_TEST_P_BASE_FIXTURE(testsuite_) IIUT_TO_VARNAME_(testsuite_)
123 # define IIUT_TEST_P_FIXTURE_DECL_(testsuite_)
124 # define IIUT_TEST_P_BASE_FIXTURE(testsuite_) IIUT_TO_VARNAME_(testsuite_)
130 #if IUTEST_HAS_PARAM_TEST_PARAM_NAME_GENERATOR
131 # define IIUT_INSTANTIATE_TEST_SUITE_P_(prefix_, testsuite_, generator_, ...) \
132 IIUT_INSTANTIATE_TEST_SUITE_P_I(prefix_, testsuite_, generator_, GetParamNameGen(__VA_ARGS__))
134 # define IIUT_INSTANTIATE_TEST_SUITE_P_(prefix_, testsuite_, generator_) \
135 IIUT_INSTANTIATE_TEST_SUITE_P_I(prefix_, testsuite_, generator_, GetParamNameGen())
138 #if IUTEST_HAS_TESTFIXTURE_ALIAS_BY_TUPLE
140 #define IIUT_INSTANTIATE_TEST_SUITE_P_I(prefix_, testsuite_, generator_, paramname_generator_) \
141 IIUT_INSTANTIATE_TEST_SUITE_P_II(prefix_, IUTEST_PP_IF( IUTEST_PP_IS_BEGIN_PARENS(testsuite_) \
142 , IUTEST_ALIAS_TESTNAME_F_, IUTEST_PP_EMPTY() ) testsuite_, generator_, paramname_generator_)
146 #define IIUT_INSTANTIATE_TEST_SUITE_P_I(prefix_, testsuite_, generator_, paramname_generator_) \
147 IIUT_INSTANTIATE_TEST_SUITE_P_II(prefix_, testsuite_, generator_, paramname_generator_)
151 #define IIUT_INSTANTIATE_TEST_SUITE_P_II(prefix_, testsuite_, generator_, paramname_generator_) \
152 IIUT_INSTANTIATE_TEST_SUITE_P_III(prefix_, testsuite_, IIUT_TEST_P_BASE_FIXTURE(testsuite_) \
153 , generator_, paramname_generator_)
156 #define IIUT_INSTANTIATE_TEST_SUITE_P_III(prefix_, testsuite_, basefixture_, generator_, paramname_generator_) \
157 IIUT_TEST_P_FIXTURE_DECL_(testsuite_) \
158 static ::iutest::detail::iuIParamGenerator< basefixture_::ParamType >* \
159 IIUT_TEST_P_EVALGENERATOR_NAME_(prefix_, testsuite_)() { return generator_; } \
160 static ::std::string IIUT_TEST_P_PARAMGENERATOR_NAME_(prefix_, testsuite_)( \
161 const ::iutest::TestParamInfo< basefixture_::ParamType >& pinfo_) { return \
162 ::iutest::detail::ParamTestSuiteInfo< basefixture_ >::paramname_generator_(pinfo_); } \
163 int IIUT_TEST_P_INSTANTIATIONREGISTER_NAME_(prefix_, testsuite_)() { \
164 ::iutest::detail::ParamTestSuiteInfo< basefixture_ >* p = IIUT_GETTESTSUITEPATTERNHOLDER( \
165 basefixture_, IIUT_TO_NAME_STR_(testsuite_), IUTEST_GET_PACKAGENAME_()); \
166 return p->AddTestSuiteInstantiation(#prefix_ \
167 , IIUT_TEST_P_EVALGENERATOR_NAME_(prefix_, testsuite_) \
168 , IIUT_TEST_P_PARAMGENERATOR_NAME_(prefix_, testsuite_) \
169 , __FILE__, __LINE__); \
170 } IIUT_TEST_P_INSTANTIATIONREGISTER_(prefix_, testsuite_)
175 #define IIUT_TEST_P_I_(classname_, testsuite_, testsuitename_, testname_) \
176 IIUT_TEST_P_FIXTURE_DECL_(testsuite_) \
177 class classname_ IUTEST_CXX_FINAL : public testsuite_ { \
178 public: classname_() {} \
179 protected: virtual void Body() IUTEST_CXX_OVERRIDE; \
180 private: static int AddRegister() { \
181 static ::iutest::detail::ParamTestInstance< classname_ > testinfo(testname_); \
182 IIUT_GETTESTSUITEPATTERNHOLDER(testsuite_, testsuitename_ \
183 , IUTEST_GET_PACKAGENAME_())->AddTestPattern(&testinfo); return 0; \
186 IUTEST_PP_DISALLOW_COPY_AND_ASSIGN(classname_); \
188 int classname_::dummy_ IUTEST_ATTRIBUTE_UNUSED_ = classname_::AddRegister(); \
189 void classname_::Body()
191 #if IUTEST_HAS_IGNORE_TEST
193 #define IIUT_TEST_P_I_IGNORE_(classname_, testsuite_, testsuitename_, testname_) \
194 class classname_ IUTEST_CXX_FINAL : public testsuite_ { \
195 public: classname_() {} \
196 protected: virtual void Body() IUTEST_CXX_OVERRIDE { IUTEST_SKIP() << "ignored test..."; } \
197 template<typename T>void Body(); \
198 private: static int AddRegister() { \
199 static ::iutest::detail::ParamTestInstance< classname_ > testinfo(testname_); \
200 IIUT_GETTESTSUITEPATTERNHOLDER(testsuite_, testsuitename_ \
201 , IUTEST_GET_PACKAGENAME_())->AddTestPattern(&testinfo); return 0; \
204 IUTEST_PP_DISALLOW_COPY_AND_ASSIGN(classname_); \
206 int classname_::dummy_ IUTEST_ATTRIBUTE_UNUSED_ = classname_::AddRegister(); \
207 template<typename T>void classname_::Body()
211 #define IIUT_TEST_P_(macro, testsuite_, testname_) \
212 macro(IUTEST_TEST_CLASS_NAME_(testsuite_, testname_) \
213 , IIUT_TEST_P_BASE_FIXTURE(testsuite_) \
214 , IIUT_TO_NAME_STR_(testsuite_), IIUT_TO_NAME_STR_(testname_))
216 #if IUTEST_HAS_TESTFIXTURE_ALIAS_BY_TUPLE
218 #define IIUT_TEST_P_A_(macro, testsuite_, testname_) \
219 IIUT_TEST_P_( macro, IUTEST_PP_IF( IUTEST_PP_IS_BEGIN_PARENS(testsuite_) \
220 , IUTEST_ALIAS_TESTNAME_F_, IUTEST_PP_EMPTY() ) testsuite_, testname_)
222 #define IUTEST_TEST_P_(testsuite_, testname_) \
223 IIUT_TEST_P_A_(IIUT_TEST_P_I_, testsuite_, testname_)
225 #if IUTEST_HAS_IGNORE_TEST
227 #define IUTEST_TEST_P_IGNORE_(testsuite_, testname_) \
228 IIUT_TEST_P_A_(IIUT_TEST_P_I_IGNORE_, testsuite_, testname_)
234 #define IUTEST_TEST_P_(testsuite_, testname_) \
235 IIUT_TEST_P_(IIUT_TEST_P_I_, testsuite_, testname_)
237 #if IUTEST_HAS_IGNORE_TEST
239 #define IUTEST_TEST_P_IGNORE_(testsuite_, testname_) \
240 IIUT_TEST_P_(IIUT_TEST_P_I_IGNORE_, testsuite_, testname_)
246 #define IIUT_TEST_AP_FIXTURE_NAME_(testsuite_) IUTEST_PP_CAT(iuTestWithAny, testsuite_)
247 #define IIUT_ALIAS_TESTNAME_AP_(testsuite_) IUTEST_ALIAS_TESTNAME_F(testsuite_, IIUT_TEST_AP_FIXTURE_NAME_(testsuite_))
249 #define IUTEST_TEST_AP_(testsuite_, testname_) \
250 typedef ::iutest::TestWithAny IIUT_TEST_AP_FIXTURE_NAME_(testsuite_); \
251 IUTEST_TEST_P_(IIUT_ALIAS_TESTNAME_AP_(testsuite_), testname_)
253 #define IIUT_INSTANTIATE_TEST_SUITE_AP_(prefix_, testsuite_, generator_) \
254 IIUT_INSTANTIATE_TEST_SUITE_P_(prefix_, IIUT_ALIAS_TESTNAME_AP_(testsuite_), generator_)
257 #define IIUT_TEST_P_EVALGENERATOR_NAME_(prefix_, testsuite_) IIUT_TEST_P_EVALGENERATOR_NAME_I(prefix_, IIUT_TO_VARNAME_(testsuite_))
258 #define IIUT_TEST_P_EVALGENERATOR_NAME_I(prefix_, testsuite_) IIUT_TEST_P_EVALGENERATOR_NAME_I_(prefix_, testsuite_)
259 #define IIUT_TEST_P_EVALGENERATOR_NAME_I_(prefix_, testsuite_) s_##prefix_##_x_iutest_x_##testsuite_##_EvalGenerator_
261 #define IIUT_TEST_P_PARAMGENERATOR_NAME_(prefix_, testsuite_) IIUT_TEST_P_PARAMGENERATOR_NAME_I(prefix_, IIUT_TO_VARNAME_(testsuite_))
262 #define IIUT_TEST_P_PARAMGENERATOR_NAME_I(prefix_, testsuite_) IIUT_TEST_P_PARAMGENERATOR_NAME_I_(prefix_, testsuite_)
263 #define IIUT_TEST_P_PARAMGENERATOR_NAME_I_(prefix_, testsuite_) s_##prefix_##_x_iutest_x_##testsuite_##_ParamGenerator_
265 #define IIUT_TEST_P_INSTANTIATIONREGISTER_NAME_(prefix_, testsuite_) \
266 IIUT_TEST_P_INSTANTIATIONREGISTER_NAME_I(prefix_, IIUT_TO_VARNAME_(testsuite_))
267 #define IIUT_TEST_P_INSTANTIATIONREGISTER_NAME_I(prefix_, testsuite_) IIUT_TEST_P_INSTANTIATIONREGISTER_NAME_I_(prefix_, testsuite_)
268 #define IIUT_TEST_P_INSTANTIATIONREGISTER_NAME_I_(prefix_, testsuite_) prefix_##_x_iutest_x_##testsuite_##_TestSuiteInstantiationRegister
270 #define IIUT_TEST_P_INSTANTIATIONREGISTER_(prefix_, testsuite_) \
271 IIUT_TEST_P_INSTANTIATIONREGISTER_I(prefix_, IIUT_TO_VARNAME_(testsuite_), IIUT_TEST_P_INSTANTIATIONREGISTER_NAME_(prefix_, testsuite_))
272 #define IIUT_TEST_P_INSTANTIATIONREGISTER_I(prefix_, testsuite_, register_) IIUT_TEST_P_INSTANTIATIONREGISTER_I_(prefix_, testsuite_, register_)
273 #define IIUT_TEST_P_INSTANTIATIONREGISTER_I_(prefix_, testsuite_, register_) int s_##prefix_##_x_iutest_x_##testsuite_##_dummy = register_()
290 class ParamTestInstance :
public IParamTestInfoData
293 typedef typename Tester::ParamType ParamType;
294 typedef detail::iuParamTestFactory<T> Factory;
297 class EachTest
IUTEST_CXX_FINAL :
public IParamTestInfoData::ParamEachTestBase<ParamType>
300 EachTest(TestSuite* testsuite, const ::std::string& name)
301 : m_mediator(testsuite)
302 , m_info(&m_mediator, name, &m_factory)
304 UnitTest::instance().AddTestInfo(testsuite, &m_info);
309 m_factory.SetParam(param);
313 TestSuiteMediator m_mediator;
318 ParamTestInstance() : IParamTestInfoData(
"") {}
319 explicit ParamTestInstance(
const char* testsuite_name) : IParamTestInfoData(testsuite_name) {}
323 virtual TestSuite* MakeTestSuite(const ::std::string& testsuite_name,
TestTypeId id
326 #if !defined(IUTEST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS)
327 return UnitTest::instance().AddTestSuite<TestSuite>(testsuite_name, id, setup, teardown);
329 return UnitTest::instance().AddTestSuite(
330 testsuite_name,
id, setup, teardown, detail::explicit_type<TestSuite>());
335 virtual IParamTestInfoData::EachTestBase* RegisterTest(TestSuite* testsuite
338 EachTest* test =
new EachTest(testsuite, name);
340 detail::iuPool::GetInstance().push(test);
351 class TestWithAny :
public Test,
public WithParamInterface<any>
366 #if !defined(IUTEST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
374 struct paramtest_select_base_testsuite;
377 struct paramtest_select_base_testsuite< void(int) >
382 struct paramtest_select_base_testsuite< void(int (T)) >
404 detail::iuParamGenerator<T> IUTEST_ATTRIBUTE_UNUSED_
Range(T begin, T end, T step=
static_cast<T
>(1))
406 return new detail::iuRangeParamsGenerator<T>(begin, end, step);
412 inline detail::iuParamGenerator<bool> IUTEST_ATTRIBUTE_UNUSED_
Bool()
414 return new detail::iuBoolParamsGenerator();
417 #if IUTEST_HAS_VALUESGEN
423 template<
typename StdGenerator>
424 inline detail::iuValuesParamsGeneratorHolder<StdGenerator> IUTEST_ATTRIBUTE_UNUSED_
ValuesGen(
size_t num,
const StdGenerator& generator)
426 return detail::iuValuesParamsGeneratorHolder<StdGenerator>(num, generator);
435 template<
typename T,
typename Filter>
436 inline detail::iuRandomFilterParamGenerator<T, Filter> IUTEST_ATTRIBUTE_UNUSED_
RandomGenerator(
const Filter& filter,
unsigned int seed=0)
440 seed = detail::GetIndefiniteValue();
442 return detail::iuRandomFilterParamGenerator<T, Filter>(filter, seed);
447 #if IUTEST_HAS_RANDOMVALUES
451 inline detail::iuRandomParamsHolder IUTEST_ATTRIBUTE_UNUSED_
RandomValues(
size_t num,
unsigned int seed=0)
453 return detail::iuRandomParamsHolder(num, seed);
460 template<
typename Container>
461 inline detail::iuParamGenerator< typename Container::value_type > IUTEST_ATTRIBUTE_UNUSED_
ValuesIn(Container container)
463 return new detail::iuValuesInParamsGenerator< typename Container::value_type >(container);
466 #if !defined(IUTEST_NO_FUNCTION_TEMPLATE_ORDERING)
468 template<
typename T,
size_t SIZE>
469 inline detail::iuParamGenerator<T> IUTEST_ATTRIBUTE_UNUSED_
ValuesIn(
const T (&v)[SIZE])
471 return new detail::iuValuesInParamsGenerator<T>(v, v+SIZE);
474 #if !defined(IUTEST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
476 template<
typename Ite>
477 inline detail::iuParamGenerator< typename detail::IteratorTraits<Ite>::type > IUTEST_ATTRIBUTE_UNUSED_
ValuesIn(Ite begin, Ite end)
479 return new detail::iuValuesInParamsGenerator<
480 typename detail::IteratorTraits<Ite>::type >(begin, end);
484 #if IUTEST_HAS_INITIALIZER_LIST
487 inline detail::iuParamGenerator<T> IUTEST_ATTRIBUTE_UNUSED_
ValuesIn(::std::initializer_list<T> l)
489 return new detail::iuValuesInParamsGenerator<T>(l);
495 #if IUTEST_HAS_VARIADIC_VALUES
499 template<
typename ...Args>
500 inline detail::iuValueArray<Args...> IUTEST_ATTRIBUTE_UNUSED_ Values(Args... args)
502 return detail::iuValueArray<Args...>(args...);
507 #define IIUT_DECL_VALUES_(n) template< IUTEST_PP_ENUM_PARAMS(n, typename T) > \
508 inline detail::iuValueArray##n< IUTEST_PP_ENUM_PARAMS(n, T) > \
509 IUTEST_ATTRIBUTE_UNUSED_ Values( IUTEST_PP_ENUM_BINARY_PARAMS(n, T, t) ) { \
510 return detail::iuValueArray##n< IUTEST_PP_ENUM_PARAMS(n, T) >( IUTEST_PP_ENUM_PARAMS(n, t) ); \
526 IIUT_DECL_VALUES_(10)
527 IIUT_DECL_VALUES_(11)
528 IIUT_DECL_VALUES_(12)
529 IIUT_DECL_VALUES_(13)
530 IIUT_DECL_VALUES_(14)
531 IIUT_DECL_VALUES_(15)
532 IIUT_DECL_VALUES_(16)
533 IIUT_DECL_VALUES_(17)
534 IIUT_DECL_VALUES_(18)
535 IIUT_DECL_VALUES_(19)
536 IIUT_DECL_VALUES_(20)
537 IIUT_DECL_VALUES_(21)
538 IIUT_DECL_VALUES_(22)
539 IIUT_DECL_VALUES_(23)
540 IIUT_DECL_VALUES_(24)
541 IIUT_DECL_VALUES_(25)
542 IIUT_DECL_VALUES_(26)
543 IIUT_DECL_VALUES_(27)
544 IIUT_DECL_VALUES_(28)
545 IIUT_DECL_VALUES_(29)
546 IIUT_DECL_VALUES_(30)
547 IIUT_DECL_VALUES_(31)
548 IIUT_DECL_VALUES_(32)
549 IIUT_DECL_VALUES_(33)
550 IIUT_DECL_VALUES_(34)
551 IIUT_DECL_VALUES_(35)
552 IIUT_DECL_VALUES_(36)
553 IIUT_DECL_VALUES_(37)
554 IIUT_DECL_VALUES_(38)
555 IIUT_DECL_VALUES_(39)
556 IIUT_DECL_VALUES_(40)
557 IIUT_DECL_VALUES_(41)
558 IIUT_DECL_VALUES_(42)
559 IIUT_DECL_VALUES_(43)
560 IIUT_DECL_VALUES_(44)
561 IIUT_DECL_VALUES_(45)
562 IIUT_DECL_VALUES_(46)
563 IIUT_DECL_VALUES_(47)
564 IIUT_DECL_VALUES_(48)
565 IIUT_DECL_VALUES_(49)
566 IIUT_DECL_VALUES_(50)
568 #undef IIUT_DECL_VALUES_
572 #if IUTEST_HAS_CONCAT
576 template<
typename Generator1,
typename Generator2>
577 detail::iuConcatParamHolder<Generator1, Generator2>
Concat(
const Generator1& g1,
const Generator2& g2)
579 return detail::iuConcatParamHolder<Generator1, Generator2>(g1, g2);
583 #if IUTEST_HAS_COMBINE
585 #if IUTEST_HAS_VARIADIC_COMBINE
589 template<
typename ...Generator>
590 detail::iuCartesianProductHolder<Generator...> Combine(
const Generator&... generators)
592 return detail::iuCartesianProductHolder<Generator...>(generators...);
597 #define IIUT_DECL_COMBINE_(n) template< IUTEST_PP_ENUM_PARAMS(n, typename T) > \
598 inline IUTEST_PP_CAT(detail::iuCartesianProductHolder, n)< IUTEST_PP_ENUM_PARAMS(n, T) > \
599 Combine(IUTEST_PP_ENUM_BINARY_PARAMS(n, const T, &t)) { \
600 return IUTEST_PP_CAT(detail::iuCartesianProductHolder, n) \
601 < IUTEST_PP_ENUM_PARAMS(n, T) >(IUTEST_PP_ENUM_PARAMS(n, t)); \
608 IIUT_DECL_COMBINE_(2)
609 IIUT_DECL_COMBINE_(3)
610 IIUT_DECL_COMBINE_(4)
611 IIUT_DECL_COMBINE_(5)
612 IIUT_DECL_COMBINE_(6)
613 IIUT_DECL_COMBINE_(7)
614 IIUT_DECL_COMBINE_(8)
615 IIUT_DECL_COMBINE_(9)
617 #undef IIUT_DECL_COMBINE_
623 #if IUTEST_HAS_PAIRWISE
625 #if IUTEST_HAS_VARIADIC_PAIRWISE
630 template<
typename ...Generator>
631 detail::iuPairwiseHolder<Generator...> Pairwise(
const Generator&... generators)
633 return detail::iuPairwiseHolder<Generator...>(generators...);
638 #define IIUT_DECL_PAIRWISE_(n) template< IUTEST_PP_ENUM_PARAMS(n, typename T) > \
639 inline IUTEST_PP_CAT(detail::iuPairwiseHolder, n)< IUTEST_PP_ENUM_PARAMS(n, T) > \
640 Pairwise(IUTEST_PP_ENUM_BINARY_PARAMS(n, const T, &t)) { \
641 return IUTEST_PP_CAT(detail::iuPairwiseHolder, n) \
642 < IUTEST_PP_ENUM_PARAMS(n, T) >(IUTEST_PP_ENUM_PARAMS(n, t)); \
649 IIUT_DECL_PAIRWISE_(2)
650 IIUT_DECL_PAIRWISE_(3)
651 IIUT_DECL_PAIRWISE_(4)
652 IIUT_DECL_PAIRWISE_(5)
653 IIUT_DECL_PAIRWISE_(6)
654 IIUT_DECL_PAIRWISE_(7)
655 IIUT_DECL_PAIRWISE_(8)
656 IIUT_DECL_PAIRWISE_(9)
658 #undef IIUT_DECL_PAIRWISE__
664 #if IUTEST_HAS_CSVPARAMS
670 detail::iuParamGenerator<T> IUTEST_ATTRIBUTE_UNUSED_ CSV(
const char* path,
char delimiter =
',')
672 return new detail::iuCsvFileParamsGenerator<T>(path, delimiter);
676 detail::iuParamGenerator<T> IUTEST_ATTRIBUTE_UNUSED_ CSV(
const char* relative_path,
const char* test_file,
char delimiter =
',')
678 const char* sep = detail::FindLastPathSeparator(test_file, strlen(test_file));
682 const size_t length =
static_cast<size_t>(::std::distance(test_file, sep));
683 path += ::std::string(test_file, length);
684 path += detail::GetPathSeparator();
686 path += relative_path;
687 return new detail::iuCsvFileParamsGenerator<T>(path, delimiter);
698 #if IUTEST_HAS_ANY_PARAM_TEST
any パラメータテストフィクスチャ
Definition: iutest_param_tests.hpp:353
static const ParamType & GetParam()
パラメータの取得
Definition: iutest_param_tests.hpp:358
パラメータテストインターフェース
Definition: iutest_body.hpp:248
static const ParamType & GetParam()
パラメータの取得
Definition: iutest_body.hpp:259
any
Definition: iutest_any.hpp:34
detail::iuParamGenerator< bool > IUTEST_ATTRIBUTE_UNUSED_ Bool()
真偽値パラメータ
Definition: iutest_param_tests.hpp:413
detail::iuRandomFilterParamGenerator< T, Filter > IUTEST_ATTRIBUTE_UNUSED_ RandomGenerator(const Filter &filter, unsigned int seed=0)
乱数ジェネレータ
Definition: iutest_param_tests.hpp:437
detail::iuConcatParamHolder< Generator1, Generator2 > Concat(const Generator1 &g1, const Generator2 &g2)
値配列パラメータ
Definition: iutest_param_tests.hpp:578
detail::iuValuesParamsGeneratorHolder< StdGenerator > IUTEST_ATTRIBUTE_UNUSED_ ValuesGen(size_t num, const StdGenerator &generator)
ユーザー定義ジェネレータ利用パラメータ
Definition: iutest_param_tests.hpp:425
detail::iuParamGenerator< typename Container::value_type > IUTEST_ATTRIBUTE_UNUSED_ ValuesIn(Container container)
値配列パラメータ
Definition: iutest_param_tests.hpp:462
detail::iuRandomParamsHolder IUTEST_ATTRIBUTE_UNUSED_ RandomValues(size_t num, unsigned int seed=0)
乱数値パラメータ
Definition: iutest_param_tests.hpp:452
detail::iuParamGenerator< T > IUTEST_ATTRIBUTE_UNUSED_ Range(T begin, T end, T step=static_cast< T >(1))
範囲パラメータ
Definition: iutest_param_tests.hpp:405
::iutest::TestWithAny iuTestWithAny
any param test fixture
Definition: iutest_param_tests.hpp:704
iris unit test any object
#define IUTEST_CXX_FINAL
final definition
Definition: iutest_compiler.hpp:756
#define IUTEST_CXX_OVERRIDE
override definition
Definition: iutest_compiler.hpp:747
iutest root namespace
Definition: iutest_charcode.hpp:33
std::string PrintToString(const T &v)
文字列化
Definition: iutest_printers.hpp:767
void(* SetUpMethod)()
SetUp 関数型
Definition: iutest_defs.hpp:523
void(* TearDownMethod)()
TearDown 関数型
Definition: iutest_defs.hpp:524
internal::TypeId TestTypeId
テスト識別型
Definition: iutest_defs.hpp:521