[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}
This commit is contained in:
parent
39b858754e
commit
4ec372801e
@ -6159,6 +6159,7 @@ TEST(NewSpaceAllocationCounter) {
|
|||||||
Heap* heap = isolate->heap();
|
Heap* heap = isolate->heap();
|
||||||
size_t counter1 = heap->NewSpaceAllocationCounter();
|
size_t counter1 = heap->NewSpaceAllocationCounter();
|
||||||
CcTest::CollectGarbage(NEW_SPACE);
|
CcTest::CollectGarbage(NEW_SPACE);
|
||||||
|
CcTest::CollectGarbage(NEW_SPACE); // Ensure new space is empty.
|
||||||
const size_t kSize = 1024;
|
const size_t kSize = 1024;
|
||||||
AllocateInSpace(isolate, kSize, NEW_SPACE);
|
AllocateInSpace(isolate, kSize, NEW_SPACE);
|
||||||
size_t counter2 = heap->NewSpaceAllocationCounter();
|
size_t counter2 = heap->NewSpaceAllocationCounter();
|
||||||
|
Loading…
Reference in New Issue
Block a user