From b4979293b3344e7339440847dfae9ffa0009b061 Mon Sep 17 00:00:00 2001 From: Florian Mayer Date: Fri, 15 Apr 2022 14:35:17 -0700 Subject: [PATCH] Skip debuggerd tests that do not apply to HWASan. Change-Id: Ieab61dc61e11c3e55f116a45c37ceb805a6212e0 --- debuggerd/debuggerd_test.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/debuggerd/debuggerd_test.cpp b/debuggerd/debuggerd_test.cpp index a5e2413d5..5a9d4f2a6 100644 --- a/debuggerd/debuggerd_test.cpp +++ b/debuggerd/debuggerd_test.cpp @@ -377,6 +377,8 @@ TEST_F(CrasherTest, tagged_fault_addr) { #if !defined(__aarch64__) GTEST_SKIP() << "Requires aarch64"; #endif + // HWASan crashes with SIGABRT on tag mismatch. + SKIP_WITH_HWASAN; int intercept_result; unique_fd output_fd; StartProcess([]() { @@ -408,6 +410,10 @@ TEST_F(CrasherTest, heap_addr_in_register) { #if defined(__i386__) GTEST_SKIP() << "architecture does not pass arguments in registers"; #endif + // The memory dump in HWASan crashes sadly shows the memory near the registers + // in the HWASan dump function, rather the faulting context. This is a known + // issue. + SKIP_WITH_HWASAN; int intercept_result; unique_fd output_fd; StartProcess([]() { @@ -486,6 +492,8 @@ TEST_P(GwpAsanCrasherTest, gwp_asan_uaf) { // instead of GWP-ASan. GTEST_SKIP() << "Skipped on MTE."; } + // Skip this test on HWASan, which will reliably catch test errors as well. + SKIP_WITH_HWASAN; GwpAsanTestParameters params = GetParam(); LogcatCollector logcat_collector; @@ -2021,6 +2029,9 @@ TEST_F(CrasherTest, fault_address_before_first_map) { // Verify that a fault address after the last map is properly handled. TEST_F(CrasherTest, fault_address_after_last_map) { + // This makes assumptions about the memory layout that are not true in HWASan + // processes. + SKIP_WITH_HWASAN; uintptr_t crash_uptr = untag_address(UINTPTR_MAX - 15); StartProcess([crash_uptr]() { ASSERT_EQ(0, crash_call(crash_uptr));