summaryrefslogtreecommitdiff
path: root/chromium/media/base/unaligned_shared_memory_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/base/unaligned_shared_memory_unittest.cc')
-rw-r--r--chromium/media/base/unaligned_shared_memory_unittest.cc137
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);