Index: test/cctest/heap/test-mark-compact.cc |
diff --git a/test/cctest/heap/test-mark-compact.cc b/test/cctest/heap/test-mark-compact.cc |
index 7242e1e7c40690dca7826ffee622662c28b1bd47..f13c82278a99e5c4b7290a7c09015b357d62fd36 100644 |
--- a/test/cctest/heap/test-mark-compact.cc |
+++ b/test/cctest/heap/test-mark-compact.cc |
@@ -41,8 +41,10 @@ |
#include "src/full-codegen/full-codegen.h" |
#include "src/global-handles.h" |
+#include "src/heap/concurrent-marking-deque.h" |
#include "src/heap/mark-compact-inl.h" |
#include "src/heap/mark-compact.h" |
+#include "src/heap/sequential-marking-deque.h" |
#include "src/objects-inl.h" |
#include "test/cctest/cctest.h" |
#include "test/cctest/heap/heap-tester.h" |
@@ -51,10 +53,29 @@ |
using namespace v8::internal; |
using v8::Just; |
+TEST(ConcurrentMarkingDeque) { |
Michael Lippautz
2017/05/02 09:39:31
nit: Could be a unit test.
ulan
2017/05/02 13:19:53
Done. Converted it to unit test.
|
+ CcTest::InitializeVM(); |
+ Isolate* isolate = CcTest::i_isolate(); |
+ ConcurrentMarkingDeque marking_deque(isolate->heap()); |
+ v8::HandleScope sc(CcTest::isolate()); |
+ Handle<FixedArray> object = isolate->factory()->NewFixedArray(10); |
+ marking_deque.Push(*object); |
+ CHECK(!marking_deque.IsEmpty()); |
+ CHECK_EQ(1, marking_deque.Size()); |
+ CHECK_EQ(*object, marking_deque.Pop(MarkingThread::kConcurrent)); |
+ CHECK(marking_deque.IsEmpty()); |
+ marking_deque.Push(*object, MarkingThread::kConcurrent, |
+ TargetDeque::kBailout); |
+ CHECK(!marking_deque.IsEmpty()); |
+ CHECK_EQ(1, marking_deque.Size()); |
+ CHECK(nullptr == marking_deque.Pop(MarkingThread::kConcurrent)); |
+ CHECK_EQ(*object, marking_deque.Pop()); |
+ CHECK(nullptr == marking_deque.Pop()); |
+} |
-TEST(MarkingDeque) { |
+TEST(SequentialMarkingDeque) { |
Michael Lippautz
2017/05/02 09:39:31
nit: Similarly, this could also be a unit test.
ulan
2017/05/02 13:19:53
I am keeping it here because it depends on cancela
|
CcTest::InitializeVM(); |
- MarkingDeque s(CcTest::i_isolate()->heap()); |
+ SequentialMarkingDeque s(CcTest::i_isolate()->heap()); |
s.SetUp(); |
s.StartUsing(); |
Address original_address = reinterpret_cast<Address>(&s); |