| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/metrics/persistent_memory_allocator.h" | 5 #include "base/metrics/persistent_memory_allocator.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/files/file.h" | 9 #include "base/files/file.h" |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 EXPECT_EQ(1, allocs_samples->GetCount(sizeof(TestObject2))); | 174 EXPECT_EQ(1, allocs_samples->GetCount(sizeof(TestObject2))); |
| 175 #if !DCHECK_IS_ON() // DCHECK builds will die at a NOTREACHED(). | 175 #if !DCHECK_IS_ON() // DCHECK builds will die at a NOTREACHED(). |
| 176 EXPECT_EQ(0U, allocator_->Allocate(TEST_MEMORY_SIZE + 1, 0)); | 176 EXPECT_EQ(0U, allocator_->Allocate(TEST_MEMORY_SIZE + 1, 0)); |
| 177 allocs_samples = allocator_->allocs_histogram_->SnapshotSamples(); | 177 allocs_samples = allocator_->allocs_histogram_->SnapshotSamples(); |
| 178 EXPECT_EQ(3, allocs_samples->TotalCount()); | 178 EXPECT_EQ(3, allocs_samples->TotalCount()); |
| 179 EXPECT_EQ(1, allocs_samples->GetCount(0)); | 179 EXPECT_EQ(1, allocs_samples->GetCount(0)); |
| 180 #endif | 180 #endif |
| 181 | 181 |
| 182 // Check that an objcet's type can be changed. | 182 // Check that an objcet's type can be changed. |
| 183 EXPECT_EQ(2U, allocator_->GetType(block2)); | 183 EXPECT_EQ(2U, allocator_->GetType(block2)); |
| 184 allocator_->SetType(block2, 3); | 184 allocator_->ChangeType(block2, 3, 2); |
| 185 EXPECT_EQ(3U, allocator_->GetType(block2)); | 185 EXPECT_EQ(3U, allocator_->GetType(block2)); |
| 186 allocator_->SetType(block2, 2); | 186 allocator_->ChangeType(block2, 2, 3); |
| 187 EXPECT_EQ(2U, allocator_->GetType(block2)); | 187 EXPECT_EQ(2U, allocator_->GetType(block2)); |
| 188 | 188 |
| 189 // Create second allocator (read/write) using the same memory segment. | 189 // Create second allocator (read/write) using the same memory segment. |
| 190 std::unique_ptr<PersistentMemoryAllocator> allocator2( | 190 std::unique_ptr<PersistentMemoryAllocator> allocator2( |
| 191 new PersistentMemoryAllocator(mem_segment_.get(), TEST_MEMORY_SIZE, | 191 new PersistentMemoryAllocator(mem_segment_.get(), TEST_MEMORY_SIZE, |
| 192 TEST_MEMORY_PAGE, 0, "", false)); | 192 TEST_MEMORY_PAGE, 0, "", false)); |
| 193 EXPECT_EQ(TEST_ID, allocator2->Id()); | 193 EXPECT_EQ(TEST_ID, allocator2->Id()); |
| 194 EXPECT_FALSE(allocator2->used_histogram_); | 194 EXPECT_FALSE(allocator2->used_histogram_); |
| 195 EXPECT_FALSE(allocator2->allocs_histogram_); | 195 EXPECT_FALSE(allocator2->allocs_histogram_); |
| 196 EXPECT_NE(allocator2->allocs_histogram_, allocator_->allocs_histogram_); | 196 EXPECT_NE(allocator2->allocs_histogram_, allocator_->allocs_histogram_); |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 { | 504 { |
| 505 std::unique_ptr<SharedMemory> shmem1(new SharedMemory()); | 505 std::unique_ptr<SharedMemory> shmem1(new SharedMemory()); |
| 506 ASSERT_TRUE(shmem1->CreateAndMapAnonymous(TEST_MEMORY_SIZE)); | 506 ASSERT_TRUE(shmem1->CreateAndMapAnonymous(TEST_MEMORY_SIZE)); |
| 507 SharedPersistentMemoryAllocator local(std::move(shmem1), TEST_ID, "", | 507 SharedPersistentMemoryAllocator local(std::move(shmem1), TEST_ID, "", |
| 508 false); | 508 false); |
| 509 EXPECT_FALSE(local.IsReadonly()); | 509 EXPECT_FALSE(local.IsReadonly()); |
| 510 r123 = local.Allocate(123, 123); | 510 r123 = local.Allocate(123, 123); |
| 511 r456 = local.Allocate(456, 456); | 511 r456 = local.Allocate(456, 456); |
| 512 r789 = local.Allocate(789, 789); | 512 r789 = local.Allocate(789, 789); |
| 513 local.MakeIterable(r123); | 513 local.MakeIterable(r123); |
| 514 local.SetType(r456, 654); | 514 local.ChangeType(r456, 654, 456); |
| 515 local.MakeIterable(r789); | 515 local.MakeIterable(r789); |
| 516 local.GetMemoryInfo(&meminfo1); | 516 local.GetMemoryInfo(&meminfo1); |
| 517 EXPECT_FALSE(local.IsFull()); | 517 EXPECT_FALSE(local.IsFull()); |
| 518 EXPECT_FALSE(local.IsCorrupt()); | 518 EXPECT_FALSE(local.IsCorrupt()); |
| 519 | 519 |
| 520 ASSERT_TRUE(local.shared_memory()->ShareToProcess( | 520 ASSERT_TRUE(local.shared_memory()->ShareToProcess( |
| 521 GetCurrentProcessHandle(), | 521 GetCurrentProcessHandle(), |
| 522 &shared_handle)); | 522 &shared_handle)); |
| 523 } | 523 } |
| 524 | 524 |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 591 | 591 |
| 592 PersistentMemoryAllocator::MemoryInfo meminfo1; | 592 PersistentMemoryAllocator::MemoryInfo meminfo1; |
| 593 Reference r123, r456, r789; | 593 Reference r123, r456, r789; |
| 594 { | 594 { |
| 595 LocalPersistentMemoryAllocator local(TEST_MEMORY_SIZE, TEST_ID, ""); | 595 LocalPersistentMemoryAllocator local(TEST_MEMORY_SIZE, TEST_ID, ""); |
| 596 EXPECT_FALSE(local.IsReadonly()); | 596 EXPECT_FALSE(local.IsReadonly()); |
| 597 r123 = local.Allocate(123, 123); | 597 r123 = local.Allocate(123, 123); |
| 598 r456 = local.Allocate(456, 456); | 598 r456 = local.Allocate(456, 456); |
| 599 r789 = local.Allocate(789, 789); | 599 r789 = local.Allocate(789, 789); |
| 600 local.MakeIterable(r123); | 600 local.MakeIterable(r123); |
| 601 local.SetType(r456, 654); | 601 local.ChangeType(r456, 654, 456); |
| 602 local.MakeIterable(r789); | 602 local.MakeIterable(r789); |
| 603 local.GetMemoryInfo(&meminfo1); | 603 local.GetMemoryInfo(&meminfo1); |
| 604 EXPECT_FALSE(local.IsFull()); | 604 EXPECT_FALSE(local.IsFull()); |
| 605 EXPECT_FALSE(local.IsCorrupt()); | 605 EXPECT_FALSE(local.IsCorrupt()); |
| 606 | 606 |
| 607 File writer(file_path, File::FLAG_CREATE | File::FLAG_WRITE); | 607 File writer(file_path, File::FLAG_CREATE | File::FLAG_WRITE); |
| 608 ASSERT_TRUE(writer.IsValid()); | 608 ASSERT_TRUE(writer.IsValid()); |
| 609 writer.Write(0, (const char*)local.data(), local.used()); | 609 writer.Write(0, (const char*)local.data(), local.used()); |
| 610 } | 610 } |
| 611 | 611 |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 779 } else { | 779 } else { |
| 780 // For filesize >= minsize, the file must be acceptable. This | 780 // For filesize >= minsize, the file must be acceptable. This |
| 781 // else clause (file-not-acceptable) should be reached only if | 781 // else clause (file-not-acceptable) should be reached only if |
| 782 // filesize < minsize. | 782 // filesize < minsize. |
| 783 EXPECT_GT(minsize, filesize); | 783 EXPECT_GT(minsize, filesize); |
| 784 } | 784 } |
| 785 } | 785 } |
| 786 } | 786 } |
| 787 | 787 |
| 788 } // namespace base | 788 } // namespace base |
| OLD | NEW |