From 69e01fa1e9279f7361069809c93f53e4e2648b5c Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Tue, 25 Apr 2023 23:15:34 -0700 Subject: [PATCH] [test][HWASAN] Add XFAILs for missing hwasan features Reviewed By: thurston Differential Revision: https://reviews.llvm.org/D149271 --- .../sanitizer_common/TestCases/Linux/allow_user_segv.cpp | 3 +++ .../test/sanitizer_common/TestCases/Linux/deepbind.cpp | 3 +++ .../sanitizer_common/TestCases/Linux/malloc_usable_size.c | 7 +++++-- .../test/sanitizer_common/TestCases/Linux/mlock_test.cpp | 15 +++++++++++++-- .../sanitizer_common/TestCases/Posix/dump_registers.cpp | 6 +----- .../sanitizer_common/TestCases/Posix/mmap_write_exec.cpp | 3 +++ .../sanitizer_common/TestCases/Posix/print-module-map.cpp | 4 ++-- .../sanitizer_common/TestCases/Posix/weak_hook_test.cpp | 11 ++++++----- .../sanitizer_common/TestCases/get_allocated_begin.cpp | 7 +++++-- .../test/sanitizer_common/TestCases/malloc_hook.cpp | 5 +++++ .../sanitizer_common/TestCases/max_allocation_size.cpp | 3 +++ 11 files changed, 49 insertions(+), 18 deletions(-) diff --git a/compiler-rt/test/sanitizer_common/TestCases/Linux/allow_user_segv.cpp b/compiler-rt/test/sanitizer_common/TestCases/Linux/allow_user_segv.cpp index 03ddf06..1c74015 100644 --- a/compiler-rt/test/sanitizer_common/TestCases/Linux/allow_user_segv.cpp +++ b/compiler-rt/test/sanitizer_common/TestCases/Linux/allow_user_segv.cpp @@ -3,6 +3,9 @@ // Fails with debug checks: https://bugs.llvm.org/show_bug.cgi?id=46860 // XFAIL: !compiler-rt-optimized && tsan +// FIXME: Implement. +// XFAIL: hwasan + // RUN: %clangxx -O0 %s -o %t // RUN: %env_tool_opts=handle_segv=0 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK0 diff --git a/compiler-rt/test/sanitizer_common/TestCases/Linux/deepbind.cpp b/compiler-rt/test/sanitizer_common/TestCases/Linux/deepbind.cpp index 81150fa..4482713 100644 --- a/compiler-rt/test/sanitizer_common/TestCases/Linux/deepbind.cpp +++ b/compiler-rt/test/sanitizer_common/TestCases/Linux/deepbind.cpp @@ -1,6 +1,9 @@ // RUN: %clangxx %s -o %t && %run not %t 1 2>&1 | FileCheck %s // UNSUPPORTED: lsan,ubsan,android +// FIXME: Implement. +// XFAIL: hwasan + #include #include #include diff --git a/compiler-rt/test/sanitizer_common/TestCases/Linux/malloc_usable_size.c b/compiler-rt/test/sanitizer_common/TestCases/Linux/malloc_usable_size.c index 55a06b6..f91799fc 100644 --- a/compiler-rt/test/sanitizer_common/TestCases/Linux/malloc_usable_size.c +++ b/compiler-rt/test/sanitizer_common/TestCases/Linux/malloc_usable_size.c @@ -1,7 +1,10 @@ // RUN: %clang -O2 %s -o %t && %run %t -// Ubsan does not provide allocator. -// UNSUPPORTED: ubsan +// Must not be implemented, no other reason to install interceptors. +// XFAIL: ubsan + +// FIXME: Implement. +// XFAIL: hwasan #include #include diff --git a/compiler-rt/test/sanitizer_common/TestCases/Linux/mlock_test.cpp b/compiler-rt/test/sanitizer_common/TestCases/Linux/mlock_test.cpp index a952922..09b05d1 100644 --- a/compiler-rt/test/sanitizer_common/TestCases/Linux/mlock_test.cpp +++ b/compiler-rt/test/sanitizer_common/TestCases/Linux/mlock_test.cpp @@ -1,13 +1,24 @@ +// Test that sanitizers suppress mlock. // RUN: %clang %s -o %t && %run %t -// XFAIL: ubsan,lsan + +// No shadow, so no need to disable mlock. +// XFAIL: ubsan, lsan + +// FIXME: Implement. +// XFAIL: hwasan #include #include int main() { +#if defined(__has_feature) +# if __has_feature(hwaddress_sanitizer) + // Don't mlock, it may claim all memory. + abort(); +# endif +#endif assert(0 == mlockall(MCL_CURRENT)); assert(0 == mlock((void *)0x12345, 0x5678)); assert(0 == munlockall()); assert(0 == munlock((void *)0x987, 0x654)); } - diff --git a/compiler-rt/test/sanitizer_common/TestCases/Posix/dump_registers.cpp b/compiler-rt/test/sanitizer_common/TestCases/Posix/dump_registers.cpp index 07e87be..f09b2bf 100644 --- a/compiler-rt/test/sanitizer_common/TestCases/Posix/dump_registers.cpp +++ b/compiler-rt/test/sanitizer_common/TestCases/Posix/dump_registers.cpp @@ -4,11 +4,7 @@ // RUN: %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-DUMP // // FIXME: Implement. -// UNSUPPORTED: asan -// UNSUPPORTED: lsan -// UNSUPPORTED: msan -// UNSUPPORTED: tsan -// UNSUPPORTED: ubsan +// XFAIL: * #include diff --git a/compiler-rt/test/sanitizer_common/TestCases/Posix/mmap_write_exec.cpp b/compiler-rt/test/sanitizer_common/TestCases/Posix/mmap_write_exec.cpp index eec2161..f4165b7 100644 --- a/compiler-rt/test/sanitizer_common/TestCases/Posix/mmap_write_exec.cpp +++ b/compiler-rt/test/sanitizer_common/TestCases/Posix/mmap_write_exec.cpp @@ -7,6 +7,9 @@ // TODO: Fix option on Android, it hangs there for unknown reasons. // XFAIL: android +// FIXME: Implement. +// XFAIL: hwasan + #if defined(__APPLE__) #include #endif diff --git a/compiler-rt/test/sanitizer_common/TestCases/Posix/print-module-map.cpp b/compiler-rt/test/sanitizer_common/TestCases/Posix/print-module-map.cpp index c0e80d9..00df724 100644 --- a/compiler-rt/test/sanitizer_common/TestCases/Posix/print-module-map.cpp +++ b/compiler-rt/test/sanitizer_common/TestCases/Posix/print-module-map.cpp @@ -18,8 +18,8 @@ // FIXME: Add linux support. // XFAIL: msan && target={{.*linux.*}} -// FIXME: Add lsan support. -// XFAIL: lsan +// FIXME: Implement. +// XFAIL: lsan, hwasan int global; diff --git a/compiler-rt/test/sanitizer_common/TestCases/Posix/weak_hook_test.cpp b/compiler-rt/test/sanitizer_common/TestCases/Posix/weak_hook_test.cpp index ba98f47..e95de73 100644 --- a/compiler-rt/test/sanitizer_common/TestCases/Posix/weak_hook_test.cpp +++ b/compiler-rt/test/sanitizer_common/TestCases/Posix/weak_hook_test.cpp @@ -1,10 +1,11 @@ // Test the weak hooks. -// RUN: %clangxx %s -o %t -// RUN: %run %t +// RUN: %clangxx %s -o %t && %run %t -// Hooks are not implemented for lsan. -// XFAIL: lsan -// XFAIL: ubsan +// Must not be implemented, no other reason to install interceptors. +// XFAIL: lsan, ubsan + +// FIXME: Implement. +// XFAIL: hwasan #include #include diff --git a/compiler-rt/test/sanitizer_common/TestCases/get_allocated_begin.cpp b/compiler-rt/test/sanitizer_common/TestCases/get_allocated_begin.cpp index 1683063b..5f31b1f 100644 --- a/compiler-rt/test/sanitizer_common/TestCases/get_allocated_begin.cpp +++ b/compiler-rt/test/sanitizer_common/TestCases/get_allocated_begin.cpp @@ -1,7 +1,10 @@ // RUN: %clangxx -O0 -g %s -o %t && %run %t -// UBSan does not have its own allocator -// UNSUPPORTED: ubsan +// Must not be implemented, no other reason to install interceptors. +// XFAIL: ubsan + +// FIXME: Implement. +// XFAIL: hwasan #include #include diff --git a/compiler-rt/test/sanitizer_common/TestCases/malloc_hook.cpp b/compiler-rt/test/sanitizer_common/TestCases/malloc_hook.cpp index 160e4e1..1239108 100644 --- a/compiler-rt/test/sanitizer_common/TestCases/malloc_hook.cpp +++ b/compiler-rt/test/sanitizer_common/TestCases/malloc_hook.cpp @@ -2,8 +2,13 @@ // Malloc/free hooks are not supported on Windows. // XFAIL: target={{.*windows-msvc.*}} + +// Must not be implemented, no other reason to install interceptors. // XFAIL: ubsan +// FIXME: Implement. +// XFAIL: hwasan + #include #include #include diff --git a/compiler-rt/test/sanitizer_common/TestCases/max_allocation_size.cpp b/compiler-rt/test/sanitizer_common/TestCases/max_allocation_size.cpp index 44f2935..41ff450 100644 --- a/compiler-rt/test/sanitizer_common/TestCases/max_allocation_size.cpp +++ b/compiler-rt/test/sanitizer_common/TestCases/max_allocation_size.cpp @@ -43,6 +43,9 @@ // win32 is disabled due to failing errno tests. // UNSUPPORTED: ubsan, target={{.*windows-msvc.*}} +// FIXME: Implement. +// XFAIL: hwasan + #include #include #include -- 2.7.4