Index: src/common/memory_unittest.cc |
diff --git a/src/common/memory_unittest.cc b/src/common/memory_unittest.cc |
index 1e511ca56ea7a41023baddd1dca0d741e90a6e2c..b271bc3ce6ed1eb9ed82c994006cef293727603e 100644 |
--- a/src/common/memory_unittest.cc |
+++ b/src/common/memory_unittest.cc |
@@ -38,11 +38,13 @@ typedef testing::Test PageAllocatorTest; |
TEST(PageAllocatorTest, Setup) { |
PageAllocator allocator; |
+ EXPECT_EQ(0, allocator.pages_allocated()); |
} |
TEST(PageAllocatorTest, SmallObjects) { |
PageAllocator allocator; |
+ EXPECT_EQ(0, allocator.pages_allocated()); |
for (unsigned i = 1; i < 1024; ++i) { |
uint8_t *p = reinterpret_cast<uint8_t*>(allocator.Alloc(i)); |
ASSERT_FALSE(p == NULL); |
@@ -53,8 +55,10 @@ TEST(PageAllocatorTest, SmallObjects) { |
TEST(PageAllocatorTest, LargeObject) { |
PageAllocator allocator; |
+ EXPECT_EQ(0, allocator.pages_allocated()); |
uint8_t *p = reinterpret_cast<uint8_t*>(allocator.Alloc(10000)); |
ASSERT_FALSE(p == NULL); |
+ EXPECT_EQ(3, allocator.pages_allocated()); |
for (unsigned i = 1; i < 10; ++i) { |
uint8_t *p = reinterpret_cast<uint8_t*>(allocator.Alloc(i)); |
ASSERT_FALSE(p == NULL); |
@@ -75,6 +79,7 @@ TEST(WastefulVectorTest, Setup) { |
TEST(WastefulVectorTest, Simple) { |
PageAllocator allocator_; |
+ EXPECT_EQ(0, allocator_.pages_allocated()); |
wasteful_vector<unsigned> v(&allocator_); |
for (unsigned i = 0; i < 256; ++i) { |
@@ -84,6 +89,7 @@ TEST(WastefulVectorTest, Simple) { |
} |
ASSERT_FALSE(v.empty()); |
ASSERT_EQ(v.size(), 256u); |
+ EXPECT_EQ(1, allocator_.pages_allocated()); |
for (unsigned i = 0; i < 256; ++i) |
ASSERT_EQ(v[i], i); |
} |
@@ -91,7 +97,28 @@ TEST(WastefulVectorTest, Simple) { |
TEST(WastefulVectorTest, UsesPageAllocator) { |
PageAllocator allocator_; |
wasteful_vector<unsigned> v(&allocator_); |
+ EXPECT_EQ(1, allocator_.pages_allocated()); |
v.push_back(1); |
ASSERT_TRUE(allocator_.OwnsPointer(&v[0])); |
} |
+ |
+TEST(WastefulVectorTest, AutoWastefulVector) { |
+ PageAllocator allocator_; |
+ EXPECT_EQ(0, allocator_.pages_allocated()); |
+ |
+ auto_wasteful_vector<unsigned, 4> v(&allocator_); |
+ EXPECT_EQ(0, allocator_.pages_allocated()); |
+ |
+ v.push_back(1); |
+ EXPECT_EQ(0, allocator_.pages_allocated()); |
+ EXPECT_FALSE(allocator_.OwnsPointer(&v[0])); |
+ |
+ v.resize(4); |
+ EXPECT_EQ(0, allocator_.pages_allocated()); |
+ EXPECT_FALSE(allocator_.OwnsPointer(&v[0])); |
+ |
+ v.resize(10); |
+ EXPECT_EQ(1, allocator_.pages_allocated()); |
+ EXPECT_TRUE(allocator_.OwnsPointer(&v[0])); |
+} |