diff options
Diffstat (limited to 'chromium/media/base/unaligned_shared_memory_unittest.cc')
-rw-r--r-- | chromium/media/base/unaligned_shared_memory_unittest.cc | 137 |
1 files changed, 120 insertions, 17 deletions
diff --git a/chromium/media/base/unaligned_shared_memory_unittest.cc b/chromium/media/base/unaligned_shared_memory_unittest.cc index 067c3e15121..f7311ef5386 100644 --- a/chromium/media/base/unaligned_shared_memory_unittest.cc +++ b/chromium/media/base/unaligned_shared_memory_unittest.cc @@ -54,11 +54,32 @@ TEST(UnalignedSharedMemoryTest, CreateAndDestroy) { UnalignedSharedMemory shm(handle, kDataSize, true); } +TEST(UnalignedSharedMemoryTest, CreateAndDestroyRegion) { + auto region = CreateRegion(kData, kDataSize); + UnalignedSharedMemory shm( + base::UnsafeSharedMemoryRegion::TakeHandleForSerialization( + std::move(region)), + kDataSize, false); +} + +TEST(UnalignedSharedMemoryTest, CreateAndDestroyReadOnlyRegion) { + auto region = CreateReadOnlyRegion(kData, kDataSize); + UnalignedSharedMemory shm( + base::ReadOnlySharedMemoryRegion::TakeHandleForSerialization( + std::move(region)), + kDataSize, true); +} + TEST(UnalignedSharedMemoryTest, CreateAndDestroy_InvalidHandle) { base::SharedMemoryHandle handle; UnalignedSharedMemory shm(handle, kDataSize, true); } +TEST(UnalignedSharedMemoryTest, CreateAndDestroy_InvalidRegion) { + UnalignedSharedMemory shm(base::subtle::PlatformSharedMemoryRegion(), + kDataSize, false); +} + TEST(UnalignedSharedMemoryTest, Map) { auto handle = CreateHandle(kData, kDataSize); UnalignedSharedMemory shm(handle, kDataSize, true); @@ -66,6 +87,26 @@ TEST(UnalignedSharedMemoryTest, Map) { EXPECT_EQ(0, memcmp(shm.memory(), kData, kDataSize)); } +TEST(UnalignedSharedMemoryTest, MapRegion) { + auto region = CreateRegion(kData, kDataSize); + UnalignedSharedMemory shm( + base::UnsafeSharedMemoryRegion::TakeHandleForSerialization( + std::move(region)), + kDataSize, false); + ASSERT_TRUE(shm.MapAt(0, kDataSize)); + EXPECT_EQ(0, memcmp(shm.memory(), kData, kDataSize)); +} + +TEST(UnalignedSharedMemoryTest, MapReadOnlyRegion) { + auto region = CreateReadOnlyRegion(kData, kDataSize); + UnalignedSharedMemory shm( + base::ReadOnlySharedMemoryRegion::TakeHandleForSerialization( + std::move(region)), + kDataSize, true); + ASSERT_TRUE(shm.MapAt(0, kDataSize)); + EXPECT_EQ(0, memcmp(shm.memory(), kData, kDataSize)); +} + TEST(UnalignedSharedMemoryTest, Map_Unaligned) { auto handle = CreateHandle(kUnalignedData, kUnalignedDataSize); UnalignedSharedMemory shm(handle, kUnalignedDataSize, true); @@ -73,6 +114,26 @@ TEST(UnalignedSharedMemoryTest, Map_Unaligned) { EXPECT_EQ(0, memcmp(shm.memory(), kData, kDataSize)); } +TEST(UnalignedSharedMemoryTest, Map_UnalignedRegion) { + auto region = CreateRegion(kUnalignedData, kUnalignedDataSize); + UnalignedSharedMemory shm( + base::UnsafeSharedMemoryRegion::TakeHandleForSerialization( + std::move(region)), + kUnalignedDataSize, false); + ASSERT_TRUE(shm.MapAt(kUnalignedOffset, kDataSize)); + EXPECT_EQ(0, memcmp(shm.memory(), kData, kDataSize)); +} + +TEST(UnalignedSharedMemoryTest, Map_UnalignedReadOnlyRegion) { + auto region = CreateReadOnlyRegion(kUnalignedData, kUnalignedDataSize); + UnalignedSharedMemory shm( + base::ReadOnlySharedMemoryRegion::TakeHandleForSerialization( + std::move(region)), + kUnalignedDataSize, true); + ASSERT_TRUE(shm.MapAt(kUnalignedOffset, kDataSize)); + EXPECT_EQ(0, memcmp(shm.memory(), kData, kDataSize)); +} + TEST(UnalignedSharedMemoryTest, Map_InvalidHandle) { base::SharedMemoryHandle handle; UnalignedSharedMemory shm(handle, kDataSize, true); @@ -80,39 +141,88 @@ TEST(UnalignedSharedMemoryTest, Map_InvalidHandle) { EXPECT_EQ(shm.memory(), nullptr); } +TEST(UnalignedSharedMemoryTest, Map_InvalidRegion) { + UnalignedSharedMemory shm(base::subtle::PlatformSharedMemoryRegion(), + kDataSize, true); + ASSERT_FALSE(shm.MapAt(1, kDataSize)); + EXPECT_EQ(shm.memory(), nullptr); +} + TEST(UnalignedSharedMemoryTest, Map_NegativeOffset) { auto handle = CreateHandle(kData, kDataSize); UnalignedSharedMemory shm(handle, kDataSize, true); ASSERT_FALSE(shm.MapAt(-1, kDataSize)); } +TEST(UnalignedSharedMemoryTest, Map_NegativeOffsetRegion) { + auto region = CreateRegion(kData, kDataSize); + UnalignedSharedMemory shm( + base::UnsafeSharedMemoryRegion::TakeHandleForSerialization( + std::move(region)), + kDataSize, false); + ASSERT_FALSE(shm.MapAt(-1, kDataSize)); +} + +TEST(UnalignedSharedMemoryTest, Map_NegativeOffsetReadOnlyRegion) { + auto region = CreateReadOnlyRegion(kData, kDataSize); + UnalignedSharedMemory shm( + base::ReadOnlySharedMemoryRegion::TakeHandleForSerialization( + std::move(region)), + kDataSize, true); + ASSERT_FALSE(shm.MapAt(-1, kDataSize)); +} + TEST(UnalignedSharedMemoryTest, Map_SizeOverflow) { auto handle = CreateHandle(kData, kDataSize); UnalignedSharedMemory shm(handle, kDataSize, true); ASSERT_FALSE(shm.MapAt(1, std::numeric_limits<size_t>::max())); } +TEST(UnalignedSharedMemoryTest, Map_SizeOverflowRegion) { + auto region = CreateRegion(kData, kDataSize); + UnalignedSharedMemory shm( + base::UnsafeSharedMemoryRegion::TakeHandleForSerialization( + std::move(region)), + kDataSize, false); + ASSERT_FALSE(shm.MapAt(1, std::numeric_limits<size_t>::max())); +} + +TEST(UnalignedSharedMemoryTest, Map_SizeOverflowReadOnlyRegion) { + auto region = CreateReadOnlyRegion(kData, kDataSize); + UnalignedSharedMemory shm( + base::ReadOnlySharedMemoryRegion::TakeHandleForSerialization( + std::move(region)), + kDataSize, true); + ASSERT_FALSE(shm.MapAt(1, std::numeric_limits<size_t>::max())); +} + TEST(UnalignedSharedMemoryTest, UnmappedIsNullptr) { auto handle = CreateHandle(kData, kDataSize); UnalignedSharedMemory shm(handle, kDataSize, true); ASSERT_EQ(shm.memory(), nullptr); } -TEST(WritableUnalignedMappingTest, CreateAndDestroy) { +TEST(UnalignedSharedMemoryTest, UnmappedRegionIsNullptr) { auto region = CreateRegion(kData, kDataSize); - WritableUnalignedMapping shm(region, kDataSize, 0); - EXPECT_TRUE(shm.IsValid()); + UnalignedSharedMemory shm( + base::UnsafeSharedMemoryRegion::TakeHandleForSerialization( + std::move(region)), + kDataSize, false); + ASSERT_EQ(shm.memory(), nullptr); } -TEST(WritableUnalignedMappingTest, CreateAndDestroy_InvalidHandle) { - base::SharedMemoryHandle handle; - WritableUnalignedMapping shm(handle, kDataSize, 0); - EXPECT_FALSE(shm.IsValid()); +TEST(UnalignedSharedMemoryTest, UnmappedReadOnlyRegionIsNullptr) { + auto region = CreateReadOnlyRegion(kData, kDataSize); + UnalignedSharedMemory shm( + base::ReadOnlySharedMemoryRegion::TakeHandleForSerialization( + std::move(region)), + kDataSize, true); + ASSERT_EQ(shm.memory(), nullptr); } -TEST(WritableUnalignedMappingTest, CreateAndDestroyHandle) { - auto handle = CreateHandle(kData, kDataSize); - WritableUnalignedMapping shm(handle, kDataSize, 0); +TEST(WritableUnalignedMappingTest, CreateAndDestroy) { + auto region = CreateRegion(kData, kDataSize); + WritableUnalignedMapping shm(region, kDataSize, 0); EXPECT_TRUE(shm.IsValid()); } @@ -136,13 +246,6 @@ TEST(WritableUnalignedMappingTest, Map_Unaligned) { EXPECT_EQ(0, memcmp(shm.memory(), kData, kDataSize)); } -TEST(WritableUnalignedMappingTest, Map_UnalignedHandle) { - auto region = CreateHandle(kUnalignedData, kUnalignedDataSize); - WritableUnalignedMapping shm(region, kDataSize, kUnalignedOffset); - ASSERT_TRUE(shm.IsValid()); - EXPECT_EQ(0, memcmp(shm.memory(), kData, kDataSize)); -} - TEST(WritableUnalignedMappingTest, Map_InvalidRegion) { base::UnsafeSharedMemoryRegion region; WritableUnalignedMapping shm(region, kDataSize, 0); |