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

Unified Diff: base/metrics/persistent_memory_allocator_unittest.cc

Issue 2534643002: Add support for turning pointers back to references. (Closed)
Patch Set: added underflow check Created 4 years, 1 month 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/persistent_memory_allocator.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/metrics/persistent_memory_allocator_unittest.cc
diff --git a/base/metrics/persistent_memory_allocator_unittest.cc b/base/metrics/persistent_memory_allocator_unittest.cc
index 54635810399c60c6ee2447e5c93cdb59295e4b1f..85a058f217df60f259757f625950cd060c714e2e 100644
--- a/base/metrics/persistent_memory_allocator_unittest.cc
+++ b/base/metrics/persistent_memory_allocator_unittest.cc
@@ -121,6 +121,18 @@ TEST_F(PersistentMemoryAllocatorTest, AllocateAndIterate) {
EXPECT_EQ(meminfo0.total, meminfo1.total);
EXPECT_GT(meminfo0.free, meminfo1.free);
+ // Verify that pointers can be turned back into references and that invalid
+ // addresses return null.
+ char* memory1 = allocator_->GetAsArray<char>(block1, 1, 1);
+ ASSERT_TRUE(memory1);
+ EXPECT_EQ(block1, allocator_->GetAsReference(memory1, 0));
+ EXPECT_EQ(block1, allocator_->GetAsReference(memory1, 1));
+ EXPECT_EQ(0U, allocator_->GetAsReference(memory1, 2));
+ EXPECT_EQ(0U, allocator_->GetAsReference(memory1 + 1, 0));
+ EXPECT_EQ(0U, allocator_->GetAsReference(memory1 + 16, 0));
+ EXPECT_EQ(0U, allocator_->GetAsReference(nullptr, 0));
+ EXPECT_EQ(0U, allocator_->GetAsReference(&base_name, 0));
+
// Ensure that the test-object can be made iterable.
PersistentMemoryAllocator::Iterator iter1a(allocator_.get());
EXPECT_EQ(0U, iter1a.GetLast());
« no previous file with comments | « base/metrics/persistent_memory_allocator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698