Index: content/test/content_browser_test_test.cc |
diff --git a/content/test/content_browser_test_test.cc b/content/test/content_browser_test_test.cc |
index cbf33947d7990d9e82a87396e49e1cae95a26228..446349da297ec89a96034c706cf6336173bc719d 100644 |
--- a/content/test/content_browser_test_test.cc |
+++ b/content/test/content_browser_test_test.cc |
@@ -90,25 +90,19 @@ IN_PROC_BROWSER_TEST_F(ContentBrowserTest, RendererCrashCallStack) { |
new_test.AppendSwitch(kRunManualTestsFlag); |
new_test.AppendSwitch(kSingleProcessTestsFlag); |
- // Per https://www.chromium.org/developers/testing/addresssanitizer, there are |
- // ASAN bots that run without the sandbox which this test will pass for. The |
- // other ones pipe the output to a symbolizer script. |
- if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kNoSandbox)) { |
- new_test.AppendSwitch(switches::kNoSandbox); |
- } else { |
-#if defined(ADDRESS_SANITIZER) |
- LOG(INFO) << "Couldn't run ContentBrowserTest.RendererCrashCallStack since " |
- << "sandbox is enabled and ASAN requires piping to an external " |
- << "script."; |
- return; |
-#endif |
- } |
- |
std::string output; |
base::GetAppOutputAndError(new_test, &output); |
+ // In sanitizer builds, an external script is responsible for symbolizing, |
+ // so the stack that the tests sees here looks like: |
+ // "#0 0x0000007ea911 (...content_browsertests+0x7ea910)" |
std::string crash_string = |
+#if !defined(ADDRESS_SANITIZER) && !defined(LEAK_SANITIZER) && \ |
+ !defined(MEMORY_SANITIZER) && !defined(THREAD_SANITIZER) |
"content::RenderFrameImpl::PrepareRenderViewForNavigation"; |
+#else |
+ "#0 "; |
+#endif |
if (output.find(crash_string) == std::string::npos) { |
GTEST_FAIL() << "Couldn't find\n" << crash_string << "\n in output\n " |
@@ -134,8 +128,17 @@ IN_PROC_BROWSER_TEST_F(ContentBrowserTest, BrowserCrashCallStack) { |
std::string output; |
base::GetAppOutputAndError(new_test, &output); |
+ // In sanitizer builds, an external script is responsible for symbolizing, |
+ // so the stack that the test sees here looks like: |
+ // "#0 0x0000007ea911 (...content_browsertests+0x7ea910)" |
std::string crash_string = |
- "content::ContentBrowserTest_MANUAL_BrowserCrash_Test::RunTestOnMainThread"; |
+#if !defined(ADDRESS_SANITIZER) && !defined(LEAK_SANITIZER) && \ |
+ !defined(MEMORY_SANITIZER) && !defined(THREAD_SANITIZER) |
+ "content::ContentBrowserTest_MANUAL_BrowserCrash_Test::" |
+ "RunTestOnMainThread"; |
+#else |
+ "#0 "; |
+#endif |
if (output.find(crash_string) == std::string::npos) { |
GTEST_FAIL() << "Couldn't find\n" << crash_string << "\n in output\n " |