summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormithro@mithis.com <mithro@mithis.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-05 07:31:46 +0000
committermithro@mithis.com <mithro@mithis.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-05 07:31:46 +0000
commitb6c74cd512dd5ce3c42a0862a2de0b36a32fb2be (patch)
treeeb49a00adebd989f4e51f879194919a8a9994331
parent375ff66e24a0d644a4c3586b7e4c4deac5e80b4e (diff)
downloadchromium_src-b6c74cd512dd5ce3c42a0862a2de0b36a32fb2be.zip
chromium_src-b6c74cd512dd5ce3c42a0862a2de0b36a32fb2be.tar.gz
chromium_src-b6c74cd512dd5ce3c42a0862a2de0b36a32fb2be.tar.bz2
Make gtest always use simple internal regex engine.
In order to allow regex matches in gtest to be shared between Windows and other systems, we tell gtest to always use it's internal engine. The syntax supported by the internal engine initially looks like a subset of POSIX regexs. However character class shortcuts are not valid POSIX. Even more confusingly the system POSIX regex function often defines extra features not actually part of the standard allowing regex that work on Linux fail on Mac OS X. A search through the code base did not reveal any locations where features not supported by the internal regex engine where used. See bug https://code.google.com/p/chromium/issues/detail?id=317224 for more detailed description. BUG=317224 Review URL: https://codereview.chromium.org/55983002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238913 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--base/message_loop/message_pump_io_ios_unittest.cc2
-rw-r--r--base/process/memory_unittest.cc8
-rw-r--r--testing/gtest.gyp10
3 files changed, 14 insertions, 6 deletions
diff --git a/base/message_loop/message_pump_io_ios_unittest.cc b/base/message_loop/message_pump_io_ios_unittest.cc
index f3b598c..e6dcc33 100644
--- a/base/message_loop/message_pump_io_ios_unittest.cc
+++ b/base/message_loop/message_pump_io_ios_unittest.cc
@@ -82,7 +82,7 @@ TEST_F(MessagePumpIOSForIOTest, TestWatchingFromBadThread) {
ASSERT_DEBUG_DEATH(io_loop()->WatchFileDescriptor(
STDOUT_FILENO, false, MessageLoopForIO::WATCH_READ, &watcher, &delegate),
"Check failed: "
- "watch_file_descriptor_caller_checker_.CalledOnValidThread()");
+ "watch_file_descriptor_caller_checker_.CalledOnValidThread\\(\\)");
}
#endif // GTEST_HAS_DEATH_TEST && !defined(NDEBUG)
diff --git a/base/process/memory_unittest.cc b/base/process/memory_unittest.cc
index e5c759d..33fcc85 100644
--- a/base/process/memory_unittest.cc
+++ b/base/process/memory_unittest.cc
@@ -121,9 +121,7 @@ TEST(ProcessMemoryTest, MacMallocFailureDoesNotTerminate) {
buf = malloc(std::numeric_limits<size_t>::max() - (2 * PAGE_SIZE) - 1);
},
testing::KilledBySignal(SIGTRAP),
- "\\*\\*\\* error: can't allocate region.*"
- "(Terminating process due to a potential for future heap "
- "corruption){0}");
+ "\\*\\*\\* error: can't allocate region.*\\n?.*");
base::debug::Alias(buf);
}
@@ -143,8 +141,8 @@ TEST(ProcessMemoryTest, MacTerminateOnHeapCorruption) {
ASSERT_DEATH(free(buf), "attempting free on address which "
"was not malloc\\(\\)-ed");
#else
- ASSERT_DEATH(free(buf), "being freed.*"
- "\\*\\*\\* set a breakpoint in malloc_error_break to debug.*"
+ ASSERT_DEATH(free(buf), "being freed.*\\n?\\.*"
+ "\\*\\*\\* set a breakpoint in malloc_error_break to debug.*\\n?.*"
"Terminating process due to a potential for future heap corruption");
#endif // ARCH_CPU_64_BITS || defined(ADDRESS_SANITIZER)
}
diff --git a/testing/gtest.gyp b/testing/gtest.gyp
index 517bd06..486f3e7 100644
--- a/testing/gtest.gyp
+++ b/testing/gtest.gyp
@@ -50,6 +50,16 @@
'dependencies': [
'gtest_prod',
],
+ 'defines': [
+ # In order to allow regex matches in gtest to be shared between Windows
+ # and other systems, we tell gtest to always use it's internal engine.
+ 'GTEST_HAS_POSIX_RE=0',
+ ],
+ 'all_dependent_settings': {
+ 'defines': [
+ 'GTEST_HAS_POSIX_RE=0',
+ ],
+ },
'conditions': [
['OS == "mac" or OS == "ios"', {
'sources': [