aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Mayer <fmayer@google.com>2022-04-15 00:13:11 +0000
committerFlorian Mayer <fmayer@google.com>2022-04-15 18:05:59 +0000
commit381418125d9162d989a02554695cf6aa3c39d11e (patch)
treedf9d5e1506789aeeaeb5f39e457c42b4e1cac413
parenta7eccd02adfa73fb6a8a13d55b69a65c21bb49db (diff)
downloadlibmemunreachable-381418125d9162d989a02554695cf6aa3c39d11e.tar.gz
Fix HeapWalker test under hwasan.
Test: atest on flame_hwasan Bug: 229317612 Change-Id: Ie4fffe5b4be3ee63986d7bd9839736e04320dd5e
-rw-r--r--tests/HeapWalker_test.cpp12
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) {