summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gtest.cc9
-rwxr-xr-xtest/gtest_output_test.py20
2 files changed, 24 insertions, 5 deletions
diff --git a/src/gtest.cc b/src/gtest.cc
index 8ca6ac8..8d2d2a2 100644
--- a/src/gtest.cc
+++ b/src/gtest.cc
@@ -1546,16 +1546,17 @@ bool String::CaseInsensitiveWideCStringEquals(const wchar_t* lhs,
#ifdef GTEST_OS_WINDOWS
return _wcsicmp(lhs, rhs) == 0;
-#elif defined(GTEST_OS_MAC)
- // Mac OS X doesn't define wcscasecmp.
+#elif defined(GTEST_OS_LINUX)
+ return wcscasecmp(lhs, rhs) == 0;
+#else
+ // Mac OS X and Cygwin don't define wcscasecmp. Other unknown OSes
+ // may not define it either.
wint_t left, right;
do {
left = towlower(*lhs++);
right = towlower(*rhs++);
} while (left && left == right);
return left == right;
-#else
- return wcscasecmp(lhs, rhs) == 0;
#endif // OS selector
}
diff --git a/test/gtest_output_test.py b/test/gtest_output_test.py
index f91050c..68cfe5e 100755
--- a/test/gtest_output_test.py
+++ b/test/gtest_output_test.py
@@ -104,6 +104,20 @@ def RemoveTime(output):
return re.sub(r'\(\d+ ms', '(? ms', output)
+def RemoveTestCounts(output):
+ """Removes test counts from a Google Test program's output."""
+
+ output = re.sub(r'\d+ tests from \d+ test cases',
+ '? tests from ? test cases', output)
+ return re.sub(r'\d+ tests\.', '? tests.', output)
+
+
+def RemoveDeathTests(output):
+ """Removes death test information from a Google Test program's output."""
+
+ return re.sub(r'\n.*DeathTest.*', '', output)
+
+
def NormalizeOutput(output):
"""Normalizes output (the output of gtest_output_test_.exe)."""
@@ -182,7 +196,11 @@ class GTestOutputTest(unittest.TestCase):
golden = golden_file.read()
golden_file.close()
- self.assertEquals(golden, output)
+ # We want the test to pass regardless of death tests being
+ # supported or not.
+ self.assert_(output == golden or
+ RemoveTestCounts(output) ==
+ RemoveTestCounts(RemoveDeathTests(golden)))
if __name__ == '__main__':