aboutsummaryrefslogtreecommitdiffstats
path: root/test/gtest_repeat_test.cc
diff options
context:
space:
mode:
authorvladlosev <vladlosev@861a406c-534a-0410-8894-cb66d6ee9925>2008-11-20 01:40:35 +0000
committervladlosev <vladlosev@861a406c-534a-0410-8894-cb66d6ee9925>2008-11-20 01:40:35 +0000
commit3d7042176307f0d7700a3640f3b3bcc8790b8fcd (patch)
treeec4a9020570acc6d09366e5b305b9d162c1a6026 /test/gtest_repeat_test.cc
parentb6a296d0f7caff7140f422e49f5398c9ef17504d (diff)
downloadgoogletest-3d7042176307f0d7700a3640f3b3bcc8790b8fcd.tar.gz
googletest-3d7042176307f0d7700a3640f3b3bcc8790b8fcd.tar.bz2
googletest-3d7042176307f0d7700a3640f3b3bcc8790b8fcd.zip
Value-parameterized tests and many bugfixes
Diffstat (limited to 'test/gtest_repeat_test.cc')
-rw-r--r--test/gtest_repeat_test.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/gtest_repeat_test.cc b/test/gtest_repeat_test.cc
index 80287373..65298bfa 100644
--- a/test/gtest_repeat_test.cc
+++ b/test/gtest_repeat_test.cc
@@ -121,6 +121,24 @@ TEST(BarDeathTest, ThreadSafeAndFast) {
#endif // GTEST_HAS_DEATH_TEST
}
+#ifdef GTEST_HAS_PARAM_TEST
+int g_param_test_count = 0;
+
+const int kNumberOfParamTests = 10;
+
+class MyParamTest : public testing::TestWithParam<int> {};
+
+TEST_P(MyParamTest, ShouldPass) {
+ // TODO(vladl@google.com): Make parameter value checking robust
+ // WRT order of tests.
+ GTEST_CHECK_INT_EQ_(g_param_test_count % kNumberOfParamTests, GetParam());
+ g_param_test_count++;
+}
+INSTANTIATE_TEST_CASE_P(MyParamSequence,
+ MyParamTest,
+ testing::Range(0, kNumberOfParamTests));
+#endif // GTEST_HAS_PARAM_TEST
+
// Resets the count for each test.
void ResetCounts() {
g_environment_set_up_count = 0;
@@ -128,6 +146,9 @@ void ResetCounts() {
g_should_fail_count = 0;
g_should_pass_count = 0;
g_death_test_count = 0;
+#ifdef GTEST_HAS_PARAM_TEST
+ g_param_test_count = 0;
+#endif // GTEST_HAS_PARAM_TEST
}
// Checks that the count for each test is expected.
@@ -137,6 +158,9 @@ void CheckCounts(int expected) {
GTEST_CHECK_INT_EQ_(expected, g_should_fail_count);
GTEST_CHECK_INT_EQ_(expected, g_should_pass_count);
GTEST_CHECK_INT_EQ_(expected, g_death_test_count);
+#ifdef GTEST_HAS_PARAM_TEST
+ GTEST_CHECK_INT_EQ_(expected * kNumberOfParamTests, g_param_test_count);
+#endif // GTEST_HAS_PARAM_TEST
}
// Tests the behavior of Google Test when --gtest_repeat is not specified.
@@ -179,6 +203,9 @@ void TestRepeatWithFilterForSuccessfulTests(int repeat) {
GTEST_CHECK_INT_EQ_(0, g_should_fail_count);
GTEST_CHECK_INT_EQ_(repeat, g_should_pass_count);
GTEST_CHECK_INT_EQ_(repeat, g_death_test_count);
+#ifdef GTEST_HAS_PARAM_TEST
+ GTEST_CHECK_INT_EQ_(repeat * kNumberOfParamTests, g_param_test_count);
+#endif // GTEST_HAS_PARAM_TEST
}
// Tests using --gtest_repeat when --gtest_filter specifies a set of
@@ -194,6 +221,9 @@ void TestRepeatWithFilterForFailedTests(int repeat) {
GTEST_CHECK_INT_EQ_(repeat, g_should_fail_count);
GTEST_CHECK_INT_EQ_(0, g_should_pass_count);
GTEST_CHECK_INT_EQ_(0, g_death_test_count);
+#ifdef GTEST_HAS_PARAM_TEST
+ GTEST_CHECK_INT_EQ_(0, g_param_test_count);
+#endif // GTEST_HAS_PARAM_TEST
}
} // namespace