Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(409)

Unified Diff: base/debug/thread_heap_usage_tracker_unittest.cc

Issue 2427503003: Rename ScopedThreadHeapUsage to ThreadHeapUsageTracker. (Closed)
Patch Set: Addressed Primiano's nits. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/debug/thread_heap_usage_tracker.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/debug/thread_heap_usage_tracker_unittest.cc
diff --git a/base/debug/scoped_thread_heap_usage_unittest.cc b/base/debug/thread_heap_usage_tracker_unittest.cc
similarity index 58%
rename from base/debug/scoped_thread_heap_usage_unittest.cc
rename to base/debug/thread_heap_usage_tracker_unittest.cc
index da66a32b6306887c7f49b7e4afd93e3695b0ac69..6aac4b594a3b57f663edfaeb8074b63cdc172890 100644
--- a/base/debug/scoped_thread_heap_usage_unittest.cc
+++ b/base/debug/thread_heap_usage_tracker_unittest.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "base/debug/scoped_thread_heap_usage.h"
+#include "base/debug/thread_heap_usage_tracker.h"
#include <map>
@@ -15,16 +15,18 @@ namespace debug {
namespace {
-class TestingScopedThreadHeapUsage : public ScopedThreadHeapUsage {
+class TestingThreadHeapUsageTracker : public ThreadHeapUsageTracker {
public:
- using ScopedThreadHeapUsage::DisableHeapTrackingForTesting;
- using ScopedThreadHeapUsage::GetDispatchForTesting;
+ using ThreadHeapUsageTracker::DisableHeapTrackingForTesting;
+ using ThreadHeapUsageTracker::EnsureTLSInitialized;
+ using ThreadHeapUsageTracker::GetDispatchForTesting;
};
// A fixture class that allows testing the AllocatorDispatch associated with
-// the ScopedThreadHeapUsage class in isolation against a mocked underlying
+// the ThreadHeapUsageTracker class in isolation against a mocked
+// underlying
// heap implementation.
-class ScopedThreadHeapUsageTest : public testing::Test {
+class ThreadHeapUsageTrackerTest : public testing::Test {
public:
using AllocatorDispatch = base::allocator::AllocatorDispatch;
@@ -35,12 +37,12 @@ class ScopedThreadHeapUsageTest : public testing::Test {
ZERO_SIZE_FUNCTION,
};
- ScopedThreadHeapUsageTest() : size_function_kind_(EXACT_SIZE_FUNCTION) {
+ ThreadHeapUsageTrackerTest() : size_function_kind_(EXACT_SIZE_FUNCTION) {
EXPECT_EQ(nullptr, g_self);
g_self = this;
}
- ~ScopedThreadHeapUsageTest() override {
+ ~ThreadHeapUsageTrackerTest() override {
EXPECT_EQ(this, g_self);
g_self = nullptr;
}
@@ -50,10 +52,10 @@ class ScopedThreadHeapUsageTest : public testing::Test {
}
void SetUp() override {
- ScopedThreadHeapUsage::Initialize();
+ TestingThreadHeapUsageTracker::EnsureTLSInitialized();
dispatch_under_test_ =
- TestingScopedThreadHeapUsage::GetDispatchForTesting();
+ TestingThreadHeapUsageTracker::GetDispatchForTesting();
ASSERT_EQ(nullptr, dispatch_under_test_->next);
dispatch_under_test_->next = &g_mock_dispatch;
@@ -186,35 +188,36 @@ class ScopedThreadHeapUsageTest : public testing::Test {
AllocatorDispatch* dispatch_under_test_;
static base::allocator::AllocatorDispatch g_mock_dispatch;
- static ScopedThreadHeapUsageTest* g_self;
+ static ThreadHeapUsageTrackerTest* g_self;
};
-const size_t ScopedThreadHeapUsageTest::kAllocationPadding = 23;
+const size_t ThreadHeapUsageTrackerTest::kAllocationPadding = 23;
-ScopedThreadHeapUsageTest* ScopedThreadHeapUsageTest::g_self = nullptr;
+ThreadHeapUsageTrackerTest* ThreadHeapUsageTrackerTest::g_self = nullptr;
-base::allocator::AllocatorDispatch ScopedThreadHeapUsageTest::g_mock_dispatch =
+base::allocator::AllocatorDispatch ThreadHeapUsageTrackerTest::g_mock_dispatch =
{
- &ScopedThreadHeapUsageTest::OnAllocFn, // alloc_function
- &ScopedThreadHeapUsageTest::
+ &ThreadHeapUsageTrackerTest::OnAllocFn, // alloc_function
+ &ThreadHeapUsageTrackerTest::
OnAllocZeroInitializedFn, // alloc_zero_initialized_function
- &ScopedThreadHeapUsageTest::OnAllocAlignedFn, // alloc_aligned_function
- &ScopedThreadHeapUsageTest::OnReallocFn, // realloc_function
- &ScopedThreadHeapUsageTest::OnFreeFn, // free_function
- &ScopedThreadHeapUsageTest::
+ &ThreadHeapUsageTrackerTest::
+ OnAllocAlignedFn, // alloc_aligned_function
+ &ThreadHeapUsageTrackerTest::OnReallocFn, // realloc_function
+ &ThreadHeapUsageTrackerTest::OnFreeFn, // free_function
+ &ThreadHeapUsageTrackerTest::
OnGetSizeEstimateFn, // get_size_estimate_function
nullptr, // next
};
} // namespace
-TEST_F(ScopedThreadHeapUsageTest, SimpleUsageWithExactSizeFunction) {
+TEST_F(ThreadHeapUsageTrackerTest, SimpleUsageWithExactSizeFunction) {
set_size_function_kind(EXACT_SIZE_FUNCTION);
- ScopedThreadHeapUsage scoped_usage;
+ ThreadHeapUsageTracker usage_tracker;
+ usage_tracker.Start();
- ScopedThreadHeapUsage::ThreadAllocatorUsage u1 =
- ScopedThreadHeapUsage::CurrentUsage();
+ ThreadHeapUsage u1 = ThreadHeapUsageTracker::GetUsageSnapshot();
EXPECT_EQ(0U, u1.alloc_ops);
EXPECT_EQ(0U, u1.alloc_bytes);
@@ -227,8 +230,8 @@ TEST_F(ScopedThreadHeapUsageTest, SimpleUsageWithExactSizeFunction) {
void* ptr = MockMalloc(kAllocSize);
MockFree(ptr);
- ScopedThreadHeapUsage::ThreadAllocatorUsage u2 =
- ScopedThreadHeapUsage::CurrentUsage();
+ usage_tracker.Stop(false);
+ ThreadHeapUsage u2 = usage_tracker.usage();
EXPECT_EQ(1U, u2.alloc_ops);
EXPECT_EQ(kAllocSize, u2.alloc_bytes);
@@ -238,13 +241,13 @@ TEST_F(ScopedThreadHeapUsageTest, SimpleUsageWithExactSizeFunction) {
EXPECT_EQ(kAllocSize, u2.max_allocated_bytes);
}
-TEST_F(ScopedThreadHeapUsageTest, SimpleUsageWithPaddingSizeFunction) {
+TEST_F(ThreadHeapUsageTrackerTest, SimpleUsageWithPaddingSizeFunction) {
set_size_function_kind(PADDING_SIZE_FUNCTION);
- ScopedThreadHeapUsage scoped_usage;
+ ThreadHeapUsageTracker usage_tracker;
+ usage_tracker.Start();
- ScopedThreadHeapUsage::ThreadAllocatorUsage u1 =
- ScopedThreadHeapUsage::CurrentUsage();
+ ThreadHeapUsage u1 = ThreadHeapUsageTracker::GetUsageSnapshot();
EXPECT_EQ(0U, u1.alloc_ops);
EXPECT_EQ(0U, u1.alloc_bytes);
@@ -257,8 +260,8 @@ TEST_F(ScopedThreadHeapUsageTest, SimpleUsageWithPaddingSizeFunction) {
void* ptr = MockMalloc(kAllocSize);
MockFree(ptr);
- ScopedThreadHeapUsage::ThreadAllocatorUsage u2 =
- ScopedThreadHeapUsage::CurrentUsage();
+ usage_tracker.Stop(false);
+ ThreadHeapUsage u2 = usage_tracker.usage();
EXPECT_EQ(1U, u2.alloc_ops);
EXPECT_EQ(kAllocSize + kAllocationPadding, u2.alloc_bytes);
@@ -268,13 +271,13 @@ TEST_F(ScopedThreadHeapUsageTest, SimpleUsageWithPaddingSizeFunction) {
EXPECT_EQ(kAllocSize + kAllocationPadding, u2.max_allocated_bytes);
}
-TEST_F(ScopedThreadHeapUsageTest, SimpleUsageWithZeroSizeFunction) {
+TEST_F(ThreadHeapUsageTrackerTest, SimpleUsageWithZeroSizeFunction) {
set_size_function_kind(ZERO_SIZE_FUNCTION);
- ScopedThreadHeapUsage scoped_usage;
+ ThreadHeapUsageTracker usage_tracker;
+ usage_tracker.Start();
- ScopedThreadHeapUsage::ThreadAllocatorUsage u1 =
- ScopedThreadHeapUsage::CurrentUsage();
+ ThreadHeapUsage u1 = ThreadHeapUsageTracker::GetUsageSnapshot();
EXPECT_EQ(0U, u1.alloc_ops);
EXPECT_EQ(0U, u1.alloc_bytes);
EXPECT_EQ(0U, u1.alloc_overhead_bytes);
@@ -286,8 +289,8 @@ TEST_F(ScopedThreadHeapUsageTest, SimpleUsageWithZeroSizeFunction) {
void* ptr = MockMalloc(kAllocSize);
MockFree(ptr);
- ScopedThreadHeapUsage::ThreadAllocatorUsage u2 =
- ScopedThreadHeapUsage::CurrentUsage();
+ usage_tracker.Stop(false);
+ ThreadHeapUsage u2 = usage_tracker.usage();
// With a get-size function that returns zero, there's no way to get the size
// of an allocation that's being freed, hence the shim can't tally freed bytes
@@ -300,16 +303,16 @@ TEST_F(ScopedThreadHeapUsageTest, SimpleUsageWithZeroSizeFunction) {
EXPECT_EQ(0U, u2.max_allocated_bytes);
}
-TEST_F(ScopedThreadHeapUsageTest, ReallocCorrectlyTallied) {
+TEST_F(ThreadHeapUsageTrackerTest, ReallocCorrectlyTallied) {
const size_t kAllocSize = 237U;
{
- ScopedThreadHeapUsage scoped_usage;
+ ThreadHeapUsageTracker usage_tracker;
+ usage_tracker.Start();
// Reallocating nullptr should count as a single alloc.
void* ptr = MockRealloc(nullptr, kAllocSize);
- ScopedThreadHeapUsage::ThreadAllocatorUsage usage =
- ScopedThreadHeapUsage::CurrentUsage();
+ ThreadHeapUsage usage = ThreadHeapUsageTracker::GetUsageSnapshot();
EXPECT_EQ(1U, usage.alloc_ops);
EXPECT_EQ(kAllocSize, usage.alloc_bytes);
EXPECT_EQ(0U, usage.alloc_overhead_bytes);
@@ -321,13 +324,13 @@ TEST_F(ScopedThreadHeapUsageTest, ReallocCorrectlyTallied) {
// free.
ptr = MockRealloc(ptr, 0U);
- usage = ScopedThreadHeapUsage::CurrentUsage();
- EXPECT_EQ(1U, usage.alloc_ops);
- EXPECT_EQ(kAllocSize, usage.alloc_bytes);
- EXPECT_EQ(0U, usage.alloc_overhead_bytes);
- EXPECT_EQ(1U, usage.free_ops);
- EXPECT_EQ(kAllocSize, usage.free_bytes);
- EXPECT_EQ(kAllocSize, usage.max_allocated_bytes);
+ usage_tracker.Stop(false);
+ EXPECT_EQ(1U, usage_tracker.usage().alloc_ops);
+ EXPECT_EQ(kAllocSize, usage_tracker.usage().alloc_bytes);
+ EXPECT_EQ(0U, usage_tracker.usage().alloc_overhead_bytes);
+ EXPECT_EQ(1U, usage_tracker.usage().free_ops);
+ EXPECT_EQ(kAllocSize, usage_tracker.usage().free_bytes);
+ EXPECT_EQ(kAllocSize, usage_tracker.usage().max_allocated_bytes);
// Realloc to zero size may or may not return a nullptr - make sure to
// free the zero-size alloc in the latter case.
@@ -336,11 +339,11 @@ TEST_F(ScopedThreadHeapUsageTest, ReallocCorrectlyTallied) {
}
{
- ScopedThreadHeapUsage scoped_usage;
+ ThreadHeapUsageTracker usage_tracker;
+ usage_tracker.Start();
void* ptr = MockMalloc(kAllocSize);
- ScopedThreadHeapUsage::ThreadAllocatorUsage usage =
- ScopedThreadHeapUsage::CurrentUsage();
+ ThreadHeapUsage usage = ThreadHeapUsageTracker::GetUsageSnapshot();
EXPECT_EQ(1U, usage.alloc_ops);
// Now try reallocating a valid pointer to a larger size, this should count
@@ -348,82 +351,171 @@ TEST_F(ScopedThreadHeapUsageTest, ReallocCorrectlyTallied) {
const size_t kLargerAllocSize = kAllocSize + 928U;
ptr = MockRealloc(ptr, kLargerAllocSize);
- usage = ScopedThreadHeapUsage::CurrentUsage();
- EXPECT_EQ(2U, usage.alloc_ops);
- EXPECT_EQ(kAllocSize + kLargerAllocSize, usage.alloc_bytes);
- EXPECT_EQ(0U, usage.alloc_overhead_bytes);
- EXPECT_EQ(1U, usage.free_ops);
- EXPECT_EQ(kAllocSize, usage.free_bytes);
- EXPECT_EQ(kLargerAllocSize, usage.max_allocated_bytes);
+ usage_tracker.Stop(false);
+ EXPECT_EQ(2U, usage_tracker.usage().alloc_ops);
+ EXPECT_EQ(kAllocSize + kLargerAllocSize, usage_tracker.usage().alloc_bytes);
+ EXPECT_EQ(0U, usage_tracker.usage().alloc_overhead_bytes);
+ EXPECT_EQ(1U, usage_tracker.usage().free_ops);
+ EXPECT_EQ(kAllocSize, usage_tracker.usage().free_bytes);
+ EXPECT_EQ(kLargerAllocSize, usage_tracker.usage().max_allocated_bytes);
MockFree(ptr);
}
}
-TEST_F(ScopedThreadHeapUsageTest, NestedMaxWorks) {
- ScopedThreadHeapUsage outer_scoped_usage;
+TEST_F(ThreadHeapUsageTrackerTest, NestedMaxWorks) {
+ ThreadHeapUsageTracker usage_tracker;
+ usage_tracker.Start();
const size_t kOuterAllocSize = 1029U;
void* ptr = MockMalloc(kOuterAllocSize);
MockFree(ptr);
EXPECT_EQ(kOuterAllocSize,
- ScopedThreadHeapUsage::CurrentUsage().max_allocated_bytes);
+ ThreadHeapUsageTracker::GetUsageSnapshot().max_allocated_bytes);
{
- ScopedThreadHeapUsage inner_scoped_usage;
+ ThreadHeapUsageTracker inner_usage_tracker;
+ inner_usage_tracker.Start();
const size_t kInnerAllocSize = 673U;
ptr = MockMalloc(kInnerAllocSize);
MockFree(ptr);
- EXPECT_EQ(kInnerAllocSize,
- ScopedThreadHeapUsage::CurrentUsage().max_allocated_bytes);
+ inner_usage_tracker.Stop(false);
+
+ EXPECT_EQ(kInnerAllocSize, inner_usage_tracker.usage().max_allocated_bytes);
}
// The greater, outer allocation size should have been restored.
EXPECT_EQ(kOuterAllocSize,
- ScopedThreadHeapUsage::CurrentUsage().max_allocated_bytes);
+ ThreadHeapUsageTracker::GetUsageSnapshot().max_allocated_bytes);
const size_t kLargerInnerAllocSize = kOuterAllocSize + 673U;
{
- ScopedThreadHeapUsage inner_scoped_usage;
+ ThreadHeapUsageTracker inner_usage_tracker;
+ inner_usage_tracker.Start();
ptr = MockMalloc(kLargerInnerAllocSize);
MockFree(ptr);
+ inner_usage_tracker.Stop(false);
EXPECT_EQ(kLargerInnerAllocSize,
- ScopedThreadHeapUsage::CurrentUsage().max_allocated_bytes);
+ inner_usage_tracker.usage().max_allocated_bytes);
}
// The greater, inner allocation size should have been preserved.
EXPECT_EQ(kLargerInnerAllocSize,
- ScopedThreadHeapUsage::CurrentUsage().max_allocated_bytes);
+ ThreadHeapUsageTracker::GetUsageSnapshot().max_allocated_bytes);
// Now try the case with an outstanding net alloc size when entering the
// inner scope.
void* outer_ptr = MockMalloc(kOuterAllocSize);
EXPECT_EQ(kLargerInnerAllocSize,
- ScopedThreadHeapUsage::CurrentUsage().max_allocated_bytes);
+ ThreadHeapUsageTracker::GetUsageSnapshot().max_allocated_bytes);
{
- ScopedThreadHeapUsage inner_scoped_usage;
+ ThreadHeapUsageTracker inner_usage_tracker;
+ inner_usage_tracker.Start();
ptr = MockMalloc(kLargerInnerAllocSize);
MockFree(ptr);
+ inner_usage_tracker.Stop(false);
EXPECT_EQ(kLargerInnerAllocSize,
- ScopedThreadHeapUsage::CurrentUsage().max_allocated_bytes);
+ inner_usage_tracker.usage().max_allocated_bytes);
}
// While the inner scope saw only the inner net outstanding allocation size,
// the outer scope saw both outstanding at the same time.
EXPECT_EQ(kOuterAllocSize + kLargerInnerAllocSize,
- ScopedThreadHeapUsage::CurrentUsage().max_allocated_bytes);
+ ThreadHeapUsageTracker::GetUsageSnapshot().max_allocated_bytes);
MockFree(outer_ptr);
+
+ // Test a net-negative scope.
+ ptr = MockMalloc(kLargerInnerAllocSize);
+ {
+ ThreadHeapUsageTracker inner_usage_tracker;
+ inner_usage_tracker.Start();
+
+ MockFree(ptr);
+
+ const size_t kInnerAllocSize = 1;
+ ptr = MockMalloc(kInnerAllocSize);
+
+ inner_usage_tracker.Stop(false);
+ // Since the scope is still net-negative, the max is clamped at zero.
+ EXPECT_EQ(0U, inner_usage_tracker.usage().max_allocated_bytes);
+ }
+
+ MockFree(ptr);
}
-TEST_F(ScopedThreadHeapUsageTest, AllShimFunctionsAreProvided) {
+TEST_F(ThreadHeapUsageTrackerTest, NoStopImpliesInclusive) {
+ ThreadHeapUsageTracker usage_tracker;
+ usage_tracker.Start();
+
+ const size_t kOuterAllocSize = 1029U;
+ void* ptr = MockMalloc(kOuterAllocSize);
+ MockFree(ptr);
+
+ ThreadHeapUsage usage = ThreadHeapUsageTracker::GetUsageSnapshot();
+ EXPECT_EQ(kOuterAllocSize, usage.max_allocated_bytes);
+
+ const size_t kInnerLargerAllocSize = kOuterAllocSize + 673U;
+
+ {
+ ThreadHeapUsageTracker inner_usage_tracker;
+ inner_usage_tracker.Start();
+
+ // Make a larger allocation than the outer scope.
+ ptr = MockMalloc(kInnerLargerAllocSize);
+ MockFree(ptr);
+
+ // inner_usage_tracker goes out of scope without a Stop().
+ }
+
+ ThreadHeapUsage current = ThreadHeapUsageTracker::GetUsageSnapshot();
+ EXPECT_EQ(usage.alloc_ops + 1, current.alloc_ops);
+ EXPECT_EQ(usage.alloc_bytes + kInnerLargerAllocSize, current.alloc_bytes);
+ EXPECT_EQ(usage.free_ops + 1, current.free_ops);
+ EXPECT_EQ(usage.free_bytes + kInnerLargerAllocSize, current.free_bytes);
+ EXPECT_EQ(kInnerLargerAllocSize, current.max_allocated_bytes);
+}
+
+TEST_F(ThreadHeapUsageTrackerTest, ExclusiveScopesWork) {
+ ThreadHeapUsageTracker usage_tracker;
+ usage_tracker.Start();
+
+ const size_t kOuterAllocSize = 1029U;
+ void* ptr = MockMalloc(kOuterAllocSize);
+ MockFree(ptr);
+
+ ThreadHeapUsage usage = ThreadHeapUsageTracker::GetUsageSnapshot();
+ EXPECT_EQ(kOuterAllocSize, usage.max_allocated_bytes);
+
+ {
+ ThreadHeapUsageTracker inner_usage_tracker;
+ inner_usage_tracker.Start();
+
+ // Make a larger allocation than the outer scope.
+ ptr = MockMalloc(kOuterAllocSize + 673U);
+ MockFree(ptr);
+
+ // This tracker is exlusive, all activity should be private to this scope.
+ inner_usage_tracker.Stop(true);
+ }
+
+ ThreadHeapUsage current = ThreadHeapUsageTracker::GetUsageSnapshot();
+ EXPECT_EQ(usage.alloc_ops, current.alloc_ops);
+ EXPECT_EQ(usage.alloc_bytes, current.alloc_bytes);
+ EXPECT_EQ(usage.alloc_overhead_bytes, current.alloc_overhead_bytes);
+ EXPECT_EQ(usage.free_ops, current.free_ops);
+ EXPECT_EQ(usage.free_bytes, current.free_bytes);
+ EXPECT_EQ(usage.max_allocated_bytes, current.max_allocated_bytes);
+}
+
+TEST_F(ThreadHeapUsageTrackerTest, AllShimFunctionsAreProvided) {
const size_t kAllocSize = 100;
void* alloc = MockMalloc(kAllocSize);
size_t estimate = MockGetSizeEstimate(alloc);
@@ -446,26 +538,29 @@ TEST_F(ScopedThreadHeapUsageTest, AllShimFunctionsAreProvided) {
}
#if BUILDFLAG(USE_EXPERIMENTAL_ALLOCATOR_SHIM)
-TEST(ScopedThreadHeapShimTest, HooksIntoMallocWhenShimAvailable) {
- ScopedThreadHeapUsage::Initialize();
- ScopedThreadHeapUsage::EnableHeapTracking();
+TEST(ThreadHeapUsageShimTest, HooksIntoMallocWhenShimAvailable) {
+ ASSERT_FALSE(ThreadHeapUsageTracker::IsHeapTrackingEnabled());
+
+ ThreadHeapUsageTracker::EnableHeapTracking();
+
+ ASSERT_TRUE(ThreadHeapUsageTracker::IsHeapTrackingEnabled());
const size_t kAllocSize = 9993;
// This test verifies that the scoped heap data is affected by malloc &
// free only when the shim is available.
- ScopedThreadHeapUsage scoped_usage;
+ ThreadHeapUsageTracker usage_tracker;
+ usage_tracker.Start();
- ScopedThreadHeapUsage::ThreadAllocatorUsage u1 =
- ScopedThreadHeapUsage::CurrentUsage();
+ ThreadHeapUsage u1 = ThreadHeapUsageTracker::GetUsageSnapshot();
void* ptr = malloc(kAllocSize);
// Prevent the compiler from optimizing out the malloc/free pair.
ASSERT_NE(nullptr, ptr);
- ScopedThreadHeapUsage::ThreadAllocatorUsage u2 =
- ScopedThreadHeapUsage::CurrentUsage();
+ ThreadHeapUsage u2 = ThreadHeapUsageTracker::GetUsageSnapshot();
free(ptr);
- ScopedThreadHeapUsage::ThreadAllocatorUsage u3 =
- ScopedThreadHeapUsage::CurrentUsage();
+
+ usage_tracker.Stop(false);
+ ThreadHeapUsage u3 = usage_tracker.usage();
// Verify that at least one allocation operation was recorded, and that free
// operations are at least monotonically growing.
@@ -479,7 +574,9 @@ TEST(ScopedThreadHeapShimTest, HooksIntoMallocWhenShimAvailable) {
// Verify that at least the one free operation above was recorded.
EXPECT_LE(u2.free_ops + 1, u3.free_ops);
- TestingScopedThreadHeapUsage::DisableHeapTrackingForTesting();
+ TestingThreadHeapUsageTracker::DisableHeapTrackingForTesting();
+
+ ASSERT_FALSE(ThreadHeapUsageTracker::IsHeapTrackingEnabled());
}
#endif // BUILDFLAG(USE_EXPERIMENTAL_ALLOCATOR_SHIM)
« no previous file with comments | « base/debug/thread_heap_usage_tracker.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698