From f6b0dc0b408f38bb04079b14198d6bdf703e5e56 Mon Sep 17 00:00:00 2001 From: shiqian Date: Thu, 18 Sep 2008 18:06:35 +0000 Subject: [PATCH] Makes Google Test compile (and all tests pass) on cygwin (possibly on wingw too). --- src/gtest.cc | 9 +++++---- test/gtest_output_test.py | 20 +++++++++++++++++++- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/gtest.cc b/src/gtest.cc index 8ca6ac8e..8d2d2a2a 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 f91050c0..68cfe5ec 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__':