OLD | NEW |
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 the V8 project authors. All rights reserved. |
2 // | 2 // |
3 // Tests of logging functions from log.h | 3 // Tests of logging functions from log.h |
4 | 4 |
5 #ifdef __linux__ | 5 #ifdef __linux__ |
6 #include <math.h> | 6 #include <math.h> |
7 #include <pthread.h> | 7 #include <pthread.h> |
8 #include <signal.h> | 8 #include <signal.h> |
9 #include <unistd.h> | 9 #include <unistd.h> |
10 #endif // __linux__ | 10 #endif // __linux__ |
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
363 | 363 |
364 | 364 |
365 static v8::Handle<v8::Value> ObjMethod1(const v8::Arguments& args) { | 365 static v8::Handle<v8::Value> ObjMethod1(const v8::Arguments& args) { |
366 return v8::Handle<v8::Value>(); | 366 return v8::Handle<v8::Value>(); |
367 } | 367 } |
368 | 368 |
369 TEST(LogCallbacks) { | 369 TEST(LogCallbacks) { |
370 ScopedLoggerInitializer initialize_logger(false); | 370 ScopedLoggerInitializer initialize_logger(false); |
371 | 371 |
372 v8::Persistent<v8::FunctionTemplate> obj = | 372 v8::Persistent<v8::FunctionTemplate> obj = |
373 v8::Persistent<v8::FunctionTemplate>::New(v8::FunctionTemplate::New()); | 373 v8::Persistent<v8::FunctionTemplate>::New(v8::Isolate::GetCurrent(), |
| 374 v8::FunctionTemplate::New()); |
374 obj->SetClassName(v8_str("Obj")); | 375 obj->SetClassName(v8_str("Obj")); |
375 v8::Handle<v8::ObjectTemplate> proto = obj->PrototypeTemplate(); | 376 v8::Handle<v8::ObjectTemplate> proto = obj->PrototypeTemplate(); |
376 v8::Local<v8::Signature> signature = v8::Signature::New(obj); | 377 v8::Local<v8::Signature> signature = v8::Signature::New(obj); |
377 proto->Set(v8_str("method1"), | 378 proto->Set(v8_str("method1"), |
378 v8::FunctionTemplate::New(ObjMethod1, | 379 v8::FunctionTemplate::New(ObjMethod1, |
379 v8::Handle<v8::Value>(), | 380 v8::Handle<v8::Value>(), |
380 signature), | 381 signature), |
381 static_cast<v8::PropertyAttribute>(v8::DontDelete)); | 382 static_cast<v8::PropertyAttribute>(v8::DontDelete)); |
382 | 383 |
383 initialize_logger.env()->Global()->Set(v8_str("Obj"), obj->GetFunction()); | 384 initialize_logger.env()->Global()->Set(v8_str("Obj"), obj->GetFunction()); |
384 CompileRun("Obj.prototype.method1.toString();"); | 385 CompileRun("Obj.prototype.method1.toString();"); |
385 | 386 |
386 LOGGER->LogCompiledFunctions(); | 387 LOGGER->LogCompiledFunctions(); |
387 | 388 |
388 bool exists = false; | 389 bool exists = false; |
389 i::Vector<const char> log( | 390 i::Vector<const char> log( |
390 i::ReadFile(initialize_logger.StopLoggingGetTempFile(), &exists, true)); | 391 i::ReadFile(initialize_logger.StopLoggingGetTempFile(), &exists, true)); |
391 CHECK(exists); | 392 CHECK(exists); |
392 | 393 |
393 i::EmbeddedVector<char, 100> ref_data; | 394 i::EmbeddedVector<char, 100> ref_data; |
394 i::OS::SNPrintF(ref_data, | 395 i::OS::SNPrintF(ref_data, |
395 "code-creation,Callback,-3,0x%" V8PRIxPTR ",1,\"method1\"\0", | 396 "code-creation,Callback,-3,0x%" V8PRIxPTR ",1,\"method1\"\0", |
396 ObjMethod1); | 397 ObjMethod1); |
397 | 398 |
398 CHECK_NE(NULL, StrNStr(log.start(), ref_data.start(), log.length())); | 399 CHECK_NE(NULL, StrNStr(log.start(), ref_data.start(), log.length())); |
399 | 400 |
400 obj.Dispose(); | 401 obj.Dispose(v8::Isolate::GetCurrent()); |
401 } | 402 } |
402 | 403 |
403 | 404 |
404 static v8::Handle<v8::Value> Prop1Getter(v8::Local<v8::String> property, | 405 static v8::Handle<v8::Value> Prop1Getter(v8::Local<v8::String> property, |
405 const v8::AccessorInfo& info) { | 406 const v8::AccessorInfo& info) { |
406 return v8::Handle<v8::Value>(); | 407 return v8::Handle<v8::Value>(); |
407 } | 408 } |
408 | 409 |
409 static void Prop1Setter(v8::Local<v8::String> property, | 410 static void Prop1Setter(v8::Local<v8::String> property, |
410 v8::Local<v8::Value> value, | 411 v8::Local<v8::Value> value, |
411 const v8::AccessorInfo& info) { | 412 const v8::AccessorInfo& info) { |
412 } | 413 } |
413 | 414 |
414 static v8::Handle<v8::Value> Prop2Getter(v8::Local<v8::String> property, | 415 static v8::Handle<v8::Value> Prop2Getter(v8::Local<v8::String> property, |
415 const v8::AccessorInfo& info) { | 416 const v8::AccessorInfo& info) { |
416 return v8::Handle<v8::Value>(); | 417 return v8::Handle<v8::Value>(); |
417 } | 418 } |
418 | 419 |
419 TEST(LogAccessorCallbacks) { | 420 TEST(LogAccessorCallbacks) { |
420 ScopedLoggerInitializer initialize_logger(false); | 421 ScopedLoggerInitializer initialize_logger(false); |
421 | 422 |
422 v8::Persistent<v8::FunctionTemplate> obj = | 423 v8::Persistent<v8::FunctionTemplate> obj = |
423 v8::Persistent<v8::FunctionTemplate>::New(v8::FunctionTemplate::New()); | 424 v8::Persistent<v8::FunctionTemplate>::New(v8::Isolate::GetCurrent(), |
| 425 v8::FunctionTemplate::New()); |
424 obj->SetClassName(v8_str("Obj")); | 426 obj->SetClassName(v8_str("Obj")); |
425 v8::Handle<v8::ObjectTemplate> inst = obj->InstanceTemplate(); | 427 v8::Handle<v8::ObjectTemplate> inst = obj->InstanceTemplate(); |
426 inst->SetAccessor(v8_str("prop1"), Prop1Getter, Prop1Setter); | 428 inst->SetAccessor(v8_str("prop1"), Prop1Getter, Prop1Setter); |
427 inst->SetAccessor(v8_str("prop2"), Prop2Getter); | 429 inst->SetAccessor(v8_str("prop2"), Prop2Getter); |
428 | 430 |
429 LOGGER->LogAccessorCallbacks(); | 431 LOGGER->LogAccessorCallbacks(); |
430 | 432 |
431 bool exists = false; | 433 bool exists = false; |
432 i::Vector<const char> log( | 434 i::Vector<const char> log( |
433 i::ReadFile(initialize_logger.StopLoggingGetTempFile(), &exists, true)); | 435 i::ReadFile(initialize_logger.StopLoggingGetTempFile(), &exists, true)); |
(...skipping 13 matching lines...) Expand all Loading... |
447 CHECK_NE(NULL, | 449 CHECK_NE(NULL, |
448 StrNStr(log.start(), prop1_setter_record.start(), log.length())); | 450 StrNStr(log.start(), prop1_setter_record.start(), log.length())); |
449 | 451 |
450 EmbeddedVector<char, 100> prop2_getter_record; | 452 EmbeddedVector<char, 100> prop2_getter_record; |
451 i::OS::SNPrintF(prop2_getter_record, | 453 i::OS::SNPrintF(prop2_getter_record, |
452 "code-creation,Callback,-3,0x%" V8PRIxPTR ",1,\"get prop2\"", | 454 "code-creation,Callback,-3,0x%" V8PRIxPTR ",1,\"get prop2\"", |
453 Prop2Getter); | 455 Prop2Getter); |
454 CHECK_NE(NULL, | 456 CHECK_NE(NULL, |
455 StrNStr(log.start(), prop2_getter_record.start(), log.length())); | 457 StrNStr(log.start(), prop2_getter_record.start(), log.length())); |
456 | 458 |
457 obj.Dispose(); | 459 obj.Dispose(v8::Isolate::GetCurrent()); |
458 } | 460 } |
459 | 461 |
460 | 462 |
461 TEST(IsLoggingPreserved) { | 463 TEST(IsLoggingPreserved) { |
462 ScopedLoggerInitializer initialize_logger(false); | 464 ScopedLoggerInitializer initialize_logger(false); |
463 | 465 |
464 CHECK(LOGGER->is_logging()); | 466 CHECK(LOGGER->is_logging()); |
465 LOGGER->ResumeProfiler(); | 467 LOGGER->ResumeProfiler(); |
466 CHECK(LOGGER->is_logging()); | 468 CHECK(LOGGER->is_logging()); |
467 LOGGER->PauseProfiler(); | 469 LOGGER->PauseProfiler(); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 v8::Local<v8::String> s = result->ToString(); | 531 v8::Local<v8::String> s = result->ToString(); |
530 i::ScopedVector<char> data(s->Length() + 1); | 532 i::ScopedVector<char> data(s->Length() + 1); |
531 CHECK_NE(NULL, data.start()); | 533 CHECK_NE(NULL, data.start()); |
532 s->WriteAscii(data.start()); | 534 s->WriteAscii(data.start()); |
533 printf("%s\n", data.start()); | 535 printf("%s\n", data.start()); |
534 // Make sure that our output is written prior crash due to CHECK failure. | 536 // Make sure that our output is written prior crash due to CHECK failure. |
535 fflush(stdout); | 537 fflush(stdout); |
536 CHECK(false); | 538 CHECK(false); |
537 } | 539 } |
538 } | 540 } |
OLD | NEW |