| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 // | 4 // |
| 5 // Dart test program for checking implemention of MirrorSystem when | 5 // Dart test program for checking implemention of MirrorSystem when |
| 6 // inspecting the current isolate. | 6 // inspecting the current isolate. |
| 7 // | 7 // |
| 8 // VMOptions=--enable_type_checks | 8 // VMOptions=--enable_type_checks |
| 9 | 9 |
| 10 library isolate_mirror_local_test; | 10 library isolate_mirror_local_test; |
| (...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 471 } | 471 } |
| 472 | 472 |
| 473 void testMirrorErrors(MirrorSystem mirrors) { | 473 void testMirrorErrors(MirrorSystem mirrors) { |
| 474 LibraryMirror lib_mirror = mirrors.isolate.rootLibrary; | 474 LibraryMirror lib_mirror = mirrors.isolate.rootLibrary; |
| 475 | 475 |
| 476 lib_mirror.invokeAsync(const Symbol('methodWithException'), []) | 476 lib_mirror.invokeAsync(const Symbol('methodWithException'), []) |
| 477 .then((InstanceMirror retval) { | 477 .then((InstanceMirror retval) { |
| 478 // Should not reach here. | 478 // Should not reach here. |
| 479 Expect.isTrue(false); | 479 Expect.isTrue(false); |
| 480 }) | 480 }) |
| 481 .catchError((exc) { | 481 .catchError((error) { |
| 482 Expect.isTrue(exc.error is MirroredUncaughtExceptionError); | 482 Expect.isTrue(error is MirroredUncaughtExceptionError); |
| 483 Expect.equals(const Symbol('MyException'), | 483 Expect.equals(const Symbol('MyException'), |
| 484 exc.error.exception_mirror.type.simpleName); | 484 error.exception_mirror.type.simpleName); |
| 485 Expect.equals('MyException: from methodWithException', | 485 Expect.equals('MyException: from methodWithException', |
| 486 exc.error.exception_string); | 486 error.exception_string); |
| 487 Expect.isTrue(exc.error.stacktrace.toString().contains( | 487 Expect.isTrue(error.stacktrace.toString().contains( |
| 488 'isolate_mirror_local_test.dart')); | 488 'isolate_mirror_local_test.dart')); |
| 489 testDone('testMirrorErrors1'); | 489 testDone('testMirrorErrors1'); |
| 490 }); | 490 }); |
| 491 | 491 |
| 492 lib_mirror.invokeAsync(const Symbol('methodWithError'), []) | 492 lib_mirror.invokeAsync(const Symbol('methodWithError'), []) |
| 493 .then((InstanceMirror retval) { | 493 .then((InstanceMirror retval) { |
| 494 // Should not reach here. | 494 // Should not reach here. |
| 495 Expect.isTrue(false); | 495 Expect.isTrue(false); |
| 496 }) | 496 }) |
| 497 .catchError((exc) { | 497 .catchError((error) { |
| 498 Expect.isTrue(exc.error is MirroredCompilationError); | 498 Expect.isTrue(error is MirroredCompilationError); |
| 499 Expect.isTrue(exc.error.message.contains('unexpected token')); | 499 Expect.isTrue(error.message.contains('unexpected token')); |
| 500 testDone('testMirrorErrors2'); | 500 testDone('testMirrorErrors2'); |
| 501 }); | 501 }); |
| 502 | 502 |
| 503 // TODO(turnidge): When we call a method that doesn't exist, we | 503 // TODO(turnidge): When we call a method that doesn't exist, we |
| 504 // should probably call noSuchMethod(). I'm adding this test to | 504 // should probably call noSuchMethod(). I'm adding this test to |
| 505 // document the current behavior in the meantime. | 505 // document the current behavior in the meantime. |
| 506 lib_mirror.invokeAsync(const Symbol('methodNotFound'), []) | 506 lib_mirror.invokeAsync(const Symbol('methodNotFound'), []) |
| 507 .then((InstanceMirror retval) { | 507 .then((InstanceMirror retval) { |
| 508 // Should not reach here. | 508 // Should not reach here. |
| 509 Expect.isTrue(false); | 509 Expect.isTrue(false); |
| 510 }) | 510 }) |
| 511 .catchError((exc) { | 511 .catchError((error) { |
| 512 Expect.isTrue(exc.error is MirroredCompilationError); | 512 Expect.isTrue(error is MirroredCompilationError); |
| 513 Expect.isTrue(exc.error.message.contains( | 513 Expect.isTrue(error.message.contains( |
| 514 "did not find top-level function 'methodNotFound'")); | 514 "did not find top-level function 'methodNotFound'")); |
| 515 testDone('testMirrorErrors3'); | 515 testDone('testMirrorErrors3'); |
| 516 }); | 516 }); |
| 517 } | 517 } |
| 518 | 518 |
| 519 void main() { | 519 void main() { |
| 520 // When all of the expected tests complete, the exit_port is closed, | 520 // When all of the expected tests complete, the exit_port is closed, |
| 521 // allowing the program to terminate. | 521 // allowing the program to terminate. |
| 522 exit_port = new ReceivePort(); | 522 exit_port = new ReceivePort(); |
| 523 expectedTests = new Set<String>.from(['testRootLibraryMirror', | 523 expectedTests = new Set<String>.from(['testRootLibraryMirror', |
| (...skipping 11 matching lines...) Expand all Loading... |
| 535 // Test that an isolate can reflect on itself. | 535 // Test that an isolate can reflect on itself. |
| 536 mirrorSystemOf(exit_port.toSendPort()).then(testMirrorSystem); | 536 mirrorSystemOf(exit_port.toSendPort()).then(testMirrorSystem); |
| 537 | 537 |
| 538 testIntegerInstanceMirror(reflect(1001)); | 538 testIntegerInstanceMirror(reflect(1001)); |
| 539 testStringInstanceMirror(reflect('This\nis\na\nString')); | 539 testStringInstanceMirror(reflect('This\nis\na\nString')); |
| 540 testBoolInstanceMirror(reflect(true)); | 540 testBoolInstanceMirror(reflect(true)); |
| 541 testNullInstanceMirror(reflect(null)); | 541 testNullInstanceMirror(reflect(null)); |
| 542 testCustomInstanceMirror(reflect(new MyClass(17))); | 542 testCustomInstanceMirror(reflect(new MyClass(17))); |
| 543 testMirrorErrors(currentMirrorSystem()); | 543 testMirrorErrors(currentMirrorSystem()); |
| 544 } | 544 } |
| OLD | NEW |