diff options
author | Eric Holk <eholk@chromium.org> | 2017-06-21 17:22:20 -0700 |
---|---|---|
committer | Mark Mentovai <mark@chromium.org> | 2017-06-22 17:17:43 +0000 |
commit | 66856d617b6658ce09ef2bc1b15d457ab7b152b0 (patch) | |
tree | b436446feae0ad735ee0d1e8a22617d801ee9f16 /src/client/linux | |
parent | Add first chance exception handler API (diff) | |
download | breakpad-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.cc | 46 |
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)); -} |