| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index 1c240172e595a699506c45e9a7c5a701ab88d0ed..30d7b6b20440a23e7941b83d7f0f6dc4a78f73a7 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -12444,28 +12444,28 @@ void ApiTestFuzzer::TearDown() {
|
|
|
|
|
| // Lets not be needlessly self-referential.
|
| -TEST(Threading1) {
|
| +UNINITIALIZED_TEST(Threading1) {
|
| ApiTestFuzzer::SetUp(ApiTestFuzzer::FIRST_PART);
|
| ApiTestFuzzer::RunAllTests();
|
| ApiTestFuzzer::TearDown();
|
| }
|
|
|
|
|
| -TEST(Threading2) {
|
| +UNINITIALIZED_TEST(Threading2) {
|
| ApiTestFuzzer::SetUp(ApiTestFuzzer::SECOND_PART);
|
| ApiTestFuzzer::RunAllTests();
|
| ApiTestFuzzer::TearDown();
|
| }
|
|
|
|
|
| -TEST(Threading3) {
|
| +UNINITIALIZED_TEST(Threading3) {
|
| ApiTestFuzzer::SetUp(ApiTestFuzzer::THIRD_PART);
|
| ApiTestFuzzer::RunAllTests();
|
| ApiTestFuzzer::TearDown();
|
| }
|
|
|
|
|
| -TEST(Threading4) {
|
| +UNINITIALIZED_TEST(Threading4) {
|
| ApiTestFuzzer::SetUp(ApiTestFuzzer::FOURTH_PART);
|
| ApiTestFuzzer::RunAllTests();
|
| ApiTestFuzzer::TearDown();
|
| @@ -14312,7 +14312,7 @@ class RegExpInterruptTest {
|
|
|
| // Test that a regular expression execution can be interrupted and
|
| // survive a garbage collection.
|
| -TEST(RegExpInterruption) {
|
| +UNINITIALIZED_TEST(RegExpInterruption) {
|
| v8::Locker lock(CcTest::default_isolate());
|
| v8::V8::Initialize();
|
| v8::HandleScope scope(CcTest::default_isolate());
|
| @@ -14420,7 +14420,7 @@ class ApplyInterruptTest {
|
|
|
| // Test that nothing bad happens if we get a preemption just when we were
|
| // about to do an apply().
|
| -TEST(ApplyInterruption) {
|
| +UNINITIALIZED_TEST(ApplyInterruption) {
|
| v8::Locker lock(CcTest::default_isolate());
|
| v8::V8::Initialize();
|
| v8::HandleScope scope(CcTest::default_isolate());
|
| @@ -14737,7 +14737,7 @@ class RegExpStringModificationTest {
|
|
|
| // Test that a regular expression execution can be interrupted and
|
| // the string changed without failing.
|
| -TEST(RegExpStringModification) {
|
| +UNINITIALIZED_TEST(RegExpStringModification) {
|
| v8::Locker lock(CcTest::default_isolate());
|
| v8::V8::Initialize();
|
| v8::HandleScope scope(CcTest::default_isolate());
|
| @@ -18197,14 +18197,6 @@ TEST(GCInFailedAccessCheckCallback) {
|
| }
|
|
|
|
|
| -TEST(DefaultIsolateGetCurrent) {
|
| - CHECK(v8::Isolate::GetCurrent() != NULL);
|
| - v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
| - CHECK(reinterpret_cast<i::Isolate*>(isolate)->IsDefaultIsolate());
|
| - printf("*** %s\n", "DefaultIsolateGetCurrent success");
|
| -}
|
| -
|
| -
|
| TEST(IsolateNewDispose) {
|
| v8::Isolate* current_isolate = v8::Isolate::GetCurrent();
|
| v8::Isolate* isolate = v8::Isolate::New();
|
| @@ -18221,87 +18213,7 @@ TEST(IsolateNewDispose) {
|
| }
|
|
|
|
|
| -TEST(IsolateEnterExitDefault) {
|
| - v8::Isolate* current_isolate = v8::Isolate::GetCurrent();
|
| - CHECK(current_isolate != NULL); // Default isolate.
|
| - v8::HandleScope scope(current_isolate);
|
| - LocalContext context;
|
| - ExpectString("'hello'", "hello");
|
| - current_isolate->Enter();
|
| - ExpectString("'still working'", "still working");
|
| - current_isolate->Exit();
|
| - ExpectString("'still working 2'", "still working 2");
|
| - current_isolate->Exit();
|
| - // Default isolate is always, well, 'default current'.
|
| - CHECK_EQ(v8::Isolate::GetCurrent(), current_isolate);
|
| - // Still working since default isolate is auto-entering any thread
|
| - // that has no isolate and attempts to execute V8 APIs.
|
| - ExpectString("'still working 3'", "still working 3");
|
| -}
|
| -
|
| -
|
| -TEST(DisposeDefaultIsolate) {
|
| - v8::V8::SetFatalErrorHandler(StoringErrorCallback);
|
| -
|
| - // Run some V8 code to trigger default isolate to become 'current'.
|
| - v8::HandleScope scope(v8::Isolate::GetCurrent());
|
| - LocalContext context;
|
| - ExpectString("'run some V8'", "run some V8");
|
| -
|
| - v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
| - CHECK(reinterpret_cast<i::Isolate*>(isolate)->IsDefaultIsolate());
|
| - last_location = last_message = NULL;
|
| - isolate->Dispose();
|
| - // It is not possible to dispose default isolate via Isolate API.
|
| - CHECK_NE(last_location, NULL);
|
| - CHECK_NE(last_message, NULL);
|
| -}
|
| -
|
| -
|
| -TEST(RunDefaultAndAnotherIsolate) {
|
| - v8::HandleScope scope(v8::Isolate::GetCurrent());
|
| - LocalContext context;
|
| -
|
| - // Enter new isolate.
|
| - v8::Isolate* isolate = v8::Isolate::New();
|
| - CHECK(isolate);
|
| - isolate->Enter();
|
| - { // Need this block because subsequent Exit() will deallocate Heap,
|
| - // so we need all scope objects to be deconstructed when it happens.
|
| - v8::HandleScope scope_new(isolate);
|
| - LocalContext context_new;
|
| -
|
| - // Run something in new isolate.
|
| - CompileRun("var foo = 153;");
|
| - ExpectTrue("function f() { return foo == 153; }; f()");
|
| - }
|
| - isolate->Exit();
|
| -
|
| - // This runs automatically in default isolate.
|
| - // Variables in another isolate should be not available.
|
| - ExpectTrue("function f() {"
|
| - " try {"
|
| - " foo;"
|
| - " return false;"
|
| - " } catch(e) {"
|
| - " return true;"
|
| - " }"
|
| - "};"
|
| - "var bar = 371;"
|
| - "f()");
|
| -
|
| - v8::V8::SetFatalErrorHandler(StoringErrorCallback);
|
| - last_location = last_message = NULL;
|
| - isolate->Dispose();
|
| - CHECK_EQ(last_location, NULL);
|
| - CHECK_EQ(last_message, NULL);
|
| -
|
| - // Check that default isolate still runs.
|
| - ExpectTrue("function f() { return bar == 371; }; f()");
|
| -}
|
| -
|
| -
|
| -TEST(DisposeIsolateWhenInUse) {
|
| +UNINITIALIZED_TEST(DisposeIsolateWhenInUse) {
|
| v8::Isolate* isolate = v8::Isolate::New();
|
| CHECK(isolate);
|
| isolate->Enter();
|
| @@ -18548,6 +18460,8 @@ class InitDefaultIsolateThread : public v8::internal::Thread {
|
| result_(false) { }
|
|
|
| void Run() {
|
| + v8::Isolate* isolate = v8::Isolate::New();
|
| + isolate->Enter();
|
| switch (testCase_) {
|
| case IgnoreOOM:
|
| v8::V8::IgnoreOutOfMemoryException();
|
| @@ -18578,6 +18492,8 @@ class InitDefaultIsolateThread : public v8::internal::Thread {
|
| v8::V8::SetAddHistogramSampleFunction(NULL);
|
| break;
|
| }
|
| + isolate->Exit();
|
| + isolate->Dispose();
|
| result_ = true;
|
| }
|
|
|
| @@ -19818,7 +19734,7 @@ TEST(StaticGetters) {
|
| }
|
|
|
|
|
| -TEST(IsolateEmbedderData) {
|
| +UNINITIALIZED_TEST(IsolateEmbedderData) {
|
| v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
| i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
|
| CHECK_EQ(NULL, isolate->GetData());
|
|
|