diff options
Diffstat (limited to 'deps/v8/test/cctest/test-spaces.cc')
-rw-r--r-- | deps/v8/test/cctest/test-spaces.cc | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/deps/v8/test/cctest/test-spaces.cc b/deps/v8/test/cctest/test-spaces.cc index 3326a015d..73710658a 100644 --- a/deps/v8/test/cctest/test-spaces.cc +++ b/deps/v8/test/cctest/test-spaces.cc @@ -72,7 +72,7 @@ TEST(Page) { Page* p = Page::FromAddress(page_start); // Initialized Page has heap pointer, normally set by memory_allocator. - p->heap_ = HEAP; + p->heap_ = CcTest::heap(); CHECK(p->address() == page_start); CHECK(p->is_valid()); @@ -207,7 +207,7 @@ static unsigned int Pseudorandom() { TEST(MemoryChunk) { - Isolate* isolate = Isolate::Current(); + Isolate* isolate = CcTest::i_isolate(); isolate->InitializeLoggingAndCounters(); Heap* heap = isolate->heap(); CHECK(heap->ConfigureHeapDefault()); @@ -263,7 +263,7 @@ TEST(MemoryChunk) { TEST(MemoryAllocator) { - Isolate* isolate = Isolate::Current(); + Isolate* isolate = CcTest::i_isolate(); isolate->InitializeLoggingAndCounters(); Heap* heap = isolate->heap(); CHECK(isolate->heap()->ConfigureHeapDefault()); @@ -312,7 +312,7 @@ TEST(MemoryAllocator) { TEST(NewSpace) { - Isolate* isolate = Isolate::Current(); + Isolate* isolate = CcTest::i_isolate(); isolate->InitializeLoggingAndCounters(); Heap* heap = isolate->heap(); CHECK(heap->ConfigureHeapDefault()); @@ -323,8 +323,8 @@ TEST(NewSpace) { NewSpace new_space(heap); - CHECK(new_space.SetUp(HEAP->ReservedSemiSpaceSize(), - HEAP->ReservedSemiSpaceSize())); + CHECK(new_space.SetUp(CcTest::heap()->ReservedSemiSpaceSize(), + CcTest::heap()->ReservedSemiSpaceSize())); CHECK(new_space.HasBeenSetUp()); while (new_space.Available() >= Page::kMaxNonCodeHeapObjectSize) { @@ -341,7 +341,7 @@ TEST(NewSpace) { TEST(OldSpace) { - Isolate* isolate = Isolate::Current(); + Isolate* isolate = CcTest::i_isolate(); isolate->InitializeLoggingAndCounters(); Heap* heap = isolate->heap(); CHECK(heap->ConfigureHeapDefault()); @@ -372,7 +372,7 @@ TEST(OldSpace) { TEST(LargeObjectSpace) { v8::V8::Initialize(); - LargeObjectSpace* lo = HEAP->lo_space(); + LargeObjectSpace* lo = CcTest::heap()->lo_space(); CHECK(lo != NULL); int lo_size = Page::kPageSize; @@ -400,3 +400,25 @@ TEST(LargeObjectSpace) { CHECK(lo->AllocateRaw(lo_size, NOT_EXECUTABLE)->IsFailure()); } + + +TEST(SizeOfFirstPageIsLargeEnough) { + if (i::FLAG_always_opt) return; + CcTest::InitializeVM(); + Isolate* isolate = CcTest::i_isolate(); + + // Freshly initialized VM gets by with one page per space. + for (int i = FIRST_PAGED_SPACE; i <= LAST_PAGED_SPACE; i++) { + CHECK_EQ(1, isolate->heap()->paged_space(i)->CountTotalPages()); + } + + // Executing the empty script gets by with one page per space. + HandleScope scope(isolate); + CompileRun("/*empty*/"); + for (int i = FIRST_PAGED_SPACE; i <= LAST_PAGED_SPACE; i++) { + CHECK_EQ(1, isolate->heap()->paged_space(i)->CountTotalPages()); + } + + // No large objects required to perform the above steps. + CHECK(isolate->heap()->lo_space()->IsEmpty()); +} |