From: yangguo@chromium.org Date: Thu, 20 Mar 2014 14:12:06 +0000 (+0000) Subject: Remove outdated OOM tests. X-Git-Tag: upstream/4.7.83~10120 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8f48dbb7d2227f3f2285aa2187036930dc8e8a57;p=platform%2Fupstream%2Fv8.git Remove outdated OOM tests. R=ishell@chromium.org Review URL: https://codereview.chromium.org/206373003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/test/cctest/cctest.status b/test/cctest/cctest.status index 753421c..2e793cf 100644 --- a/test/cctest/cctest.status +++ b/test/cctest/cctest.status @@ -81,10 +81,6 @@ # BUG(v8:2999). 'test-cpu-profiler/CollectCpuProfile': [PASS, FAIL], - # Runs out of memory in debug mode. - 'test-api/OutOfMemory': [PASS, ['mode == debug', FAIL]], - 'test-api/OutOfMemoryNested': [PASS, ['mode == debug', FAIL]], - # BUG(v8:3154). 'test-heap/ReleaseOverReservedPages': [PASS, ['mode == debug', FAIL]], @@ -151,12 +147,6 @@ ############################################################################## ['arch == arm', { - # We cannot assume that we can throw OutOfMemory exceptions in all situations. - # Apparently our ARM box is in such a state. Skip the test as it also runs for - # a long time. - 'test-api/OutOfMemory': [SKIP], - 'test-api/OutOfMemoryNested': [SKIP], - # BUG(355): Test crashes on ARM. 'test-log/ProfLazyMode': [SKIP], diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc index 818b984..eea97c4 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 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& args) { - ApiTestFuzzer::Fuzz(); - - LocalContext context; - v8::HandleScope scope(context->GetIsolate()); - Local 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 templ = ObjectTemplate::New(isolate); - templ->Set(v8_str("ProvokeOutOfMemory"), - v8::FunctionTemplate::New(isolate, ProvokeOutOfMemory)); - LocalContext context(0, templ); - v8::V8::IgnoreOutOfMemoryException(); - Local 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();