summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhanyong.wan <zhanyong.wan@861a406c-534a-0410-8894-cb66d6ee9925>2009-03-11 18:31:26 +0000
committerzhanyong.wan <zhanyong.wan@861a406c-534a-0410-8894-cb66d6ee9925>2009-03-11 18:31:26 +0000
commitdd617c1bc8e67a915068e8462881fbc5e2f6ae30 (patch)
tree75fea96237260f31783dea6238355501dd6e32fd
parentb0fe69fcbfaa44ae05f6f2429d9c4bbb326b5ea5 (diff)
downloadgoogletest-dd617c1bc8e67a915068e8462881fbc5e2f6ae30.tar.gz
Fixes death-test-related tests on Windows, by Vlad Losev.
git-svn-id: http://googletest.googlecode.com/svn/trunk@201 861a406c-534a-0410-8894-cb66d6ee9925
-rw-r--r--include/gtest/internal/gtest-internal.h1
-rw-r--r--include/gtest/internal/gtest-port.h2
-rw-r--r--src/gtest-internal-inl.h7
-rw-r--r--src/gtest-typed-test.cc1
-rw-r--r--test/gtest-death-test_test.cc9
-rw-r--r--test/gtest-typed-test_test.cc8
6 files changed, 17 insertions, 11 deletions
diff --git a/include/gtest/internal/gtest-internal.h b/include/gtest/internal/gtest-internal.h
index 5908b76..f61d502 100644
--- a/include/gtest/internal/gtest-internal.h
+++ b/include/gtest/internal/gtest-internal.h
@@ -616,6 +616,7 @@ class TypedTestCasePState {
fprintf(stderr, "%s Test %s must be defined before "
"REGISTER_TYPED_TEST_CASE_P(%s, ...).\n",
FormatFileLocation(file, line).c_str(), test_name, case_name);
+ fflush(stderr);
abort();
}
defined_test_names_.insert(test_name);
diff --git a/include/gtest/internal/gtest-port.h b/include/gtest/internal/gtest-port.h
index c93ebd8..0b4e721 100644
--- a/include/gtest/internal/gtest-port.h
+++ b/include/gtest/internal/gtest-port.h
@@ -198,7 +198,7 @@
// simple regex implementation instead.
#define GTEST_USES_SIMPLE_RE 1
-#endif // GTEST_OS_LINUX
+#endif // GTEST_OS_CYGWIN || GTEST_OS_LINUX || GTEST_OS_MAC
// Defines GTEST_HAS_EXCEPTIONS to 1 if exceptions are enabled, or 0
// otherwise.
diff --git a/src/gtest-internal-inl.h b/src/gtest-internal-inl.h
index de5124d..d079a3e 100644
--- a/src/gtest-internal-inl.h
+++ b/src/gtest-internal-inl.h
@@ -49,16 +49,17 @@
#include <stddef.h>
#include <stdlib.h> // For strtoll/_strtoul64.
+#include <string>
+
+#include <gtest/internal/gtest-port.h>
+
#if GTEST_OS_WINDOWS
#include <windows.h> // For DWORD.
#endif // GTEST_OS_WINDOWS
-#include <gtest/internal/gtest-port.h>
#include <gtest/gtest.h>
#include <gtest/gtest-spi.h>
-#include <string>
-
namespace testing {
// Declares the flags.
diff --git a/src/gtest-typed-test.cc b/src/gtest-typed-test.cc
index cb91f2b..e45e2ab 100644
--- a/src/gtest-typed-test.cc
+++ b/src/gtest-typed-test.cc
@@ -85,6 +85,7 @@ const char* TypedTestCasePState::VerifyRegisteredTestNames(
if (errors_str != "") {
fprintf(stderr, "%s %s", FormatFileLocation(file, line).c_str(),
errors_str.c_str());
+ fflush(stderr);
abort();
}
diff --git a/test/gtest-death-test_test.cc b/test/gtest-death-test_test.cc
index 4151ef0..e794a09 100644
--- a/test/gtest-death-test_test.cc
+++ b/test/gtest-death-test_test.cc
@@ -46,6 +46,7 @@
#include <limits.h>
#include <signal.h>
#include <stdio.h>
+
#include <gtest/gtest-spi.h>
// Indicates that this translation unit is part of Google Test's
@@ -284,14 +285,16 @@ void DieWithEmbeddedNul() {
_exit(1);
}
+#if GTEST_USES_PCRE
// Tests that EXPECT_DEATH and ASSERT_DEATH work when the error
// message has a NUL character in it.
-TEST_F(TestForDeathTest, DISABLED_EmbeddedNulInMessage) {
+TEST_F(TestForDeathTest, EmbeddedNulInMessage) {
// TODO(wan@google.com): <regex.h> doesn't support matching strings
// with embedded NUL characters - find a way to workaround it.
EXPECT_DEATH(DieWithEmbeddedNul(), "w.*ld");
ASSERT_DEATH(DieWithEmbeddedNul(), "w.*ld");
}
+#endif // GTEST_USES_PCRE
// Tests that death test macros expand to code which interacts well with switch
// statements.
@@ -594,7 +597,7 @@ void ExpectDebugDeathHelper(bool* aborted) {
}
#if GTEST_OS_WINDOWS
-TEST(TestForPopUps, DoesNotShowPopUpOnAbort) {
+TEST(PopUpDeathTest, DoesNotShowPopUpOnAbort) {
printf("This test should be considered failing if it shows "
"any pop-up dialogs.\n");
fflush(stdout);
@@ -605,7 +608,7 @@ TEST(TestForPopUps, DoesNotShowPopUpOnAbort) {
}, "");
}
-TEST(TestForPopUps, DoesNotShowPopUpOnThrow) {
+TEST(PopUpDeathTest, DoesNotShowPopUpOnThrow) {
printf("This test should be considered failing if it shows "
"any pop-up dialogs.\n");
fflush(stdout);
diff --git a/test/gtest-typed-test_test.cc b/test/gtest-typed-test_test.cc
index 9ba9675..eb921a0 100644
--- a/test/gtest-typed-test_test.cc
+++ b/test/gtest-typed-test_test.cc
@@ -205,19 +205,19 @@ typedef TypedTestCasePStateTest TypedTestCasePStateDeathTest;
TEST_F(TypedTestCasePStateDeathTest, DetectsDuplicates) {
EXPECT_DEATH(
state_.VerifyRegisteredTestNames("foo.cc", 1, "A, B, A, C"),
- "foo\\.cc:1: Test A is listed more than once\\.");
+ "foo\\.cc.1.?: Test A is listed more than once\\.");
}
TEST_F(TypedTestCasePStateDeathTest, DetectsExtraTest) {
EXPECT_DEATH(
state_.VerifyRegisteredTestNames("foo.cc", 1, "A, B, C, D"),
- "foo\\.cc:1: No test named D can be found in this test case\\.");
+ "foo\\.cc.1.?: No test named D can be found in this test case\\.");
}
TEST_F(TypedTestCasePStateDeathTest, DetectsMissedTest) {
EXPECT_DEATH(
state_.VerifyRegisteredTestNames("foo.cc", 1, "A, C"),
- "foo\\.cc:1: You forgot to list test B\\.");
+ "foo\\.cc.1.?: You forgot to list test B\\.");
}
// Tests that defining a test for a parameterized test case generates
@@ -226,7 +226,7 @@ TEST_F(TypedTestCasePStateDeathTest, DetectsTestAfterRegistration) {
state_.VerifyRegisteredTestNames("foo.cc", 1, "A, B, C");
EXPECT_DEATH(
state_.AddTestName("foo.cc", 2, "FooTest", "D"),
- "foo\\.cc:2: Test D must be defined before REGISTER_TYPED_TEST_CASE_P"
+ "foo\\.cc.2.?: Test D must be defined before REGISTER_TYPED_TEST_CASE_P"
"\\(FooTest, \\.\\.\\.\\)\\.");
}