| Index: test/cctest/heap/test-heap.cc
|
| diff --git a/test/cctest/heap/test-heap.cc b/test/cctest/heap/test-heap.cc
|
| index d4ebd04898bea1c8e024c534115c3ab52faa6240..3837397ac1399446b11c9b2fbaed14d9fdeeb40d 100644
|
| --- a/test/cctest/heap/test-heap.cc
|
| +++ b/test/cctest/heap/test-heap.cc
|
| @@ -6828,164 +6828,6 @@ TEST(Regress615489) {
|
| CHECK_LE(size_after, size_before);
|
| }
|
|
|
| -TEST(LeftTrimFixedArrayInBlackArea) {
|
| - FLAG_black_allocation = true;
|
| - CcTest::InitializeVM();
|
| - v8::HandleScope scope(CcTest::isolate());
|
| - Heap* heap = CcTest::heap();
|
| - Isolate* isolate = heap->isolate();
|
| - heap->CollectAllGarbage();
|
| -
|
| - i::MarkCompactCollector* collector = heap->mark_compact_collector();
|
| - i::IncrementalMarking* marking = heap->incremental_marking();
|
| - if (collector->sweeping_in_progress()) {
|
| - collector->EnsureSweepingCompleted();
|
| - }
|
| - CHECK(marking->IsMarking() || marking->IsStopped());
|
| - if (marking->IsStopped()) {
|
| - heap->StartIncrementalMarking();
|
| - }
|
| - CHECK(marking->IsMarking());
|
| - marking->StartBlackAllocationForTesting();
|
| -
|
| - // Ensure that we allocate a new page, set up a bump pointer area, and
|
| - // perform the allocation in a black area.
|
| - heap::SimulateFullSpace(heap->old_space());
|
| - isolate->factory()->NewFixedArray(4, TENURED);
|
| - Handle<FixedArray> array = isolate->factory()->NewFixedArray(50, TENURED);
|
| - CHECK(heap->old_space()->Contains(*array));
|
| - CHECK(Marking::IsBlack(ObjectMarking::MarkBitFrom(*array)));
|
| -
|
| - // Now left trim the allocated black area. A filler has to be installed
|
| - // for the trimmed area and all mark bits of the trimmed area have to be
|
| - // cleared.
|
| - FixedArrayBase* trimmed = heap->LeftTrimFixedArray(*array, 10);
|
| - CHECK(Marking::IsBlack(ObjectMarking::MarkBitFrom(trimmed)));
|
| -
|
| - heap::GcAndSweep(heap, OLD_SPACE);
|
| -}
|
| -
|
| -TEST(ContinuousLeftTrimFixedArrayInBlackArea) {
|
| - FLAG_black_allocation = true;
|
| - CcTest::InitializeVM();
|
| - v8::HandleScope scope(CcTest::isolate());
|
| - Heap* heap = CcTest::heap();
|
| - Isolate* isolate = heap->isolate();
|
| - heap->CollectAllGarbage();
|
| -
|
| - i::MarkCompactCollector* collector = heap->mark_compact_collector();
|
| - i::IncrementalMarking* marking = heap->incremental_marking();
|
| - if (collector->sweeping_in_progress()) {
|
| - collector->EnsureSweepingCompleted();
|
| - }
|
| - CHECK(marking->IsMarking() || marking->IsStopped());
|
| - if (marking->IsStopped()) {
|
| - heap->StartIncrementalMarking();
|
| - }
|
| - CHECK(marking->IsMarking());
|
| - marking->StartBlackAllocationForTesting();
|
| -
|
| - // Ensure that we allocate a new page, set up a bump pointer area, and
|
| - // perform the allocation in a black area.
|
| - heap::SimulateFullSpace(heap->old_space());
|
| - isolate->factory()->NewFixedArray(10, TENURED);
|
| -
|
| - // Allocate the fixed array that will be trimmed later.
|
| - Handle<FixedArray> array = isolate->factory()->NewFixedArray(100, TENURED);
|
| - Address start_address = array->address();
|
| - Address end_address = start_address + array->Size();
|
| - Page* page = Page::FromAddress(start_address);
|
| - CHECK(Marking::IsBlack(ObjectMarking::MarkBitFrom(*array)));
|
| - CHECK(page->markbits()->AllBitsSetInRange(
|
| - page->AddressToMarkbitIndex(start_address),
|
| - page->AddressToMarkbitIndex(end_address)));
|
| - CHECK(heap->old_space()->Contains(*array));
|
| -
|
| - FixedArrayBase* previous = *array;
|
| - FixedArrayBase* trimmed;
|
| -
|
| - // First trim in one word steps.
|
| - for (int i = 0; i < 10; i++) {
|
| - trimmed = heap->LeftTrimFixedArray(previous, 1);
|
| - HeapObject* filler = HeapObject::FromAddress(previous->address());
|
| - CHECK(filler->IsFiller());
|
| - CHECK(Marking::IsBlack(ObjectMarking::MarkBitFrom(trimmed)));
|
| - CHECK(Marking::IsImpossible(ObjectMarking::MarkBitFrom(previous)));
|
| - previous = trimmed;
|
| - }
|
| -
|
| - // Then trim in two and three word steps.
|
| - for (int i = 2; i <= 3; i++) {
|
| - for (int j = 0; j < 10; j++) {
|
| - trimmed = heap->LeftTrimFixedArray(previous, i);
|
| - HeapObject* filler = HeapObject::FromAddress(previous->address());
|
| - CHECK(filler->IsFiller());
|
| - CHECK(Marking::IsBlack(ObjectMarking::MarkBitFrom(trimmed)));
|
| - CHECK(Marking::IsWhite(ObjectMarking::MarkBitFrom(previous)));
|
| - previous = trimmed;
|
| - }
|
| - }
|
| -
|
| - heap::GcAndSweep(heap, OLD_SPACE);
|
| -}
|
| -
|
| -TEST(ContinuousRightTrimFixedArrayInBlackArea) {
|
| - FLAG_black_allocation = true;
|
| - CcTest::InitializeVM();
|
| - v8::HandleScope scope(CcTest::isolate());
|
| - Heap* heap = CcTest::heap();
|
| - Isolate* isolate = heap->isolate();
|
| - heap->CollectAllGarbage();
|
| -
|
| - i::MarkCompactCollector* collector = heap->mark_compact_collector();
|
| - i::IncrementalMarking* marking = heap->incremental_marking();
|
| - if (collector->sweeping_in_progress()) {
|
| - collector->EnsureSweepingCompleted();
|
| - }
|
| - CHECK(marking->IsMarking() || marking->IsStopped());
|
| - if (marking->IsStopped()) {
|
| - heap->StartIncrementalMarking();
|
| - }
|
| - CHECK(marking->IsMarking());
|
| - marking->StartBlackAllocationForTesting();
|
| -
|
| - // Ensure that we allocate a new page, set up a bump pointer area, and
|
| - // perform the allocation in a black area.
|
| - heap::SimulateFullSpace(heap->old_space());
|
| - isolate->factory()->NewFixedArray(10, TENURED);
|
| -
|
| - // Allocate the fixed array that will be trimmed later.
|
| - Handle<FixedArray> array = isolate->factory()->NewFixedArray(100, TENURED);
|
| - Address start_address = array->address();
|
| - Address end_address = start_address + array->Size();
|
| - Page* page = Page::FromAddress(start_address);
|
| - CHECK(Marking::IsBlack(ObjectMarking::MarkBitFrom(*array)));
|
| - CHECK(page->markbits()->AllBitsSetInRange(
|
| - page->AddressToMarkbitIndex(start_address),
|
| - page->AddressToMarkbitIndex(end_address)));
|
| - CHECK(heap->old_space()->Contains(*array));
|
| -
|
| - // Trim it once by one word to make checking for white marking color uniform.
|
| - Address previous = end_address - kPointerSize;
|
| - heap->RightTrimFixedArray<Heap::SEQUENTIAL_TO_SWEEPER>(*array, 1);
|
| - HeapObject* filler = HeapObject::FromAddress(previous);
|
| - CHECK(filler->IsFiller());
|
| - CHECK(Marking::IsImpossible(ObjectMarking::MarkBitFrom(previous)));
|
| -
|
| - // Trim 10 times by one, two, and three word.
|
| - for (int i = 1; i <= 3; i++) {
|
| - for (int j = 0; j < 10; j++) {
|
| - previous -= kPointerSize * i;
|
| - heap->RightTrimFixedArray<Heap::SEQUENTIAL_TO_SWEEPER>(*array, i);
|
| - HeapObject* filler = HeapObject::FromAddress(previous);
|
| - CHECK(filler->IsFiller());
|
| - CHECK(Marking::IsWhite(ObjectMarking::MarkBitFrom(previous)));
|
| - }
|
| - }
|
| -
|
| - heap::GcAndSweep(heap, OLD_SPACE);
|
| -}
|
| -
|
| TEST(Regress618958) {
|
| CcTest::InitializeVM();
|
| v8::HandleScope scope(CcTest::isolate());
|
|
|