From 4ec372801e2e4c26659d046ecae8f2661b303487 Mon Sep 17 00:00:00 2001 From: jgruber Date: Tue, 24 Jan 2017 23:41:34 -0800 Subject: [PATCH] [heap] Handle edge case in NewSpaceAllocationCounter test This test checks that counters accurately reflect the allocated size. There's an edge case that can occur when, previously to the allocation, the page does not have enough space left to allocate the requested object - then we move on to a fresh page, fill the remaining space of the old page with a filler object, and allocate the requested object on the new page. The counters will show the size of the filler object plus the requested object size, while the test expects only the requested size. This CL fixes that case by performing two GCs to clear out new space. BUG= Review-Url: https://codereview.chromium.org/2652933002 Cr-Commit-Position: refs/heads/master@{#42646} --- test/cctest/heap/test-heap.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/test/cctest/heap/test-heap.cc b/test/cctest/heap/test-heap.cc index a6cc7e8251..87e9838ea6 100644 --- a/test/cctest/heap/test-heap.cc +++ b/test/cctest/heap/test-heap.cc @@ -6159,6 +6159,7 @@ TEST(NewSpaceAllocationCounter) { Heap* heap = isolate->heap(); size_t counter1 = heap->NewSpaceAllocationCounter(); CcTest::CollectGarbage(NEW_SPACE); + CcTest::CollectGarbage(NEW_SPACE); // Ensure new space is empty. const size_t kSize = 1024; AllocateInSpace(isolate, kSize, NEW_SPACE); size_t counter2 = heap->NewSpaceAllocationCounter();