30#include "test/gtest-typed-test_test.h"
36#include "gtest/gtest.h"
39GTEST_DISABLE_MSC_WARNINGS_PUSH_(4127 )
52 static void SetUpTestSuite() { shared_ =
new T(5); }
54 static void TearDownTestSuite() {
64 typedef std::vector<T> Vector;
65 typedef std::set<int> IntSet;
71 void SetUp()
override {
76 void TearDown()
override {
99 EXPECT_EQ(5, *TestFixture::shared_);
103 typename TestFixture::Vector empty;
104 EXPECT_EQ(0U, empty.size());
106 typename TestFixture::IntSet empty2;
107 EXPECT_EQ(0U, empty2.size());
111 EXPECT_EQ(2, this->value_);
116TYPED_TEST(
CommonTest, ValuesAreStillCorrect) {
119 ASSERT_TRUE(this->shared_ !=
nullptr);
120 EXPECT_EQ(5, *this->shared_);
123 EXPECT_EQ(
static_cast<TypeParam
>(2), this->value_);
158TYPED_TEST(
NumericTest, DefaultIsZero) { EXPECT_EQ(0, TypeParam()); }
168 template <
typename T>
169 static std::string GetName(
int i) {
170 if (std::is_same<T, char>::value) {
171 return std::string(
"char") + ::testing::PrintToString(i);
173 if (std::is_same<T, int>::value) {
174 return std::string(
"int") + ::testing::PrintToString(i);
182 if (std::is_same<TypeParam, char>::value) {
183 EXPECT_STREQ(::testing::UnitTest::GetInstance()
184 ->current_test_info()
186 "TypedTestWithNames/char0");
188 if (std::is_same<TypeParam, int>::value) {
189 EXPECT_STREQ(::testing::UnitTest::GetInstance()
190 ->current_test_info()
192 "TypedTestWithNames/int1");
197using testing::internal::TypedTestSuitePState;
203 void SetUp()
override {
204 state_.AddTestName(
"foo.cc", 0,
"FooTest",
"A");
205 state_.AddTestName(
"foo.cc", 0,
"FooTest",
"B");
206 state_.AddTestName(
"foo.cc", 0,
"FooTest",
"C");
209 TypedTestSuitePState state_;
213 const char* tests =
"A, B, C";
215 state_.VerifyRegisteredTestNames(
"Suite",
"foo.cc", 1, tests));
221 const char* tests =
"A,C, B";
223 state_.VerifyRegisteredTestNames(
"Suite",
"foo.cc", 1, tests));
229 EXPECT_DEATH_IF_SUPPORTED(
230 state_.VerifyRegisteredTestNames(
"Suite",
"foo.cc", 1,
"A, B, A, C"),
231 "foo\\.cc.1.?: Test A is listed more than once\\.");
235 EXPECT_DEATH_IF_SUPPORTED(
236 state_.VerifyRegisteredTestNames(
"Suite",
"foo.cc", 1,
"A, B, C, D"),
237 "foo\\.cc.1.?: No test named D can be found in this test suite\\.");
241 EXPECT_DEATH_IF_SUPPORTED(
242 state_.VerifyRegisteredTestNames(
"Suite",
"foo.cc", 1,
"A, C"),
243 "foo\\.cc.1.?: You forgot to list test B\\.");
249 state_.VerifyRegisteredTestNames(
"Suite",
"foo.cc", 1,
"A, B, C");
250 EXPECT_DEATH_IF_SUPPORTED(
251 state_.AddTestName(
"foo.cc", 2,
"FooTest",
"D"),
252 "foo\\.cc.2.?: Test D must be defined before REGISTER_TYPED_TEST_SUITE_P"
253 "\\(FooTest, \\.\\.\\.\\)\\.");
267 EXPECT_EQ(5, *TestFixture::shared_);
271 EXPECT_EQ(2, this->value_);
279 ASSERT_TRUE(this->shared_ !=
nullptr);
280 EXPECT_EQ(5, *this->shared_);
281 EXPECT_EQ(2, this->value_);
284REGISTER_TYPED_TEST_SUITE_P(
DerivedTest, ValuesAreCorrect,
285 ValuesAreStillCorrect);
298 if (std::is_same<TypeParam, char>::value) {
299 EXPECT_STREQ(::testing::UnitTest::GetInstance()
300 ->current_test_info()
302 "CustomName/TypeParametrizedTestWithNames/parChar0");
304 if (std::is_same<TypeParam, int>::value) {
305 EXPECT_STREQ(::testing::UnitTest::GetInstance()
306 ->current_test_info()
308 "CustomName/TypeParametrizedTestWithNames/parInt1");
316 template <
typename T>
317 static std::string GetName(
int i) {
318 if (std::is_same<T, char>::value) {
319 return std::string(
"parChar") + ::testing::PrintToString(i);
321 if (std::is_same<T, int>::value) {
322 return std::string(
"parInt") + ::testing::PrintToString(i);
340using IntAfterTypedTestSuiteP = int;
347using IntBeforeRegisterTypedTestSuiteP = int;
364IntAfterTypedTestSuiteP after = 0;
365IntBeforeRegisterTypedTestSuiteP before = 0;
369INSTANTIATE_TYPED_TEST_SUITE_P(Int,
TypedTestP1,
int);
392TYPED_TEST_P(
NumericTest, DefaultIsZero) { EXPECT_EQ(0, TypeParam()); }
394TYPED_TEST_P(NumericTest, ZeroIsLessThanOne) {
395 EXPECT_LT(TypeParam(0), TypeParam(1));
398REGISTER_TYPED_TEST_SUITE_P(NumericTest, DefaultIsZero, ZeroIsLessThanOne);
400INSTANTIATE_TYPED_TEST_SUITE_P(My, NumericTest, NumericTypes);
402static const char* GetTestName() {
403 return testing::UnitTest::GetInstance()->current_test_info()->name();
409TYPED_TEST_P(
TrimmedTest, Test1) { EXPECT_STREQ(
"Test1", GetTestName()); }
410TYPED_TEST_P(TrimmedTest, Test2) { EXPECT_STREQ(
"Test2", GetTestName()); }
411TYPED_TEST_P(TrimmedTest, Test3) { EXPECT_STREQ(
"Test3", GetTestName()); }
412TYPED_TEST_P(TrimmedTest, Test4) { EXPECT_STREQ(
"Test4", GetTestName()); }
413TYPED_TEST_P(TrimmedTest, Test5) { EXPECT_STREQ(
"Test5", GetTestName()); }
414REGISTER_TYPED_TEST_SUITE_P(TrimmedTest, Test1, Test2, Test3, Test4,
416template <
typename T1,
typename T2>
Definition gtest-typed-test_test.cc:48
Definition gtest-typed-test_test.h:43
Definition gtest-typed-test_test.cc:260
Definition gtest-typed-test_test.cc:314
Definition gtest-typed-test_test.cc:293
Definition gtest-typed-test_test.cc:130
Definition gtest-typed-test_test.cc:138
Definition googletest-output-test_.cc:714
Definition gtest-typed-test_test.cc:334
Definition gtest-typed-test_test.cc:352
Definition gtest-typed-test_test.cc:201
Definition googletest-output-test_.cc:712
Definition gtest-typed-test_test.cc:153
Definition gtest-typed-test_test.cc:388
Definition gtest-typed-test_test.cc:407
Definition gtest-typed-test_test.cc:417
Definition gtest-type-util.h:156