diff options
Diffstat (limited to 'deps/v8/test/unittests/heap/heap-unittest.cc')
-rw-r--r-- | deps/v8/test/unittests/heap/heap-unittest.cc | 73 |
1 files changed, 67 insertions, 6 deletions
diff --git a/deps/v8/test/unittests/heap/heap-unittest.cc b/deps/v8/test/unittests/heap/heap-unittest.cc index fbc384ef1d..048ff5d0a6 100644 --- a/deps/v8/test/unittests/heap/heap-unittest.cc +++ b/deps/v8/test/unittests/heap/heap-unittest.cc @@ -19,14 +19,75 @@ namespace internal { using HeapTest = TestWithIsolate; using HeapWithPointerCompressionTest = TestWithIsolateAndPointerCompression; -TEST(Heap, SemiSpaceSize) { +TEST(Heap, YoungGenerationSizeFromOldGenerationSize) { const size_t MB = static_cast<size_t>(i::MB); + const size_t KB = static_cast<size_t>(i::KB); const size_t pm = i::Heap::kPointerMultiplier; - ASSERT_EQ(512u * pm, i::Heap::ComputeMaxSemiSpaceSize(0u)); - ASSERT_EQ(512u * pm, i::Heap::ComputeMaxSemiSpaceSize(512u * MB)); - ASSERT_EQ(2048u * pm, i::Heap::ComputeMaxSemiSpaceSize(1024u * MB)); - ASSERT_EQ(5120u * pm, i::Heap::ComputeMaxSemiSpaceSize(2024u * MB)); - ASSERT_EQ(8192u * pm, i::Heap::ComputeMaxSemiSpaceSize(4095u * MB)); + ASSERT_EQ(3 * 512u * pm * KB, + i::Heap::YoungGenerationSizeFromOldGenerationSize(128u * pm * MB)); + ASSERT_EQ(3 * 2048u * pm * KB, + i::Heap::YoungGenerationSizeFromOldGenerationSize(256u * pm * MB)); + ASSERT_EQ(3 * 4096u * pm * KB, + i::Heap::YoungGenerationSizeFromOldGenerationSize(512u * pm * MB)); + ASSERT_EQ(3 * 8192u * pm * KB, + i::Heap::YoungGenerationSizeFromOldGenerationSize(1024u * pm * MB)); +} + +TEST(Heap, GenerationSizesFromHeapSize) { + const size_t MB = static_cast<size_t>(i::MB); + const size_t KB = static_cast<size_t>(i::KB); + const size_t pm = i::Heap::kPointerMultiplier; + size_t old, young; + + i::Heap::GenerationSizesFromHeapSize(1 * KB, &young, &old); + ASSERT_EQ(0u, old); + ASSERT_EQ(0u, young); + + i::Heap::GenerationSizesFromHeapSize(1 * KB + 3 * 512u * pm * KB, &young, + &old); + ASSERT_EQ(1 * KB, old); + ASSERT_EQ(3 * 512u * pm * KB, young); + + i::Heap::GenerationSizesFromHeapSize(128 * pm * MB + 3 * 512 * pm * KB, + &young, &old); + ASSERT_EQ(128u * pm * MB, old); + ASSERT_EQ(3 * 512u * pm * KB, young); + + i::Heap::GenerationSizesFromHeapSize(256u * pm * MB + 3 * 2048 * pm * KB, + &young, &old); + ASSERT_EQ(256u * pm * MB, old); + ASSERT_EQ(3 * 2048u * pm * KB, young); + + i::Heap::GenerationSizesFromHeapSize(512u * pm * MB + 3 * 4096 * pm * KB, + &young, &old); + ASSERT_EQ(512u * pm * MB, old); + ASSERT_EQ(3 * 4096u * pm * KB, young); + + i::Heap::GenerationSizesFromHeapSize(1024u * pm * MB + 3 * 8192 * pm * KB, + &young, &old); + ASSERT_EQ(1024u * pm * MB, old); + ASSERT_EQ(3 * 8192u * pm * KB, young); +} + +TEST(Heap, HeapSizeFromPhysicalMemory) { + const size_t MB = static_cast<size_t>(i::MB); + const size_t pm = i::Heap::kPointerMultiplier; + + // The expected value is old_generation_size + 3 * semi_space_size. + ASSERT_EQ(128 * pm * MB + 3 * 512 * pm * KB, + i::Heap::HeapSizeFromPhysicalMemory(0u)); + ASSERT_EQ(128 * pm * MB + 3 * 512 * pm * KB, + i::Heap::HeapSizeFromPhysicalMemory(512u * MB)); + ASSERT_EQ(256 * pm * MB + 3 * 2048 * pm * KB, + i::Heap::HeapSizeFromPhysicalMemory(1024u * MB)); + ASSERT_EQ(512 * pm * MB + 3 * 4096 * pm * KB, + i::Heap::HeapSizeFromPhysicalMemory(2048u * MB)); + ASSERT_EQ( + 1024 * pm * MB + 3 * 8192 * pm * KB, + i::Heap::HeapSizeFromPhysicalMemory(static_cast<uint64_t>(4096u) * MB)); + ASSERT_EQ( + 1024 * pm * MB + 3 * 8192 * pm * KB, + i::Heap::HeapSizeFromPhysicalMemory(static_cast<uint64_t>(8192u) * MB)); } TEST_F(HeapTest, ASLR) { |