Mercurial > hg > CbC > CbC_llvm
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 >est_##prefix##test_case_name##_EvalGenerator_, \ | 1434 __FILE__, __LINE__))->AddTestCaseInstantiation(\ |
1420 __FILE__, __LINE__) | 1435 #prefix, \ |
1436 >est_##prefix##test_case_name##_EvalGenerator_, \ | |
1437 >est_##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 |