comparison utils/unittest/googletest/include/gtest/gtest-param-test.h @ 121:803732b1fca8

LLVM 5.0
author kono
date Fri, 27 Oct 2017 17:07:41 +0900
parents 95c75e76d11b
children
comparison
equal deleted inserted replaced
120:1172e4bd9c6f 121:803732b1fca8
188 // scripts/fuse_gtest.py depends on gtest's own header being #included 188 // scripts/fuse_gtest.py depends on gtest's own header being #included
189 // *unconditionally*. Therefore these #includes cannot be moved 189 // *unconditionally*. Therefore these #includes cannot be moved
190 // inside #if GTEST_HAS_PARAM_TEST. 190 // inside #if GTEST_HAS_PARAM_TEST.
191 #include "gtest/internal/gtest-internal.h" 191 #include "gtest/internal/gtest-internal.h"
192 #include "gtest/internal/gtest-param-util.h" 192 #include "gtest/internal/gtest-param-util.h"
193 #include "gtest/internal/gtest-param-util-generated.h"
193 194
194 #if GTEST_HAS_PARAM_TEST 195 #if GTEST_HAS_PARAM_TEST
195 196
196 namespace testing { 197 namespace testing {
197 198
322 internal::ParamGenerator<typename Container::value_type> ValuesIn( 323 internal::ParamGenerator<typename Container::value_type> ValuesIn(
323 const Container& container) { 324 const Container& container) {
324 return ValuesIn(container.begin(), container.end()); 325 return ValuesIn(container.begin(), container.end());
325 } 326 }
326 327
327 } // namespace testing
328
329 #include <gtest/internal/gtest-param-util-generated.h>
330
331 namespace testing {
332
333 // Values() allows generating tests from explicitly specified list of 328 // Values() allows generating tests from explicitly specified list of
334 // parameters. 329 // parameters.
335 // 330 //
336 // Synopsis: 331 // Synopsis:
337 // Values(T v1, T v2, ..., T vN) 332 // Values(T v1, T v2, ..., T vN)
1260 // 1255 //
1261 // This will instantiate tests in FlagDependentTest with all variations of two 1256 // This will instantiate tests in FlagDependentTest with all variations of two
1262 // Boolean flags: 1257 // Boolean flags:
1263 // 1258 //
1264 // class FlagDependentTest 1259 // class FlagDependentTest
1265 // : public testing::TestWithParam<tuple(bool, bool)> > { 1260 // : public testing::TestWithParam<tuple<bool, bool> > {
1266 // virtual void SetUp() { 1261 // virtual void SetUp() {
1267 // // Assigns external_flag_1 and external_flag_2 values from the tuple. 1262 // // Assigns external_flag_1 and external_flag_2 values from the tuple.
1268 // tie(external_flag_1, external_flag_2) = GetParam(); 1263 // tie(external_flag_1, external_flag_2) = GetParam();
1269 // } 1264 // }
1270 // }; 1265 // };
1390 virtual void TestBody(); \ 1385 virtual void TestBody(); \
1391 private: \ 1386 private: \
1392 static int AddToRegistry() { \ 1387 static int AddToRegistry() { \
1393 ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ 1388 ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
1394 GetTestCasePatternHolder<test_case_name>(\ 1389 GetTestCasePatternHolder<test_case_name>(\
1395 #test_case_name, __FILE__, __LINE__)->AddTestPattern(\ 1390 #test_case_name, \
1396 #test_case_name, \ 1391 ::testing::internal::CodeLocation(\
1397 #test_name, \ 1392 __FILE__, __LINE__))->AddTestPattern(\
1398 new ::testing::internal::TestMetaFactory< \ 1393 #test_case_name, \
1399 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>()); \ 1394 #test_name, \
1395 new ::testing::internal::TestMetaFactory< \
1396 GTEST_TEST_CLASS_NAME_(\
1397 test_case_name, test_name)>()); \
1400 return 0; \ 1398 return 0; \
1401 } \ 1399 } \
1402 static int gtest_registering_dummy_; \ 1400 static int gtest_registering_dummy_ GTEST_ATTRIBUTE_UNUSED_; \
1403 GTEST_DISALLOW_COPY_AND_ASSIGN_(\ 1401 GTEST_DISALLOW_COPY_AND_ASSIGN_(\
1404 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \ 1402 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \
1405 }; \ 1403 }; \
1406 int GTEST_TEST_CLASS_NAME_(test_case_name, \ 1404 int GTEST_TEST_CLASS_NAME_(test_case_name, \
1407 test_name)::gtest_registering_dummy_ = \ 1405 test_name)::gtest_registering_dummy_ = \
1408 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \ 1406 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \
1409 void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() 1407 void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody()
1410 1408
1411 # define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator) \ 1409 // The optional last argument to INSTANTIATE_TEST_CASE_P allows the user
1410 // to specify a function or functor that generates custom test name suffixes
1411 // based on the test parameters. The function should accept one argument of
1412 // type testing::TestParamInfo<class ParamType>, and return std::string.
1413 //
1414 // testing::PrintToStringParamName is a builtin test suffix generator that
1415 // returns the value of testing::PrintToString(GetParam()). It does not work
1416 // for std::string or C strings.
1417 //
1418 // Note: test names must be non-empty, unique, and may only contain ASCII
1419 // alphanumeric characters or underscore.
1420
1421 # define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator, ...) \
1412 ::testing::internal::ParamGenerator<test_case_name::ParamType> \ 1422 ::testing::internal::ParamGenerator<test_case_name::ParamType> \
1413 gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \ 1423 gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \
1414 int gtest_##prefix##test_case_name##_dummy_ = \ 1424 ::std::string gtest_##prefix##test_case_name##_EvalGenerateName_( \
1425 const ::testing::TestParamInfo<test_case_name::ParamType>& info) { \
1426 return ::testing::internal::GetParamNameGen<test_case_name::ParamType> \
1427 (__VA_ARGS__)(info); \
1428 } \
1429 int gtest_##prefix##test_case_name##_dummy_ GTEST_ATTRIBUTE_UNUSED_ = \
1415 ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ 1430 ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
1416 GetTestCasePatternHolder<test_case_name>(\ 1431 GetTestCasePatternHolder<test_case_name>(\
1417 #test_case_name, __FILE__, __LINE__)->AddTestCaseInstantiation(\ 1432 #test_case_name, \
1418 #prefix, \ 1433 ::testing::internal::CodeLocation(\
1419 &gtest_##prefix##test_case_name##_EvalGenerator_, \ 1434 __FILE__, __LINE__))->AddTestCaseInstantiation(\
1420 __FILE__, __LINE__) 1435 #prefix, \
1436 &gtest_##prefix##test_case_name##_EvalGenerator_, \
1437 &gtest_##prefix##test_case_name##_EvalGenerateName_, \
1438 __FILE__, __LINE__)
1421 1439
1422 } // namespace testing 1440 } // namespace testing
1423 1441
1424 #endif // GTEST_HAS_PARAM_TEST 1442 #endif // GTEST_HAS_PARAM_TEST
1425 1443