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.cc19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/client/linux/handler/exception_handler_unittest.cc b/src/client/linux/handler/exception_handler_unittest.cc
index cfd50bb3..976f9f41 100644
--- a/src/client/linux/handler/exception_handler_unittest.cc
+++ b/src/client/linux/handler/exception_handler_unittest.cc
@@ -191,6 +191,8 @@ static bool DoneCallback(const MinidumpDescriptor& descriptor,
return true;
}
+#ifndef ADDRESS_SANITIZER
+
void ChildCrash(bool use_fd) {
AutoTempDir temp_dir;
int fds[2] = {0};
@@ -242,6 +244,8 @@ TEST(ExceptionHandlerTest, ChildCrashWithFD) {
ASSERT_NO_FATAL_FAILURE(ChildCrash(true));
}
+#endif // !ADDRESS_SANITIZER
+
static bool DoneCallbackReturnFalse(const MinidumpDescriptor& descriptor,
void* context,
bool succeeded) {
@@ -283,6 +287,8 @@ static bool InstallRaiseSIGKILL() {
return sigaction(SIGSEGV, &sa, NULL) != -1;
}
+#ifndef ADDRESS_SANITIZER
+
static void CrashWithCallbacks(ExceptionHandler::FilterCallback filter,
ExceptionHandler::MinidumpCallback done,
string path) {
@@ -450,6 +456,8 @@ TEST(ExceptionHandlerTest, StackedHandlersUnhandledToBottom) {
ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGKILL));
}
+#endif // !ADDRESS_SANITIZER
+
const unsigned char kIllegalInstruction[] = {
#if defined(__mips__)
// mfc2 zero,Impl - usually illegal in userspace.
@@ -731,10 +739,6 @@ TEST(ExceptionHandlerTest, InstructionPointerMemoryMaxBound) {
unlink(minidump_path.c_str());
}
-// If AddressSanitizer is used, NULL pointer dereferences generate SIGILL
-// (illegal instruction) instead of SIGSEGV (segmentation fault). Also,
-// the number of memory regions differs, so there is no point in running
-// this test if AddressSanitizer is used.
#ifndef ADDRESS_SANITIZER
// Ensure that an extra memory block doesn't get added when the instruction
@@ -781,7 +785,8 @@ TEST(ExceptionHandlerTest, InstructionPointerMemoryNullPointer) {
unlink(minidump_path.c_str());
}
-#endif // !ADDRESS_SANITIZER
+
+#endif // !ADDRESS_SANITIZER
// Test that anonymous memory maps can be annotated with names and IDs.
TEST(ExceptionHandlerTest, ModuleInfo) {
@@ -902,6 +907,8 @@ CrashHandler(const void* crash_context, size_t crash_context_size,
return true;
}
+#ifndef ADDRESS_SANITIZER
+
TEST(ExceptionHandlerTest, ExternalDumper) {
int fds[2];
ASSERT_NE(socketpair(AF_UNIX, SOCK_DGRAM, 0, fds), -1);
@@ -974,6 +981,8 @@ TEST(ExceptionHandlerTest, ExternalDumper) {
unlink(templ.c_str());
}
+#endif // !ADDRESS_SANITIZER
+
TEST(ExceptionHandlerTest, WriteMinidumpExceptionStream) {
AutoTempDir temp_dir;
ExceptionHandler handler(MinidumpDescriptor(temp_dir.path()), NULL, NULL,