35 #include "test/gtest-typed-test_test.h" 36 #include "gtest/gtest.h" 87 #if GTEST_HAS_TYPED_TEST 94 typedef Types<char, int> TwoTypes;
104 typename TestFixture::Vector empty;
107 typename TestFixture::IntSet empty2;
130 template <
typename T>
131 class TypedTest1 :
public Test {
139 template <
typename T>
140 class TypedTest2 :
public Test {
155 template <
typename T>
156 class NumericTest :
public Test {
159 typedef Types<int, long> NumericTypes;
168 #endif // GTEST_HAS_TYPED_TEST 171 #if GTEST_HAS_TYPED_TEST_P 174 using testing::internal::TypedTestCasePState;
178 class TypedTestCasePStateTest :
public Test {
180 virtual void SetUp() {
181 state_.AddTestName(
"foo.cc", 0,
"FooTest",
"A");
182 state_.AddTestName(
"foo.cc", 0,
"FooTest",
"B");
183 state_.AddTestName(
"foo.cc", 0,
"FooTest",
"C");
186 TypedTestCasePState state_;
189 TEST_F(TypedTestCasePStateTest, SucceedsForMatchingList) {
190 const char* tests =
"A, B, C";
192 state_.VerifyRegisteredTestNames(
"foo.cc", 1, tests));
197 TEST_F(TypedTestCasePStateTest, IgnoresOrderAndSpaces) {
198 const char* tests =
"A,C, B";
200 state_.VerifyRegisteredTestNames(
"foo.cc", 1, tests));
203 typedef TypedTestCasePStateTest TypedTestCasePStateDeathTest;
205 TEST_F(TypedTestCasePStateDeathTest, DetectsDuplicates) {
207 state_.VerifyRegisteredTestNames(
"foo.cc", 1,
"A, B, A, C"),
208 "foo\\.cc.1.?: Test A is listed more than once\\.");
211 TEST_F(TypedTestCasePStateDeathTest, DetectsExtraTest) {
213 state_.VerifyRegisteredTestNames(
"foo.cc", 1,
"A, B, C, D"),
214 "foo\\.cc.1.?: No test named D can be found in this test case\\.");
217 TEST_F(TypedTestCasePStateDeathTest, DetectsMissedTest) {
219 state_.VerifyRegisteredTestNames(
"foo.cc", 1,
"A, C"),
220 "foo\\.cc.1.?: You forgot to list test B\\.");
225 TEST_F(TypedTestCasePStateDeathTest, DetectsTestAfterRegistration) {
226 state_.VerifyRegisteredTestNames(
"foo.cc", 1,
"A, B, C");
228 state_.AddTestName(
"foo.cc", 2,
"FooTest",
"D"),
229 "foo\\.cc.2.?: Test D must be defined before REGISTER_TYPED_TEST_CASE_P" 230 "\\(FooTest, \\.\\.\\.\\)\\.");
236 template <
typename T>
263 ValuesAreCorrect, ValuesAreStillCorrect);
265 typedef Types<short, long> MyTwoTypes;
271 template <
typename T>
272 class TypedTestP1 :
public Test {
279 typedef int IntAfterTypedTestCaseP;
286 typedef int IntBeforeRegisterTypedTestCaseP;
290 template <
typename T>
291 class TypedTestP2 :
public Test {
304 IntAfterTypedTestCaseP after = 0;
305 IntBeforeRegisterTypedTestCaseP before = 0;
319 typedef Types<std::vector<double>, std::set<char> > MyContainers;
327 template <
typename T>
328 class NumericTest :
public Test {
342 DefaultIsZero, ZeroIsLessThanOne);
343 typedef Types<int, double> NumericTypes;
348 #endif // GTEST_HAS_TYPED_TEST_P 350 #if !defined(GTEST_HAS_TYPED_TEST) && !defined(GTEST_HAS_TYPED_TEST_P) 358 TEST(DummyTest, TypedTestsAreNotSupportedOnThisPlatform) {}
360 #endif // #if !defined(GTEST_HAS_TYPED_TEST) && !defined(GTEST_HAS_TYPED_TEST_P) TYPED_TEST_CASE_P(TypeParamTest)
TYPED_TEST_P(TypeParamTest, TestA)
#define EXPECT_LT(val1, val2)
REGISTER_TYPED_TEST_CASE_P(TypeParamTest, TestA, TestB)
TYPED_TEST_CASE(TypedTest, MyTypes)
INSTANTIATE_TYPED_TEST_CASE_P(My, TypeParamTest, MyTypes)
#define TEST_F(test_fixture, test_name)
static void TearDownTestCase()
#define ASSERT_TRUE(condition)
TEST(DummyTest, TypedTestsAreNotSupportedOnThisPlatform)
FloatingPoint< double > Double
TYPED_TEST(TypedTest, TestA)
static void SetUpTestCase()
#define EXPECT_EQ(expected, actual)
#define EXPECT_DEATH_IF_SUPPORTED(statement, regex)