| Index: test/cctest/test-heap.cc
|
| diff --git a/test/cctest/test-heap.cc b/test/cctest/test-heap.cc
|
| index 9a2e0177dc0273583f2d2186ce958922b6910d63..245afcf6c799532e29fb4c05d09e0585ba815d09 100644
|
| --- a/test/cctest/test-heap.cc
|
| +++ b/test/cctest/test-heap.cc
|
| @@ -1224,36 +1224,45 @@ TEST(TestSizeOfObjectsVsHeapIteratorPrecision) {
|
|
|
| TEST(GrowAndShrinkNewSpace) {
|
| InitializeVM();
|
| - v8::HandleScope scope;
|
| NewSpace* new_space = HEAP->new_space();
|
|
|
| // Explicitly growing should double the space capacity.
|
| - int old_capacity, new_capacity;
|
| + intptr_t old_capacity, new_capacity;
|
| old_capacity = new_space->Capacity();
|
| new_space->Grow();
|
| new_capacity = new_space->Capacity();
|
| - ASSERT_EQ(2 * old_capacity, new_capacity);
|
| + CHECK_EQ(2 * old_capacity, new_capacity);
|
|
|
| - // Fill up new space to the point that it is almost full.
|
| - while (new_space->SizeAsInt() + FixedArray::SizeFor(1000) < new_capacity) {
|
| - ASSERT(HEAP->InNewSpace(*FACTORY->NewFixedArray(1000, NOT_TENURED)));
|
| + // Fill up new space to the point that it is completely full. Make sure
|
| + // that the scavenger does not undo the filling.
|
| + old_capacity = new_space->Capacity();
|
| + {
|
| + v8::HandleScope scope;
|
| + AlwaysAllocateScope always_allocate;
|
| + intptr_t available = new_space->EffectiveCapacity() - new_space->Size();
|
| + intptr_t number_of_fillers = (available / FixedArray::SizeFor(1000)) - 10;
|
| + for (intptr_t i = 0; i < number_of_fillers; i++) {
|
| + CHECK(HEAP->InNewSpace(*FACTORY->NewFixedArray(1000, NOT_TENURED)));
|
| + }
|
| }
|
| + new_capacity = new_space->Capacity();
|
| + CHECK_EQ(old_capacity, new_capacity);
|
|
|
| // Explicitly shrinking should not affect space capacity.
|
| old_capacity = new_space->Capacity();
|
| new_space->Shrink();
|
| new_capacity = new_space->Capacity();
|
| - ASSERT_EQ(old_capacity, new_capacity);
|
| + CHECK_EQ(old_capacity, new_capacity);
|
|
|
| - // Perform scavenge to empty the new space.
|
| + // Let the scavenger empty the new space.
|
| HEAP->CollectGarbage(NEW_SPACE);
|
| - ASSERT_LE(new_space->SizeAsInt(), old_capacity);
|
| + CHECK_LE(new_space->Size(), old_capacity);
|
|
|
| // Explicitly shrinking should halve the space capacity.
|
| old_capacity = new_space->Capacity();
|
| new_space->Shrink();
|
| new_capacity = new_space->Capacity();
|
| - ASSERT_EQ(old_capacity, 2 * new_capacity);
|
| + CHECK_EQ(old_capacity, 2 * new_capacity);
|
|
|
| // Consecutive shrinking should not affect space capacity.
|
| old_capacity = new_space->Capacity();
|
| @@ -1261,5 +1270,5 @@ TEST(GrowAndShrinkNewSpace) {
|
| new_space->Shrink();
|
| new_space->Shrink();
|
| new_capacity = new_space->Capacity();
|
| - ASSERT_EQ(old_capacity, new_capacity);
|
| + CHECK_EQ(old_capacity, new_capacity);
|
| }
|
|
|