Index: test/cctest/test-log.cc |
diff --git a/test/cctest/test-log.cc b/test/cctest/test-log.cc |
index 482f89f9c47675c4a70c1183260081cf07c26a92..d72e6f0e1e087a323c5f99831047d4e163e52d63 100644 |
--- a/test/cctest/test-log.cc |
+++ b/test/cctest/test-log.cc |
@@ -61,11 +61,9 @@ class ScopedLoggerInitializer { |
temp_file_(NULL), |
// Need to run this prior to creating the scope. |
trick_to_run_init_flags_(init_flags_()), |
- isolate_(v8::Isolate::New()), |
- isolate_scope_(isolate_), |
- scope_(isolate_), |
- env_(v8::Context::New(isolate_)), |
- logger_(reinterpret_cast<i::Isolate*>(isolate_)->logger()) { |
+ scope_(CcTest::isolate()), |
+ env_(v8::Context::New(CcTest::isolate())), |
+ logger_(CcTest::i_isolate()->logger()) { |
env_->Enter(); |
} |
@@ -79,8 +77,6 @@ class ScopedLoggerInitializer { |
v8::Handle<v8::Context>& env() { return env_; } |
- v8::Isolate* isolate() { return isolate_; } |
- |
Logger* logger() { return logger_; } |
FILE* StopLoggingGetTempFile() { |
@@ -104,8 +100,6 @@ class ScopedLoggerInitializer { |
const bool saved_prof_; |
FILE* temp_file_; |
const bool trick_to_run_init_flags_; |
- v8::Isolate* isolate_; |
- v8::Isolate::Scope isolate_scope_; |
v8::HandleScope scope_; |
v8::Handle<v8::Context> env_; |
Logger* logger_; |
@@ -336,41 +330,41 @@ static void ObjMethod1(const v8::FunctionCallbackInfo<v8::Value>& args) { |
TEST(LogCallbacks) { |
- v8::Isolate* isolate; |
- { |
- ScopedLoggerInitializer initialize_logger; |
- isolate = initialize_logger.isolate(); |
- Logger* logger = initialize_logger.logger(); |
- |
- v8::Local<v8::FunctionTemplate> obj = v8::Local<v8::FunctionTemplate>::New( |
- isolate, v8::FunctionTemplate::New(isolate)); |
- obj->SetClassName(v8_str("Obj")); |
- v8::Handle<v8::ObjectTemplate> proto = obj->PrototypeTemplate(); |
- v8::Local<v8::Signature> signature = v8::Signature::New(isolate, obj); |
- proto->Set(v8_str("method1"), |
- v8::FunctionTemplate::New(isolate, ObjMethod1, |
- v8::Handle<v8::Value>(), signature), |
- static_cast<v8::PropertyAttribute>(v8::DontDelete)); |
- |
- initialize_logger.env()->Global()->Set(v8_str("Obj"), obj->GetFunction()); |
- CompileRun("Obj.prototype.method1.toString();"); |
- |
- logger->LogCompiledFunctions(); |
- |
- bool exists = false; |
- i::Vector<const char> log( |
- i::ReadFile(initialize_logger.StopLoggingGetTempFile(), &exists, true)); |
- CHECK(exists); |
- |
- i::EmbeddedVector<char, 100> ref_data; |
- i::SNPrintF(ref_data, |
- "code-creation,Callback,-2,0x%" V8PRIxPTR ",1,\"method1\"", |
- reinterpret_cast<intptr_t>(ObjMethod1)); |
- |
- CHECK_NE(NULL, StrNStr(log.start(), ref_data.start(), log.length())); |
- log.Dispose(); |
- } |
- isolate->Dispose(); |
+ v8::Isolate* isolate = CcTest::isolate(); |
+ ScopedLoggerInitializer initialize_logger; |
+ Logger* logger = initialize_logger.logger(); |
+ |
+ v8::Local<v8::FunctionTemplate> obj = |
+ v8::Local<v8::FunctionTemplate>::New(isolate, |
+ v8::FunctionTemplate::New(isolate)); |
+ obj->SetClassName(v8_str("Obj")); |
+ v8::Handle<v8::ObjectTemplate> proto = obj->PrototypeTemplate(); |
+ v8::Local<v8::Signature> signature = |
+ v8::Signature::New(isolate, obj); |
+ proto->Set(v8_str("method1"), |
+ v8::FunctionTemplate::New(isolate, |
+ ObjMethod1, |
+ v8::Handle<v8::Value>(), |
+ signature), |
+ static_cast<v8::PropertyAttribute>(v8::DontDelete)); |
+ |
+ initialize_logger.env()->Global()->Set(v8_str("Obj"), obj->GetFunction()); |
+ CompileRun("Obj.prototype.method1.toString();"); |
+ |
+ logger->LogCompiledFunctions(); |
+ |
+ bool exists = false; |
+ i::Vector<const char> log( |
+ i::ReadFile(initialize_logger.StopLoggingGetTempFile(), &exists, true)); |
+ CHECK(exists); |
+ |
+ i::EmbeddedVector<char, 100> ref_data; |
+ i::SNPrintF(ref_data, |
+ "code-creation,Callback,-2,0x%" V8PRIxPTR ",1,\"method1\"", |
+ reinterpret_cast<intptr_t>(ObjMethod1)); |
+ |
+ CHECK_NE(NULL, StrNStr(log.start(), ref_data.start(), log.length())); |
+ log.Dispose(); |
} |
@@ -389,49 +383,46 @@ static void Prop2Getter(v8::Local<v8::String> property, |
TEST(LogAccessorCallbacks) { |
- v8::Isolate* isolate; |
- { |
- ScopedLoggerInitializer initialize_logger; |
- isolate = initialize_logger.isolate(); |
- Logger* logger = initialize_logger.logger(); |
- |
- v8::Local<v8::FunctionTemplate> obj = v8::Local<v8::FunctionTemplate>::New( |
- isolate, v8::FunctionTemplate::New(isolate)); |
- obj->SetClassName(v8_str("Obj")); |
- v8::Handle<v8::ObjectTemplate> inst = obj->InstanceTemplate(); |
- inst->SetAccessor(v8_str("prop1"), Prop1Getter, Prop1Setter); |
- inst->SetAccessor(v8_str("prop2"), Prop2Getter); |
- |
- logger->LogAccessorCallbacks(); |
- |
- bool exists = false; |
- i::Vector<const char> log( |
- i::ReadFile(initialize_logger.StopLoggingGetTempFile(), &exists, true)); |
- CHECK(exists); |
- |
- EmbeddedVector<char, 100> prop1_getter_record; |
- i::SNPrintF(prop1_getter_record, |
- "code-creation,Callback,-2,0x%" V8PRIxPTR ",1,\"get prop1\"", |
- reinterpret_cast<intptr_t>(Prop1Getter)); |
- CHECK_NE(NULL, |
- StrNStr(log.start(), prop1_getter_record.start(), log.length())); |
- |
- EmbeddedVector<char, 100> prop1_setter_record; |
- i::SNPrintF(prop1_setter_record, |
- "code-creation,Callback,-2,0x%" V8PRIxPTR ",1,\"set prop1\"", |
- reinterpret_cast<intptr_t>(Prop1Setter)); |
- CHECK_NE(NULL, |
- StrNStr(log.start(), prop1_setter_record.start(), log.length())); |
- |
- EmbeddedVector<char, 100> prop2_getter_record; |
- i::SNPrintF(prop2_getter_record, |
- "code-creation,Callback,-2,0x%" V8PRIxPTR ",1,\"get prop2\"", |
- reinterpret_cast<intptr_t>(Prop2Getter)); |
- CHECK_NE(NULL, |
- StrNStr(log.start(), prop2_getter_record.start(), log.length())); |
- log.Dispose(); |
- } |
- isolate->Dispose(); |
+ v8::Isolate* isolate = CcTest::isolate(); |
+ ScopedLoggerInitializer initialize_logger; |
+ Logger* logger = initialize_logger.logger(); |
+ |
+ v8::Local<v8::FunctionTemplate> obj = |
+ v8::Local<v8::FunctionTemplate>::New(isolate, |
+ v8::FunctionTemplate::New(isolate)); |
+ obj->SetClassName(v8_str("Obj")); |
+ v8::Handle<v8::ObjectTemplate> inst = obj->InstanceTemplate(); |
+ inst->SetAccessor(v8_str("prop1"), Prop1Getter, Prop1Setter); |
+ inst->SetAccessor(v8_str("prop2"), Prop2Getter); |
+ |
+ logger->LogAccessorCallbacks(); |
+ |
+ bool exists = false; |
+ i::Vector<const char> log( |
+ i::ReadFile(initialize_logger.StopLoggingGetTempFile(), &exists, true)); |
+ CHECK(exists); |
+ |
+ EmbeddedVector<char, 100> prop1_getter_record; |
+ i::SNPrintF(prop1_getter_record, |
+ "code-creation,Callback,-2,0x%" V8PRIxPTR ",1,\"get prop1\"", |
+ reinterpret_cast<intptr_t>(Prop1Getter)); |
+ CHECK_NE(NULL, |
+ StrNStr(log.start(), prop1_getter_record.start(), log.length())); |
+ |
+ EmbeddedVector<char, 100> prop1_setter_record; |
+ i::SNPrintF(prop1_setter_record, |
+ "code-creation,Callback,-2,0x%" V8PRIxPTR ",1,\"set prop1\"", |
+ reinterpret_cast<intptr_t>(Prop1Setter)); |
+ CHECK_NE(NULL, |
+ StrNStr(log.start(), prop1_setter_record.start(), log.length())); |
+ |
+ EmbeddedVector<char, 100> prop2_getter_record; |
+ i::SNPrintF(prop2_getter_record, |
+ "code-creation,Callback,-2,0x%" V8PRIxPTR ",1,\"get prop2\"", |
+ reinterpret_cast<intptr_t>(Prop2Getter)); |
+ CHECK_NE(NULL, |
+ StrNStr(log.start(), prop2_getter_record.start(), log.length())); |
+ log.Dispose(); |
} |
@@ -448,63 +439,57 @@ TEST(EquivalenceOfLoggingAndTraversal) { |
// are using V8. |
// Start with profiling to capture all code events from the beginning. |
- v8::Isolate* isolate; |
- { |
- ScopedLoggerInitializer initialize_logger; |
- isolate = initialize_logger.isolate(); |
- Logger* logger = initialize_logger.logger(); |
- |
- // Compile and run a function that creates other functions. |
- CompileRun( |
- "(function f(obj) {\n" |
- " obj.test =\n" |
- " (function a(j) { return function b() { return j; } })(100);\n" |
- "})(this);"); |
- logger->StopProfiler(); |
- reinterpret_cast<i::Isolate*>(isolate)->heap()->CollectAllGarbage( |
- i::Heap::kMakeHeapIterableMask); |
- logger->StringEvent("test-logging-done", ""); |
- |
- // Iterate heap to find compiled functions, will write to log. |
- logger->LogCompiledFunctions(); |
- logger->StringEvent("test-traversal-done", ""); |
- |
- bool exists = false; |
- i::Vector<const char> log( |
- i::ReadFile(initialize_logger.StopLoggingGetTempFile(), &exists, true)); |
- CHECK(exists); |
- v8::Handle<v8::String> log_str = v8::String::NewFromUtf8( |
- isolate, log.start(), v8::String::kNormalString, log.length()); |
- initialize_logger.env()->Global()->Set(v8_str("_log"), log_str); |
- |
- i::Vector<const unsigned char> source = TestSources::GetScriptsSource(); |
- v8::Handle<v8::String> source_str = v8::String::NewFromUtf8( |
- isolate, reinterpret_cast<const char*>(source.start()), |
- v8::String::kNormalString, source.length()); |
- v8::TryCatch try_catch; |
- v8::Handle<v8::Script> script = CompileWithOrigin(source_str, ""); |
- if (script.IsEmpty()) { |
- v8::String::Utf8Value exception(try_catch.Exception()); |
- printf("compile: %s\n", *exception); |
- CHECK(false); |
- } |
- v8::Handle<v8::Value> result = script->Run(); |
- if (result.IsEmpty()) { |
- v8::String::Utf8Value exception(try_catch.Exception()); |
- printf("run: %s\n", *exception); |
- CHECK(false); |
- } |
- // The result either be a "true" literal or problem description. |
- if (!result->IsTrue()) { |
- v8::Local<v8::String> s = result->ToString(); |
- i::ScopedVector<char> data(s->Utf8Length() + 1); |
- CHECK_NE(NULL, data.start()); |
- s->WriteUtf8(data.start()); |
- printf("%s\n", data.start()); |
- // Make sure that our output is written prior crash due to CHECK failure. |
- fflush(stdout); |
- CHECK(false); |
- } |
+ ScopedLoggerInitializer initialize_logger; |
+ Logger* logger = initialize_logger.logger(); |
+ |
+ // Compile and run a function that creates other functions. |
+ CompileRun( |
+ "(function f(obj) {\n" |
+ " obj.test =\n" |
+ " (function a(j) { return function b() { return j; } })(100);\n" |
+ "})(this);"); |
+ logger->StopProfiler(); |
+ CcTest::heap()->CollectAllGarbage(i::Heap::kMakeHeapIterableMask); |
+ logger->StringEvent("test-logging-done", ""); |
+ |
+ // Iterate heap to find compiled functions, will write to log. |
+ logger->LogCompiledFunctions(); |
+ logger->StringEvent("test-traversal-done", ""); |
+ |
+ bool exists = false; |
+ i::Vector<const char> log( |
+ i::ReadFile(initialize_logger.StopLoggingGetTempFile(), &exists, true)); |
+ CHECK(exists); |
+ v8::Handle<v8::String> log_str = v8::String::NewFromUtf8( |
+ CcTest::isolate(), log.start(), v8::String::kNormalString, log.length()); |
+ initialize_logger.env()->Global()->Set(v8_str("_log"), log_str); |
+ |
+ i::Vector<const unsigned char> source = TestSources::GetScriptsSource(); |
+ v8::Handle<v8::String> source_str = v8::String::NewFromUtf8( |
+ CcTest::isolate(), reinterpret_cast<const char*>(source.start()), |
+ v8::String::kNormalString, source.length()); |
+ v8::TryCatch try_catch; |
+ v8::Handle<v8::Script> script = CompileWithOrigin(source_str, ""); |
+ if (script.IsEmpty()) { |
+ v8::String::Utf8Value exception(try_catch.Exception()); |
+ printf("compile: %s\n", *exception); |
+ CHECK(false); |
+ } |
+ v8::Handle<v8::Value> result = script->Run(); |
+ if (result.IsEmpty()) { |
+ v8::String::Utf8Value exception(try_catch.Exception()); |
+ printf("run: %s\n", *exception); |
+ CHECK(false); |
+ } |
+ // The result either be a "true" literal or problem description. |
+ if (!result->IsTrue()) { |
+ v8::Local<v8::String> s = result->ToString(); |
+ i::ScopedVector<char> data(s->Utf8Length() + 1); |
+ CHECK_NE(NULL, data.start()); |
+ s->WriteUtf8(data.start()); |
+ printf("%s\n", data.start()); |
+ // Make sure that our output is written prior crash due to CHECK failure. |
+ fflush(stdout); |
+ CHECK(false); |
} |
- isolate->Dispose(); |
} |