aboutsummaryrefslogtreecommitdiff
path: root/src/client/linux
diff options
context:
space:
mode:
authorEric Holk <eholk@chromium.org>2017-06-21 17:22:20 -0700
committerMark Mentovai <mark@chromium.org>2017-06-22 17:17:43 +0000
commit66856d617b6658ce09ef2bc1b15d457ab7b152b0 (patch)
treeb436446feae0ad735ee0d1e8a22617d801ee9f16 /src/client/linux
parentAdd first chance exception handler API (diff)
downloadbreakpad-66856d617b6658ce09ef2bc1b15d457ab7b152b0.tar.xz
Fix asan builds
When rolling this into Chrome, we got compile failures due to DoNullPointerDereference being undefined but the new FirstChanceHandlerRuns tests depends on this and was still defined. The fix is to only enable the FirstChanceHandlerRuns test on non-asan builds. Bug: Change-Id: I5a3da0a21e2d0dd663ffc01137496d16905293a6 Reviewed-on: https://chromium-review.googlesource.com/544186 Reviewed-by: Mark Mentovai <mark@chromium.org>
Diffstat (limited to 'src/client/linux')
-rw-r--r--src/client/linux/handler/exception_handler_unittest.cc46
1 files changed, 23 insertions, 23 deletions
diff --git a/src/client/linux/handler/exception_handler_unittest.cc b/src/client/linux/handler/exception_handler_unittest.cc
index cede40bd..eda60c95 100644
--- a/src/client/linux/handler/exception_handler_unittest.cc
+++ b/src/client/linux/handler/exception_handler_unittest.cc
@@ -465,6 +465,29 @@ TEST(ExceptionHandlerTest, StackedHandlersUnhandledToBottom) {
ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGKILL));
}
+namespace {
+const int kSimpleFirstChanceReturnStatus = 42;
+bool SimpleFirstChanceHandler(int, void*, void*) {
+ exit(kSimpleFirstChanceReturnStatus);
+}
+}
+
+TEST(ExceptionHandlerTest, FirstChanceHandlerRuns) {
+ AutoTempDir temp_dir;
+
+ const pid_t child = fork();
+ if (child == 0) {
+ ExceptionHandler handler(
+ MinidumpDescriptor(temp_dir.path()), NULL, NULL, NULL, true, -1);
+ google_breakpad::SetFirstChanceExceptionHandler(SimpleFirstChanceHandler);
+ DoNullPointerDereference();
+ }
+ int status;
+ ASSERT_NE(HANDLE_EINTR(waitpid(child, &status, 0)), -1);
+ ASSERT_TRUE(WIFEXITED(status));
+ ASSERT_EQ(kSimpleFirstChanceReturnStatus, WEXITSTATUS(status));
+}
+
#endif // !ADDRESS_SANITIZER
const unsigned char kIllegalInstruction[] = {
@@ -1177,26 +1200,3 @@ TEST(ExceptionHandlerTest, WriteMinidumpForChild) {
close(fds[1]);
unlink(minidump_filename.c_str());
}
-
-namespace {
-const int kSimpleFirstChanceReturnStatus = 42;
-bool SimpleFirstChanceHandler(int, void*, void*) {
- exit(kSimpleFirstChanceReturnStatus);
-}
-}
-
-TEST(ExceptionHandlerTest, FirstChanceHandlerRuns) {
- AutoTempDir temp_dir;
-
- const pid_t child = fork();
- if (child == 0) {
- ExceptionHandler handler(
- MinidumpDescriptor(temp_dir.path()), NULL, NULL, NULL, true, -1);
- google_breakpad::SetFirstChanceExceptionHandler(SimpleFirstChanceHandler);
- DoNullPointerDereference();
- }
- int status;
- ASSERT_NE(HANDLE_EINTR(waitpid(child, &status, 0)), -1);
- ASSERT_TRUE(WIFEXITED(status));
- ASSERT_EQ(kSimpleFirstChanceReturnStatus, WEXITSTATUS(status));
-}