summaryrefslogtreecommitdiff
path: root/absl/base/internal/malloc_extension_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'absl/base/internal/malloc_extension_test.cc')
-rw-r--r--absl/base/internal/malloc_extension_test.cc79
1 files changed, 0 insertions, 79 deletions
diff --git a/absl/base/internal/malloc_extension_test.cc b/absl/base/internal/malloc_extension_test.cc
deleted file mode 100644
index 76605eb1..00000000
--- a/absl/base/internal/malloc_extension_test.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright 2017 The Abseil Authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <algorithm>
-#include <cstdlib>
-
-#include "gtest/gtest.h"
-#include "absl/base/internal/malloc_extension.h"
-
-namespace absl {
-namespace base_internal {
-namespace {
-
-TEST(MallocExtension, MallocExtension) {
- void* a = malloc(1000);
-
- size_t cxx_bytes_used, c_bytes_used;
- if (!MallocExtension::instance()->GetNumericProperty(
- "generic.current_allocated_bytes", &cxx_bytes_used)) {
- EXPECT_TRUE(ABSL_MALLOC_EXTENSION_TEST_ALLOW_MISSING_EXTENSION);
- } else {
- ASSERT_TRUE(MallocExtension::instance()->GetNumericProperty(
- "generic.current_allocated_bytes", &cxx_bytes_used));
-#ifndef MEMORY_SANITIZER
- EXPECT_GT(cxx_bytes_used, 1000);
- EXPECT_GT(c_bytes_used, 1000);
-#endif
-
- EXPECT_TRUE(MallocExtension::instance()->VerifyAllMemory());
-
- EXPECT_EQ(MallocExtension::kOwned,
- MallocExtension::instance()->GetOwnership(a));
- // TODO(csilvers): this relies on undocumented behavior that
- // GetOwnership works on stack-allocated variables. Use a better test.
- EXPECT_EQ(MallocExtension::kNotOwned,
- MallocExtension::instance()->GetOwnership(&cxx_bytes_used));
- EXPECT_EQ(MallocExtension::kNotOwned,
- MallocExtension::instance()->GetOwnership(nullptr));
- EXPECT_GE(MallocExtension::instance()->GetAllocatedSize(a), 1000);
- // This is just a sanity check. If we allocated too much, tcmalloc is
- // broken
- EXPECT_LE(MallocExtension::instance()->GetAllocatedSize(a), 5000);
- EXPECT_GE(MallocExtension::instance()->GetEstimatedAllocatedSize(1000),
- 1000);
- for (int i = 0; i < 10; ++i) {
- void* p = malloc(i);
- EXPECT_GE(MallocExtension::instance()->GetAllocatedSize(p),
- MallocExtension::instance()->GetEstimatedAllocatedSize(i));
- free(p);
- }
- }
-
- free(a);
-}
-
-TEST(nallocx, SaneBehavior) {
- for (size_t size = 0; size < 64 * 1024; ++size) {
- size_t alloc_size = nallocx(size, 0);
- EXPECT_LE(size, alloc_size) << "size is " << size;
- EXPECT_LE(alloc_size, std::max(size + 100, 2 * size)) << "size is " << size;
- }
-}
-
-} // namespace
-} // namespace base_internal
-} // namespace absl