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

Unified Diff: base/metrics/histogram_unittest.cc

Issue 1738063002: Refactor histogram_persistence to be a class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressed final review comments by Alexei Created 4 years, 9 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/metrics/histogram_samples.h ('k') | base/metrics/persistent_histogram_allocator.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/metrics/histogram_unittest.cc
diff --git a/base/metrics/histogram_unittest.cc b/base/metrics/histogram_unittest.cc
index beb6a71ede63c81168a851d099c9afbe8f2918bb..f621ec5b6ac0b9a31816ebd9720aa4b3e10fd798 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,27 @@ 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::CreateGlobalAllocatorOnPersistentMemory(
+ allocator_memory_.get(), kAllocatorMemorySize, 0, 0,
+ "HistogramAllocatorTest");
+ allocator_ =
+ PersistentHistogramAllocator::GetGlobalAllocator()->memory_allocator();
}
- void DestroyPersistentMemoryAllocator() {
+ void DestroyPersistentHistogramAllocator() {
allocator_ = nullptr;
- delete ReleasePersistentHistogramMemoryAllocatorForTesting();
+ PersistentHistogramAllocator::ReleaseGlobalAllocatorForTesting();
}
const bool use_persistent_histogram_allocator_;
@@ -97,8 +97,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 +125,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) {
« no previous file with comments | « base/metrics/histogram_samples.h ('k') | base/metrics/persistent_histogram_allocator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698