Commit 8f48dbb7 authored by yangguo@chromium.org's avatar yangguo@chromium.org

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
parent 9f6be9c5
......@@ -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],
......
......@@ -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();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment