diff options
author | Florian Mayer <fmayer@google.com> | 2022-04-15 00:13:11 +0000 |
---|---|---|
committer | Florian Mayer <fmayer@google.com> | 2022-04-15 18:05:59 +0000 |
commit | 381418125d9162d989a02554695cf6aa3c39d11e (patch) | |
tree | df9d5e1506789aeeaeb5f39e457c42b4e1cac413 | |
parent | a7eccd02adfa73fb6a8a13d55b69a65c21bb49db (diff) | |
download | libmemunreachable-381418125d9162d989a02554695cf6aa3c39d11e.tar.gz |
Fix HeapWalker test under hwasan.
Test: atest on flame_hwasan
Bug: 229317612
Change-Id: Ie4fffe5b4be3ee63986d7bd9839736e04320dd5e
-rw-r--r-- | tests/HeapWalker_test.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/tests/HeapWalker_test.cpp b/tests/HeapWalker_test.cpp index 9610cd6..f78fd66 100644 --- a/tests/HeapWalker_test.cpp +++ b/tests/HeapWalker_test.cpp @@ -25,6 +25,14 @@ namespace android { +static inline uintptr_t UntagAddress(uintptr_t addr) { +#if defined(__aarch64__) + constexpr uintptr_t mask = (static_cast<uintptr_t>(1) << 56) - 1; + addr = addr & mask; +#endif + return addr; +} + class HeapWalkerTest : public ::testing::Test { public: HeapWalkerTest() : disable_malloc_(), heap_() {} @@ -113,8 +121,8 @@ TEST_F(HeapWalkerTest, leak) { EXPECT_EQ(1U, num_leaks); EXPECT_EQ(16U, leaked_bytes); ASSERT_EQ(1U, leaked.size()); - EXPECT_EQ(buffer_begin(buffer2), leaked[0].begin); - EXPECT_EQ(buffer_end(buffer2), leaked[0].end); + EXPECT_EQ(UntagAddress(buffer_begin(buffer2)), leaked[0].begin); + EXPECT_EQ(UntagAddress(buffer_end(buffer2)), leaked[0].end); } TEST_F(HeapWalkerTest, live) { |