| Index: test/cctest/cctest.h
|
| diff --git a/test/cctest/cctest.h b/test/cctest/cctest.h
|
| index c99520ba542f8b9b40dfd038b5a313457977ef17..1a9abf8a2ec2c442103ddd477c926ed974539fc8 100644
|
| --- a/test/cctest/cctest.h
|
| +++ b/test/cctest/cctest.h
|
| @@ -495,6 +495,26 @@ static inline void SimulateFullSpace(v8::internal::PagedSpace* space) {
|
| }
|
|
|
|
|
| +// Helper function that simulates many incremental marking steps until
|
| +// marking is completed.
|
| +static inline void SimulateIncrementalMarking(i::Heap* heap) {
|
| + 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()) {
|
| + marking->Start();
|
| + }
|
| + CHECK(marking->IsMarking());
|
| + while (!marking->IsComplete()) {
|
| + marking->Step(i::MB, i::IncrementalMarking::NO_GC_VIA_STACK_GUARD);
|
| + }
|
| + CHECK(marking->IsComplete());
|
| +}
|
| +
|
| +
|
| // Helper class for new allocations tracking and checking.
|
| // To use checking of JS allocations tracking in a test,
|
| // just create an instance of this class.
|
|
|