Chromium Code Reviews| Index: test/cctest/test-mementos.cc |
| diff --git a/test/cctest/test-mementos.cc b/test/cctest/test-mementos.cc |
| index f59eef9485f8257ef158117dc5b6e69a2f82da09..427104d5c81d107a9a59974d2590d5bb5deff331 100644 |
| --- a/test/cctest/test-mementos.cc |
| +++ b/test/cctest/test-mementos.cc |
| @@ -29,11 +29,8 @@ |
| using namespace v8::internal; |
| -TEST(Regress340063) { |
| - CcTest::InitializeVM(); |
| - if (!i::FLAG_allocation_site_pretenuring) return; |
| - v8::HandleScope scope(CcTest::isolate()); |
| +static void SetUpNewSpaceWithPoisonedMementoAtTop() { |
| Isolate* isolate = CcTest::i_isolate(); |
| Heap* heap = isolate->heap(); |
| NewSpace* new_space = heap->new_space(); |
| @@ -52,8 +49,31 @@ TEST(Regress340063) { |
| memento->set_map_no_write_barrier(heap->allocation_memento_map()); |
| memento->set_allocation_site( |
| reinterpret_cast<AllocationSite*>(kHeapObjectTag), SKIP_WRITE_BARRIER); |
| +} |
| + |
| + |
| +TEST(Regress340063) { |
| + CcTest::InitializeVM(); |
| + if (!i::FLAG_allocation_site_pretenuring) return; |
| + v8::HandleScope scope(CcTest::isolate()); |
| + |
| + |
| + SetUpNewSpaceWithPoisonedMementoAtTop(); |
| // Call GC to see if we can handle a poisonous memento right after the |
| // current new space top pointer. |
| + Heap* heap = CcTest::i_isolate()->heap(); |
| heap->CollectAllGarbage(Heap::kAbortIncrementalMarkingMask); |
|
Hannes Payer (out of office)
2014/02/18 11:41:03
Change it to CcTest::i_isolate()->heap()->CollectA
|
| } |
| + |
| + |
| +TEST(BadMementoAfterTopForceScavenge) { |
| + CcTest::InitializeVM(); |
| + if (!i::FLAG_allocation_site_pretenuring) return; |
| + v8::HandleScope scope(CcTest::isolate()); |
| + |
| + SetUpNewSpaceWithPoisonedMementoAtTop(); |
| + |
| + // Force GC to test the poisoned memento handling |
| + CcTest::i_isolate()->heap()->CollectGarbage(i::NEW_SPACE); |
| +} |