aboutsummaryrefslogtreecommitdiffstats
path: root/test/gtest-param-test_test.cc
diff options
context:
space:
mode:
authorzhanyong.wan <zhanyong.wan@861a406c-534a-0410-8894-cb66d6ee9925>2010-12-06 22:18:59 +0000
committerzhanyong.wan <zhanyong.wan@861a406c-534a-0410-8894-cb66d6ee9925>2010-12-06 22:18:59 +0000
commit915129ee6fd4d9c5564aafedb238a237592a3d42 (patch)
tree2995f382edd65f2a7e095a8868d45f22cb60d063 /test/gtest-param-test_test.cc
parentb5eb6ed9e27b7bf80a406e4a38ffe42db43889cc (diff)
downloadgoogletest-915129ee6fd4d9c5564aafedb238a237592a3d42.tar.gz
googletest-915129ee6fd4d9c5564aafedb238a237592a3d42.tar.bz2
googletest-915129ee6fd4d9c5564aafedb238a237592a3d42.zip
Allows a value-parameterized test fixture to derive from Test and WithParamInterface<T> separately; contributed by Matt Austern.
Diffstat (limited to 'test/gtest-param-test_test.cc')
-rw-r--r--test/gtest-param-test_test.cc33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/gtest-param-test_test.cc b/test/gtest-param-test_test.cc
index c920f4fd..acd269bc 100644
--- a/test/gtest-param-test_test.cc
+++ b/test/gtest-param-test_test.cc
@@ -836,6 +836,39 @@ INSTANTIATE_TEST_CASE_P(InstantiationWithComments,
CommentTest,
Values(Unstreamable(1)));
+// Verify that we can create a hierarchy of test fixtures, where the base
+// class fixture is not parameterized and the derived class is. In this case
+// ParameterizedDerivedTest inherits from NonParameterizedBaseTest. We
+// perform simple tests on both.
+class NonParameterizedBaseTest : public ::testing::Test {
+ public:
+ NonParameterizedBaseTest() : n_(17) { }
+ protected:
+ int n_;
+};
+
+class ParameterizedDerivedTest : public NonParameterizedBaseTest,
+ public ::testing::WithParamInterface<int> {
+ protected:
+ ParameterizedDerivedTest() : count_(0) { }
+ int count_;
+ static int global_count_;
+};
+
+int ParameterizedDerivedTest::global_count_ = 0;
+
+TEST_F(NonParameterizedBaseTest, FixtureIsInitialized) {
+ EXPECT_EQ(17, n_);
+}
+
+TEST_P(ParameterizedDerivedTest, SeesSequence) {
+ EXPECT_EQ(17, n_);
+ EXPECT_EQ(0, count_++);
+ EXPECT_EQ(GetParam(), global_count_++);
+}
+
+INSTANTIATE_TEST_CASE_P(RangeZeroToFive, ParameterizedDerivedTest, Range(0, 5));
+
#endif // GTEST_HAS_PARAM_TEST
TEST(CompileTest, CombineIsDefinedOnlyWhenGtestHasParamTestIsDefined) {