diff options
-rw-r--r-- | src/gtest.cc | 9 | ||||
-rwxr-xr-x | test/gtest_output_test.py | 20 |
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__': |