| Index: Source/wtf/PartitionAllocTest.cpp
|
| diff --git a/Source/wtf/PartitionAllocTest.cpp b/Source/wtf/PartitionAllocTest.cpp
|
| index 531fcd4f70a4547e4d6ee1ace34097ab26b30527..68a83a852df29f6b00d536ddd2690cec4b62bf86 100644
|
| --- a/Source/wtf/PartitionAllocTest.cpp
|
| +++ b/Source/wtf/PartitionAllocTest.cpp
|
| @@ -692,6 +692,23 @@ TEST(WTF_PartitionAlloc, Realloc)
|
|
|
| partitionFreeGeneric(genericAllocator.root(), ptr);
|
|
|
| + // Test that shrinking a direct mapped allocation happens in-place.
|
| + size = WTF::kGenericMaxBucketed + 16 * WTF::kSystemPageSize;
|
| + EXPECT_TRUE(WTF::partitionSizeIsDirectMapped(size));
|
| + ptr = partitionAllocGeneric(genericAllocator.root(), size);
|
| + size_t actualSize = partitionAllocGetSize(ptr);
|
| + ptr2 = partitionReallocGeneric(genericAllocator.root(), ptr, size - WTF::kSystemPageSize);
|
| + EXPECT_EQ(ptr, ptr2);
|
| + EXPECT_EQ(actualSize - WTF::kSystemPageSize, partitionAllocGetSize(ptr2));
|
| +
|
| + // Test that a previously in-place shrunk direct mapped allocation can be
|
| + // expanded up to its original size again.
|
| + ptr = partitionReallocGeneric(genericAllocator.root(), ptr2, size);
|
| + EXPECT_EQ(ptr2, ptr);
|
| + EXPECT_EQ(actualSize, partitionAllocGetSize(ptr));
|
| +
|
| + partitionFreeGeneric(genericAllocator.root(), ptr);
|
| +
|
| TestShutdown();
|
| }
|
|
|
|
|