| Index: base/metrics/histogram_unittest.cc
|
| diff --git a/base/metrics/histogram_unittest.cc b/base/metrics/histogram_unittest.cc
|
| index beb6a71ede63c81168a851d099c9afbe8f2918bb..93708732c3e889b07b4c47e9bcd91725d519b94a 100644
|
| --- a/base/metrics/histogram_unittest.cc
|
| +++ b/base/metrics/histogram_unittest.cc
|
| @@ -16,7 +16,7 @@
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/metrics/bucket_ranges.h"
|
| #include "base/metrics/histogram_macros.h"
|
| -#include "base/metrics/histogram_persistence.h"
|
| +#include "base/metrics/persistent_histogram_allocator.h"
|
| #include "base/metrics/persistent_memory_allocator.h"
|
| #include "base/metrics/sample_vector.h"
|
| #include "base/metrics/statistics_recorder.h"
|
| @@ -41,7 +41,7 @@ class HistogramTest : public testing::TestWithParam<bool> {
|
| // registered).
|
| InitializeStatisticsRecorder();
|
| if (use_persistent_histogram_allocator_)
|
| - CreatePersistentMemoryAllocator();
|
| + CreatePersistentHistogramAllocator();
|
| }
|
|
|
| void TearDown() override {
|
| @@ -50,7 +50,7 @@ class HistogramTest : public testing::TestWithParam<bool> {
|
| ASSERT_FALSE(allocator_->IsCorrupt());
|
| }
|
| UninitializeStatisticsRecorder();
|
| - DestroyPersistentMemoryAllocator();
|
| + DestroyPersistentHistogramAllocator();
|
| }
|
|
|
| void InitializeStatisticsRecorder() {
|
| @@ -63,27 +63,29 @@ class HistogramTest : public testing::TestWithParam<bool> {
|
| statistics_recorder_ = NULL;
|
| }
|
|
|
| - void CreatePersistentMemoryAllocator() {
|
| + void CreatePersistentHistogramAllocator() {
|
| // By getting the results-histogram before any persistent allocator
|
| // is attached, that histogram is guaranteed not to be stored in
|
| // any persistent memory segment (which simplifies some tests).
|
| - GetCreateHistogramResultHistogram();
|
| + PersistentHistogramAllocator::GetCreateHistogramResultHistogram();
|
|
|
| if (!allocator_memory_)
|
| allocator_memory_.reset(new char[kAllocatorMemorySize]);
|
|
|
| - delete ReleasePersistentHistogramMemoryAllocatorForTesting();
|
| + PersistentHistogramAllocator::ReleaseGlobalAllocatorForTesting();
|
| memset(allocator_memory_.get(), 0, kAllocatorMemorySize);
|
| - SetPersistentHistogramMemoryAllocator(
|
| - new PersistentMemoryAllocator(
|
| - allocator_memory_.get(), kAllocatorMemorySize, 0,
|
| - 0, "HistogramAllocatorTest", false));
|
| - allocator_ = GetPersistentHistogramMemoryAllocator();
|
| + PersistentHistogramAllocator::SetGlobalAllocator(
|
| + make_scoped_ptr(new PersistentHistogramAllocator(
|
| + make_scoped_ptr(new PersistentMemoryAllocator(
|
| + allocator_memory_.get(), kAllocatorMemorySize, 0, 0,
|
| + "HistogramAllocatorTest", false)))));
|
| + allocator_ =
|
| + PersistentHistogramAllocator::GetGlobalAllocator()->memory_allocator();
|
| }
|
|
|
| - void DestroyPersistentMemoryAllocator() {
|
| + void DestroyPersistentHistogramAllocator() {
|
| allocator_ = nullptr;
|
| - delete ReleasePersistentHistogramMemoryAllocatorForTesting();
|
| + PersistentHistogramAllocator::ReleaseGlobalAllocatorForTesting();
|
| }
|
|
|
| const bool use_persistent_histogram_allocator_;
|
| @@ -97,8 +99,7 @@ class HistogramTest : public testing::TestWithParam<bool> {
|
| };
|
|
|
| // Run all HistogramTest cases with both heap and persistent memory.
|
| -INSTANTIATE_TEST_CASE_P(HeapAndPersistent, HistogramTest,
|
| - testing::Bool());
|
| +INSTANTIATE_TEST_CASE_P(HeapAndPersistent, HistogramTest, testing::Bool());
|
|
|
|
|
| // Check for basic syntax and use.
|
| @@ -126,94 +127,6 @@ TEST_P(HistogramTest, BasicTest) {
|
| LOCAL_HISTOGRAM_ENUMERATION("Test6Histogram", 129, 130);
|
| }
|
|
|
| -// Check for basic syntax and use with persistent allocator.
|
| -TEST_P(HistogramTest, PersistentTest) {
|
| - if (!use_persistent_histogram_allocator_)
|
| - return;
|
| -
|
| - PersistentMemoryAllocator::MemoryInfo meminfo0;
|
| - allocator_->GetMemoryInfo(&meminfo0);
|
| -
|
| - // Try basic construction
|
| - HistogramBase* histogram = Histogram::FactoryGet(
|
| - "TestHistogram", 1, 1000, 10,
|
| - HistogramBase::kIsPersistent);
|
| - EXPECT_TRUE(histogram);
|
| - histogram->CheckName("TestHistogram");
|
| - PersistentMemoryAllocator::MemoryInfo meminfo1;
|
| - allocator_->GetMemoryInfo(&meminfo1);
|
| - EXPECT_GT(meminfo0.free, meminfo1.free);
|
| -
|
| - HistogramBase* linear_histogram = LinearHistogram::FactoryGet(
|
| - "TestLinearHistogram", 1, 1000, 10,
|
| - HistogramBase::kIsPersistent);
|
| - EXPECT_TRUE(linear_histogram);
|
| - linear_histogram->CheckName("TestLinearHistogram");
|
| - PersistentMemoryAllocator::MemoryInfo meminfo2;
|
| - allocator_->GetMemoryInfo(&meminfo2);
|
| - EXPECT_GT(meminfo1.free, meminfo2.free);
|
| -
|
| - HistogramBase* boolean_histogram = BooleanHistogram::FactoryGet(
|
| - "TestBooleanHistogram", HistogramBase::kIsPersistent);
|
| - EXPECT_TRUE(boolean_histogram);
|
| - boolean_histogram->CheckName("TestBooleanHistogram");
|
| - PersistentMemoryAllocator::MemoryInfo meminfo3;
|
| - allocator_->GetMemoryInfo(&meminfo3);
|
| - EXPECT_GT(meminfo2.free, meminfo3.free);
|
| -
|
| - std::vector<int> custom_ranges;
|
| - custom_ranges.push_back(1);
|
| - custom_ranges.push_back(5);
|
| - HistogramBase* custom_histogram = CustomHistogram::FactoryGet(
|
| - "TestCustomHistogram", custom_ranges,
|
| - HistogramBase::kIsPersistent);
|
| - EXPECT_TRUE(custom_histogram);
|
| - custom_histogram->CheckName("TestCustomHistogram");
|
| - PersistentMemoryAllocator::MemoryInfo meminfo4;
|
| - allocator_->GetMemoryInfo(&meminfo4);
|
| - EXPECT_GT(meminfo3.free, meminfo4.free);
|
| -
|
| - PersistentMemoryAllocator::Iterator iter;
|
| - uint32_t type;
|
| - allocator_->CreateIterator(&iter);
|
| - EXPECT_NE(0U, allocator_->GetNextIterable(&iter, &type)); // Histogram
|
| - EXPECT_NE(0U, allocator_->GetNextIterable(&iter, &type)); // LinearHistogram
|
| - EXPECT_NE(0U, allocator_->GetNextIterable(&iter, &type)); // BooleanHistogram
|
| - EXPECT_NE(0U, allocator_->GetNextIterable(&iter, &type)); // CustomHistogram
|
| - EXPECT_EQ(0U, allocator_->GetNextIterable(&iter, &type));
|
| -
|
| - // Create a second allocator and have it access the memory of the first.
|
| - scoped_ptr<HistogramBase> recovered;
|
| - PersistentMemoryAllocator recovery(
|
| - allocator_memory_.get(), kAllocatorMemorySize, 0,
|
| - 0, std::string(), false);
|
| - recovery.CreateIterator(&iter);
|
| -
|
| - recovered.reset(GetNextPersistentHistogram(&recovery, &iter));
|
| - ASSERT_TRUE(recovered);
|
| - recovered->CheckName("TestHistogram");
|
| -
|
| - recovered.reset(GetNextPersistentHistogram(&recovery, &iter));
|
| - ASSERT_TRUE(recovered);
|
| - recovered->CheckName("TestLinearHistogram");
|
| -
|
| - recovered.reset(GetNextPersistentHistogram(&recovery, &iter));
|
| - ASSERT_TRUE(recovered);
|
| - recovered->CheckName("TestBooleanHistogram");
|
| -
|
| - recovered.reset(GetNextPersistentHistogram(&recovery, &iter));
|
| - ASSERT_TRUE(recovered);
|
| - recovered->CheckName("TestCustomHistogram");
|
| -
|
| - recovered.reset(GetNextPersistentHistogram(&recovery, &iter));
|
| - EXPECT_FALSE(recovered);
|
| -
|
| - // Use standard macros (but with fixed samples)
|
| - LOCAL_HISTOGRAM_TIMES("Test2Histogram", TimeDelta::FromDays(1));
|
| - LOCAL_HISTOGRAM_COUNTS("Test3Histogram", 30);
|
| - LOCAL_HISTOGRAM_ENUMERATION("Test6Histogram", 129, 130);
|
| -}
|
| -
|
| // Check that the macro correctly matches histograms by name and records their
|
| // data together.
|
| TEST_P(HistogramTest, NameMatchTest) {
|
|
|