aboutsummaryrefslogtreecommitdiff
path: root/src/client/linux/handler/exception_handler_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/linux/handler/exception_handler_unittest.cc')
-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));
-}