diff options
author | 2022-10-19 10:52:12 -0700 | |
---|---|---|
committer | 2022-10-20 10:10:28 +0000 | |
commit | 29730bd23468cf16fc232a2bdd13edc89b6eccff (patch) | |
tree | e87e6c559a98588fb1e33fd04c47f27a5bbab4a9 | |
parent | d3204d9efa2383c01c10c7a5f49891aff67cf509 (diff) |
Disable hwasan for fault_address_tag
Test: atest art_standalone_sigchain_tests on flame_hwasan
Bug: 254365701
Change-Id: Ia7a7362c09278fc0f1a690d752cae252673cc0f2
-rw-r--r-- | sigchainlib/sigchain_test.cc | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/sigchainlib/sigchain_test.cc b/sigchainlib/sigchain_test.cc index 6af38becfa..7d5d5f0476 100644 --- a/sigchainlib/sigchain_test.cc +++ b/sigchainlib/sigchain_test.cc @@ -37,6 +37,12 @@ #include "sigchain.h" +#if defined(__clang__) && __has_feature(hwaddress_sanitizer) +#define DISABLE_HWASAN __attribute__((no_sanitize("hwaddress"))) +#else +#define DISABLE_HWASAN +#endif + #if !defined(__BIONIC__) using sigset64_t = sigset_t; @@ -249,9 +255,8 @@ TEST_F(SigchainTest, EnsureFrontOfChain) { called = 0; } -TEST_F(SigchainTest, fault_address_tag) { -#define SA_EXPOSE_TAGBITS 0x00000800 #if defined(__aarch64__) +DISABLE_HWASAN void fault_address_tag_impl() { struct sigaction action = {}; action.sa_flags = SA_SIGINFO; action.sa_sigaction = [](int, siginfo_t* siginfo, void*) { @@ -273,6 +278,13 @@ TEST_F(SigchainTest, fault_address_tag) { EXPECT_EXIT({ volatile int load __attribute__((unused)) = *tagged_null; }, testing::ExitedWithCode(0x2b), ""); } +} +#endif + +TEST_F(SigchainTest, fault_address_tag) { +#define SA_EXPOSE_TAGBITS 0x00000800 +#if defined(__aarch64__) + fault_address_tag_impl(); #else GTEST_SKIP() << "arm64 only"; #endif |