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

Side by Side Diff: base/metrics/persistent_memory_allocator_unittest.cc

Issue 2275553005: //base: Make ScopedTempDir::path() a GetPath() with a DCHECK (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments Created 4 years, 3 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 unified diff | Download patch
« no previous file with comments | « base/metrics/persistent_histogram_allocator_unittest.cc ('k') | base/path_service_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 595 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 EXPECT_EQ(42U, type); 606 EXPECT_EQ(42U, type);
607 } 607 }
608 608
609 609
610 #if !defined(OS_NACL) 610 #if !defined(OS_NACL)
611 //----- FilePersistentMemoryAllocator ------------------------------------------ 611 //----- FilePersistentMemoryAllocator ------------------------------------------
612 612
613 TEST(FilePersistentMemoryAllocatorTest, CreationTest) { 613 TEST(FilePersistentMemoryAllocatorTest, CreationTest) {
614 ScopedTempDir temp_dir; 614 ScopedTempDir temp_dir;
615 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 615 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
616 FilePath file_path = temp_dir.path().AppendASCII("persistent_memory"); 616 FilePath file_path = temp_dir.GetPath().AppendASCII("persistent_memory");
617 617
618 PersistentMemoryAllocator::MemoryInfo meminfo1; 618 PersistentMemoryAllocator::MemoryInfo meminfo1;
619 Reference r123, r456, r789; 619 Reference r123, r456, r789;
620 { 620 {
621 LocalPersistentMemoryAllocator local(TEST_MEMORY_SIZE, TEST_ID, ""); 621 LocalPersistentMemoryAllocator local(TEST_MEMORY_SIZE, TEST_ID, "");
622 EXPECT_FALSE(local.IsReadonly()); 622 EXPECT_FALSE(local.IsReadonly());
623 r123 = local.Allocate(123, 123); 623 r123 = local.Allocate(123, 123);
624 r456 = local.Allocate(456, 456); 624 r456 = local.Allocate(456, 456);
625 r789 = local.Allocate(789, 789); 625 r789 = local.Allocate(789, 789);
626 local.MakeIterable(r123); 626 local.MakeIterable(r123);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 file.GetMemoryInfo(&meminfo2); 661 file.GetMemoryInfo(&meminfo2);
662 EXPECT_GE(meminfo1.total, meminfo2.total); 662 EXPECT_GE(meminfo1.total, meminfo2.total);
663 EXPECT_GE(meminfo1.free, meminfo2.free); 663 EXPECT_GE(meminfo1.free, meminfo2.free);
664 EXPECT_EQ(mmlength, meminfo2.total); 664 EXPECT_EQ(mmlength, meminfo2.total);
665 EXPECT_EQ(0U, meminfo2.free); 665 EXPECT_EQ(0U, meminfo2.free);
666 } 666 }
667 667
668 TEST(FilePersistentMemoryAllocatorTest, ExtendTest) { 668 TEST(FilePersistentMemoryAllocatorTest, ExtendTest) {
669 ScopedTempDir temp_dir; 669 ScopedTempDir temp_dir;
670 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 670 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
671 FilePath file_path = temp_dir.path().AppendASCII("extend_test"); 671 FilePath file_path = temp_dir.GetPath().AppendASCII("extend_test");
672 MemoryMappedFile::Region region = {0, 16 << 10}; // 16KiB maximum size. 672 MemoryMappedFile::Region region = {0, 16 << 10}; // 16KiB maximum size.
673 673
674 // Start with a small but valid file of persistent data. 674 // Start with a small but valid file of persistent data.
675 ASSERT_FALSE(PathExists(file_path)); 675 ASSERT_FALSE(PathExists(file_path));
676 { 676 {
677 LocalPersistentMemoryAllocator local(TEST_MEMORY_SIZE, TEST_ID, ""); 677 LocalPersistentMemoryAllocator local(TEST_MEMORY_SIZE, TEST_ID, "");
678 local.Allocate(1, 1); 678 local.Allocate(1, 1);
679 local.Allocate(11, 11); 679 local.Allocate(11, 11);
680 680
681 File writer(file_path, File::FLAG_CREATE | File::FLAG_WRITE); 681 File writer(file_path, File::FLAG_CREATE | File::FLAG_WRITE);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 local.MakeIterable(local.Allocate(1, 1)); 727 local.MakeIterable(local.Allocate(1, 1));
728 local.MakeIterable(local.Allocate(11, 11)); 728 local.MakeIterable(local.Allocate(11, 11));
729 const size_t minsize = local.used(); 729 const size_t minsize = local.used();
730 std::unique_ptr<char[]> garbage(new char[minsize]); 730 std::unique_ptr<char[]> garbage(new char[minsize]);
731 RandBytes(garbage.get(), minsize); 731 RandBytes(garbage.get(), minsize);
732 732
733 std::unique_ptr<MemoryMappedFile> mmfile; 733 std::unique_ptr<MemoryMappedFile> mmfile;
734 char filename[100]; 734 char filename[100];
735 for (size_t filesize = minsize; filesize > 0; --filesize) { 735 for (size_t filesize = minsize; filesize > 0; --filesize) {
736 strings::SafeSPrintf(filename, "memory_%d_A", filesize); 736 strings::SafeSPrintf(filename, "memory_%d_A", filesize);
737 FilePath file_path = temp_dir.path().AppendASCII(filename); 737 FilePath file_path = temp_dir.GetPath().AppendASCII(filename);
738 ASSERT_FALSE(PathExists(file_path)); 738 ASSERT_FALSE(PathExists(file_path));
739 { 739 {
740 File writer(file_path, File::FLAG_CREATE | File::FLAG_WRITE); 740 File writer(file_path, File::FLAG_CREATE | File::FLAG_WRITE);
741 ASSERT_TRUE(writer.IsValid()); 741 ASSERT_TRUE(writer.IsValid());
742 writer.Write(0, (const char*)local.data(), filesize); 742 writer.Write(0, (const char*)local.data(), filesize);
743 } 743 }
744 ASSERT_TRUE(PathExists(file_path)); 744 ASSERT_TRUE(PathExists(file_path));
745 745
746 // Request read/write access for some sizes that are a multple of the 746 // Request read/write access for some sizes that are a multple of the
747 // allocator's alignment size. The allocator is strict about file size 747 // allocator's alignment size. The allocator is strict about file size
(...skipping 29 matching lines...) Expand all
777 // Ensure that short files are detected as corrupt and full files are not. 777 // Ensure that short files are detected as corrupt and full files are not.
778 EXPECT_EQ(filesize != minsize, allocator.IsCorrupt()); 778 EXPECT_EQ(filesize != minsize, allocator.IsCorrupt());
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_LT(filesize, minsize); 783 EXPECT_LT(filesize, minsize);
784 } 784 }
785 785
786 strings::SafeSPrintf(filename, "memory_%d_B", filesize); 786 strings::SafeSPrintf(filename, "memory_%d_B", filesize);
787 file_path = temp_dir.path().AppendASCII(filename); 787 file_path = temp_dir.GetPath().AppendASCII(filename);
788 ASSERT_FALSE(PathExists(file_path)); 788 ASSERT_FALSE(PathExists(file_path));
789 { 789 {
790 File writer(file_path, File::FLAG_CREATE | File::FLAG_WRITE); 790 File writer(file_path, File::FLAG_CREATE | File::FLAG_WRITE);
791 ASSERT_TRUE(writer.IsValid()); 791 ASSERT_TRUE(writer.IsValid());
792 writer.Write(0, (const char*)garbage.get(), filesize); 792 writer.Write(0, (const char*)garbage.get(), filesize);
793 } 793 }
794 ASSERT_TRUE(PathExists(file_path)); 794 ASSERT_TRUE(PathExists(file_path));
795 795
796 mmfile.reset(new MemoryMappedFile()); 796 mmfile.reset(new MemoryMappedFile());
797 mmfile->Initialize(File(file_path, file_flags), map_access); 797 mmfile->Initialize(File(file_path, file_flags), map_access);
798 EXPECT_EQ(filesize, mmfile->length()); 798 EXPECT_EQ(filesize, mmfile->length());
799 if (FilePersistentMemoryAllocator::IsFileAcceptable(*mmfile, read_only)) { 799 if (FilePersistentMemoryAllocator::IsFileAcceptable(*mmfile, read_only)) {
800 // Make sure construction doesn't crash. It will, however, cause 800 // Make sure construction doesn't crash. It will, however, cause
801 // error messages warning about about a corrupted memory segment. 801 // error messages warning about about a corrupted memory segment.
802 FilePersistentMemoryAllocator allocator(std::move(mmfile), 0, 0, "", 802 FilePersistentMemoryAllocator allocator(std::move(mmfile), 0, 0, "",
803 read_only); 803 read_only);
804 EXPECT_TRUE(allocator.IsCorrupt()); // Garbage data so it should be. 804 EXPECT_TRUE(allocator.IsCorrupt()); // Garbage data so it should be.
805 } else { 805 } else {
806 // For filesize >= minsize, the file must be acceptable. This 806 // For filesize >= minsize, the file must be acceptable. This
807 // else clause (file-not-acceptable) should be reached only if 807 // else clause (file-not-acceptable) should be reached only if
808 // filesize < minsize. 808 // filesize < minsize.
809 EXPECT_GT(minsize, filesize); 809 EXPECT_GT(minsize, filesize);
810 } 810 }
811 } 811 }
812 } 812 }
813 #endif // !defined(OS_NACL) 813 #endif // !defined(OS_NACL)
814 814
815 } // namespace base 815 } // namespace base
OLDNEW
« no previous file with comments | « base/metrics/persistent_histogram_allocator_unittest.cc ('k') | base/path_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698