diff options
author | Abseil Team <absl-team@google.com> | 2024-01-11 11:44:12 -0800 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-01-11 11:44:55 -0800 |
commit | 3acbe29b14428820cd18857284e082ac9926e314 (patch) | |
tree | 6ceab7b9e57019ccb1038f7064af1ccd65664fad /absl/container/btree_test.cc | |
parent | a00f6d6d0ce50fbae36e639a58b1a8b78d09064c (diff) | |
download | abseil-3acbe29b14428820cd18857284e082ac9926e314.tar.gz abseil-3acbe29b14428820cd18857284e082ac9926e314.tar.bz2 abseil-3acbe29b14428820cd18857284e082ac9926e314.zip |
Enable ABSL_BTREE_ENABLE_GENERATIONS and ABSL_SWISSTABLE_ENABLE_GENERATIONS with ABSL_HAVE_HWADDRESS_SANITIZER.
It will detect bugs similar to Asan.
Also updated related tests to pass with HWASAN.
They are still flaky because of nature of HWASAN algorithm,
but test can be update to avoid flakiness, which I will do
in followup patches.
PiperOrigin-RevId: 597613798
Change-Id: Ic8af36a268ca041c002eb561b946aa2d9b93996a
Diffstat (limited to 'absl/container/btree_test.cc')
-rw-r--r-- | absl/container/btree_test.cc | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/absl/container/btree_test.cc b/absl/container/btree_test.cc index c52c3231..d7102fe4 100644 --- a/absl/container/btree_test.cc +++ b/absl/container/btree_test.cc @@ -1346,7 +1346,8 @@ void ExpectOperationCounts(const int expected_moves, tracker->ResetCopiesMovesSwaps(); } -#ifdef ABSL_HAVE_ADDRESS_SANITIZER +#if defined(ABSL_HAVE_ADDRESS_SANITIZER) || \ + defined(ABSL_HAVE_HWADDRESS_SANITIZER) constexpr bool kAsan = true; #else constexpr bool kAsan = false; @@ -3079,10 +3080,10 @@ TEST(Btree, InvalidIteratorUse) { if (!BtreeGenerationsEnabled()) GTEST_SKIP() << "Generation validation for iterators is disabled."; - // Invalid memory use can trigger heap-use-after-free in ASan or invalidated - // iterator assertions. + // Invalid memory use can trigger use-after-free in ASan, HWASAN or + // invalidated iterator assertions. constexpr const char *kInvalidMemoryDeathMessage = - "heap-use-after-free|invalidated iterator"; + "use-after-free|invalidated iterator"; { absl::btree_set<int> set; @@ -3411,12 +3412,12 @@ TEST(Btree, InvalidPointerUse) { set.insert(0); const int *ptr = &*set.begin(); set.insert(1); - EXPECT_DEATH(std::cout << *ptr, "heap-use-after-free"); + EXPECT_DEATH(std::cout << *ptr, "use-after-free"); size_t slots_per_node = BtreeNodePeer::GetNumSlotsPerNode<decltype(set)>(); for (int i = 2; i < slots_per_node - 1; ++i) set.insert(i); ptr = &*set.begin(); set.insert(static_cast<int>(slots_per_node)); - EXPECT_DEATH(std::cout << *ptr, "heap-use-after-free"); + EXPECT_DEATH(std::cout << *ptr, "use-after-free"); } template<typename Set> |