summaryrefslogtreecommitdiff
path: root/absl/base/internal/low_level_alloc_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'absl/base/internal/low_level_alloc_test.cc')
-rw-r--r--absl/base/internal/low_level_alloc_test.cc52
1 files changed, 2 insertions, 50 deletions
diff --git a/absl/base/internal/low_level_alloc_test.cc b/absl/base/internal/low_level_alloc_test.cc
index 7c359f30..cf2b3632 100644
--- a/absl/base/internal/low_level_alloc_test.cc
+++ b/absl/base/internal/low_level_alloc_test.cc
@@ -21,8 +21,6 @@
#include <unordered_map>
#include <utility>
-#include "absl/base/internal/malloc_hook.h"
-
namespace absl {
namespace base_internal {
namespace {
@@ -139,58 +137,12 @@ static void Test(bool use_new_arena, bool call_malloc_hook, int n) {
TEST_ASSERT(LowLevelAlloc::DeleteArena(arena));
}
}
-
-// used for counting allocates and frees
-static int32_t allocates;
-static int32_t frees;
-
-// ignore uses of the allocator not triggered by our test
-static std::thread::id* test_tid;
-
-// called on each alloc if kCallMallocHook specified
-static void AllocHook(const void *p, size_t size) {
- if (using_low_level_alloc) {
- if (*test_tid == std::this_thread::get_id()) {
- allocates++;
- }
- }
-}
-
-// called on each free if kCallMallocHook specified
-static void FreeHook(const void *p) {
- if (using_low_level_alloc) {
- if (*test_tid == std::this_thread::get_id()) {
- frees++;
- }
- }
-}
-
// LowLevelAlloc is designed to be safe to call before main().
static struct BeforeMain {
BeforeMain() {
- test_tid = new std::thread::id(std::this_thread::get_id());
- TEST_ASSERT(MallocHook::AddNewHook(&AllocHook));
- TEST_ASSERT(MallocHook::AddDeleteHook(&FreeHook));
- TEST_ASSERT(allocates == 0);
- TEST_ASSERT(frees == 0);
Test(false, false, 50000);
- TEST_ASSERT(allocates != 0); // default arena calls hooks
- TEST_ASSERT(frees != 0);
- for (int i = 0; i != 16; i++) {
- bool call_hooks = ((i & 1) == 1);
- allocates = 0;
- frees = 0;
- Test(true, call_hooks, 15000);
- if (call_hooks) {
- TEST_ASSERT(allocates > 5000); // arena calls hooks
- TEST_ASSERT(frees > 5000);
- } else {
- TEST_ASSERT(allocates == 0); // arena doesn't call hooks
- TEST_ASSERT(frees == 0);
- }
- }
- TEST_ASSERT(MallocHook::RemoveNewHook(&AllocHook));
- TEST_ASSERT(MallocHook::RemoveDeleteHook(&FreeHook));
+ Test(true, false, 50000);
+ Test(true, true, 50000);
}
} before_main;