Index: test/cctest/test-api.cc |
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
index 818b9845417c47312126d23d956eadb0b5231a30..eea97c416841b2b6fae3b7975fea11d33df0be22 100644 |
--- a/test/cctest/test-api.cc |
+++ b/test/cctest/test-api.cc |
@@ -4479,109 +4479,6 @@ THREADED_TEST(FunctionCall) { |
} |
-static const char* js_code_causing_out_of_memory = |
- "var a = new Array(); while(true) a.push(a);"; |
- |
- |
-// These tests run for a long time and prevent us from running tests |
-// that come after them so they cannot run in parallel. |
-TEST(OutOfMemory) { |
- // It's not possible to read a snapshot into a heap with different dimensions. |
- if (i::Snapshot::IsEnabled()) return; |
- // Set heap limits. |
- static const int K = 1024; |
- v8::ResourceConstraints constraints; |
- constraints.set_max_young_space_size(256 * K); |
- constraints.set_max_old_space_size(5 * K * K); |
- v8::SetResourceConstraints(CcTest::isolate(), &constraints); |
- |
- // Execute a script that causes out of memory. |
- LocalContext context; |
- v8::HandleScope scope(context->GetIsolate()); |
- v8::V8::IgnoreOutOfMemoryException(); |
- Local<Value> result = CompileRun(js_code_causing_out_of_memory); |
- |
- // Check for out of memory state. |
- CHECK(result.IsEmpty()); |
- CHECK(context->HasOutOfMemoryException()); |
-} |
- |
- |
-void ProvokeOutOfMemory(const v8::FunctionCallbackInfo<v8::Value>& args) { |
- ApiTestFuzzer::Fuzz(); |
- |
- LocalContext context; |
- v8::HandleScope scope(context->GetIsolate()); |
- Local<Value> result = CompileRun(js_code_causing_out_of_memory); |
- |
- // Check for out of memory state. |
- CHECK(result.IsEmpty()); |
- CHECK(context->HasOutOfMemoryException()); |
- |
- args.GetReturnValue().Set(result); |
-} |
- |
- |
-TEST(OutOfMemoryNested) { |
- // It's not possible to read a snapshot into a heap with different dimensions. |
- if (i::Snapshot::IsEnabled()) return; |
- // Set heap limits. |
- static const int K = 1024; |
- v8::ResourceConstraints constraints; |
- constraints.set_max_young_space_size(256 * K); |
- constraints.set_max_old_space_size(5 * K * K); |
- v8::Isolate* isolate = CcTest::isolate(); |
- v8::SetResourceConstraints(isolate, &constraints); |
- |
- v8::HandleScope scope(isolate); |
- Local<ObjectTemplate> templ = ObjectTemplate::New(isolate); |
- templ->Set(v8_str("ProvokeOutOfMemory"), |
- v8::FunctionTemplate::New(isolate, ProvokeOutOfMemory)); |
- LocalContext context(0, templ); |
- v8::V8::IgnoreOutOfMemoryException(); |
- Local<Value> result = CompileRun( |
- "var thrown = false;" |
- "try {" |
- " ProvokeOutOfMemory();" |
- "} catch (e) {" |
- " thrown = true;" |
- "}"); |
- // Check for out of memory state. |
- CHECK(result.IsEmpty()); |
- CHECK(context->HasOutOfMemoryException()); |
-} |
- |
- |
-void OOMCallback(const char* location, const char* message) { |
- exit(0); |
-} |
- |
- |
-TEST(HugeConsStringOutOfMemory) { |
- // It's not possible to read a snapshot into a heap with different dimensions. |
- if (i::Snapshot::IsEnabled()) return; |
- // Set heap limits. |
- static const int K = 1024; |
- v8::ResourceConstraints constraints; |
- constraints.set_max_young_space_size(256 * K); |
- constraints.set_max_old_space_size(4 * K * K); |
- v8::SetResourceConstraints(CcTest::isolate(), &constraints); |
- |
- // Execute a script that causes out of memory. |
- v8::V8::SetFatalErrorHandler(OOMCallback); |
- |
- LocalContext context; |
- v8::HandleScope scope(context->GetIsolate()); |
- |
- // Build huge string. This should fail with out of memory exception. |
- CompileRun( |
- "var str = Array.prototype.join.call({length: 513}, \"A\").toUpperCase();" |
- "for (var i = 0; i < 22; i++) { str = str + str; }"); |
- |
- CHECK(false); // Should not return. |
-} |
- |
- |
THREADED_TEST(ConstructCall) { |
LocalContext context; |
v8::Isolate* isolate = context->GetIsolate(); |