Makes Google Test compile (and all tests pass) on cygwin (possibly on wingw too).

pull/496/merge
shiqian 16 years ago
parent 9e672bd5e3
commit f6b0dc0b40
  1. 9
      src/gtest.cc
  2. 20
      test/gtest_output_test.py

@ -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
}

@ -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__':

Loading…
Cancel
Save