Index: test/cctest/test-heap.cc |
=================================================================== |
--- test/cctest/test-heap.cc (revision 11456) |
+++ test/cctest/test-heap.cc (working copy) |
@@ -1214,7 +1214,9 @@ |
// The heap size should go back to initial size after a full GC, even |
// though sweeping didn't finish yet. |
HEAP->CollectAllGarbage(Heap::kNoGCFlags); |
- CHECK(!HEAP->old_pointer_space()->IsSweepingComplete()); |
+ |
+ // Normally sweeping would not be complete here, but no guarantees. |
+ |
CHECK_EQ(initial_size, static_cast<int>(HEAP->SizeOfObjects())); |
// Advancing the sweeper step-wise should not change the heap size. |
@@ -1649,6 +1651,15 @@ |
while (!marking->IsStopped() && !marking->IsComplete()) { |
marking->Step(1 * MB, IncrementalMarking::NO_GC_VIA_STACK_GUARD); |
} |
+ if (!marking->IsStopped() || marking->should_hurry()) { |
+ // We don't normally finish a GC via Step(), we normally finish by |
+ // setting the stack guard and then do the final steps in the stack |
+ // guard interrupt. But here we didn't ask for that, and there is no |
+ // JS code running to trigger the interrupt, so we explicitly finalize |
+ // here. |
+ HEAP->CollectAllGarbage(Heap::kNoGCFlags, |
Vyacheslav Egorov (Chromium)
2012/04/30 11:10:41
It seems that if !IsStopped() and !should_hurry()
|
+ "Test finalizing incremental mark-sweep"); |
+ } |
CHECK_EQ(HEAP->global_ic_age(), f->shared()->ic_age()); |
CHECK_EQ(0, f->shared()->opt_count()); |