Index: test/cctest/test-heap.cc |
diff --git a/test/cctest/test-heap.cc b/test/cctest/test-heap.cc |
index d6285db026bba0d530576b0216ec44f506274f7c..4b765637f591aad8227077d47dd92110a2b31055 100644 |
--- a/test/cctest/test-heap.cc |
+++ b/test/cctest/test-heap.cc |
@@ -4,12 +4,10 @@ |
#include "v8.h" |
-#include "compilation-cache.h" |
#include "execution.h" |
#include "factory.h" |
#include "macro-assembler.h" |
#include "global-handles.h" |
-#include "stub-cache.h" |
#include "cctest.h" |
using namespace v8::internal; |
@@ -1246,9 +1244,7 @@ TEST(TestSizeOfObjectsVsHeapIteratorPrecision) { |
for (HeapObject* obj = iterator.next(); |
obj != NULL; |
obj = iterator.next()) { |
- if (!obj->IsFreeSpace()) { |
- size_of_objects_2 += obj->Size(); |
- } |
+ size_of_objects_2 += obj->Size(); |
} |
// Delta must be within 5% of the larger result. |
// TODO(gc): Tighten this up by distinguishing between byte |
@@ -1277,6 +1273,7 @@ static void FillUpNewSpace(NewSpace* new_space) { |
// that the scavenger does not undo the filling. |
v8::HandleScope scope; |
AlwaysAllocateScope always_allocate; |
+ LinearAllocationScope allocate_linearly; |
intptr_t available = new_space->EffectiveCapacity() - new_space->Size(); |
intptr_t number_of_fillers = (available / FixedArray::SizeFor(32)) - 1; |
for (intptr_t i = 0; i < number_of_fillers; i++) { |
@@ -1931,13 +1928,8 @@ TEST(ReleaseOverReservedPages) { |
HEAP->CollectAllGarbage(Heap::kNoGCFlags, "triggered by test 2"); |
CHECK_GE(number_of_test_pages + 1, old_pointer_space->CountTotalPages() * 2); |
- // Triggering a last-resort GC should cause all pages to be released to the |
- // OS so that other processes can seize the memory. If we get a failure here |
- // where there are 2 pages left instead of 1, then we should increase the |
- // size of the first page a little in SizeOfFirstPage in spaces.cc. The |
- // first page should be small in order to reduce memory used when the VM |
- // boots, but if the 20 small arrays don't fit on the first page then that's |
- // an indication that it is too small. |
+ // Triggering a last-resort GC should cause all pages to be released |
+ // to the OS so that other processes can seize the memory. |
HEAP->CollectAllAvailableGarbage("triggered really hard"); |
CHECK_EQ(1, old_pointer_space->CountTotalPages()); |
} |
@@ -2246,62 +2238,3 @@ TEST(ReleaseStackTraceData) { |
delete resource; |
} |
- |
- |
-TEST(Regression144230) { |
- InitializeVM(); |
- v8::HandleScope scope; |
- |
- // First make sure that the uninitialized CallIC stub is on a single page |
- // that will later be selected as an evacuation candidate. |
- { |
- v8::HandleScope inner_scope; |
- AlwaysAllocateScope always_allocate; |
- SimulateFullSpace(HEAP->code_space()); |
- ISOLATE->stub_cache()->ComputeCallInitialize(9, RelocInfo::CODE_TARGET); |
- } |
- |
- // Second compile a CallIC and execute it once so that it gets patched to |
- // the pre-monomorphic stub. These code objects are on yet another page. |
- { |
- v8::HandleScope inner_scope; |
- AlwaysAllocateScope always_allocate; |
- SimulateFullSpace(HEAP->code_space()); |
- CompileRun("var o = { f:function(a,b,c,d,e,f,g,h,i) {}};" |
- "function call() { o.f(1,2,3,4,5,6,7,8,9); };" |
- "call();"); |
- } |
- |
- // Third we fill up the last page of the code space so that it does not get |
- // chosen as an evacuation candidate. |
- { |
- v8::HandleScope inner_scope; |
- AlwaysAllocateScope always_allocate; |
- CompileRun("for (var i = 0; i < 2000; i++) {" |
- " eval('function f' + i + '() { return ' + i +'; };' +" |
- " 'f' + i + '();');" |
- "}"); |
- } |
- HEAP->CollectAllGarbage(Heap::kNoGCFlags); |
- |
- // Fourth is the tricky part. Make sure the code containing the CallIC is |
- // visited first without clearing the IC. The shared function info is then |
- // visited later, causing the CallIC to be cleared. |
- Handle<String> name = FACTORY->LookupAsciiSymbol("call"); |
- Handle<GlobalObject> global(ISOLATE->context()->global_object()); |
- MaybeObject* maybe_call = global->GetProperty(*name); |
- JSFunction* call = JSFunction::cast(maybe_call->ToObjectChecked()); |
- USE(global->SetProperty(*name, Smi::FromInt(0), NONE, kNonStrictMode)); |
- ISOLATE->compilation_cache()->Clear(); |
- call->shared()->set_ic_age(HEAP->global_ic_age() + 1); |
- Handle<Object> call_code(call->code()); |
- Handle<Object> call_function(call); |
- |
- // Now we are ready to mess up the heap. |
- HEAP->CollectAllGarbage(Heap::kReduceMemoryFootprintMask); |
- |
- // Either heap verification caught the problem already or we go kaboom once |
- // the CallIC is executed the next time. |
- USE(global->SetProperty(*name, *call_function, NONE, kNonStrictMode)); |
- CompileRun("call();"); |
-} |