| Index: tests/lib/async/catch_errors12_test.dart
|
| diff --git a/tests/lib/async/catch_errors7_test.dart b/tests/lib/async/catch_errors12_test.dart
|
| similarity index 62%
|
| copy from tests/lib/async/catch_errors7_test.dart
|
| copy to tests/lib/async/catch_errors12_test.dart
|
| index 398a3c57e9c7e283b1e37532c6be75606a930e9f..59d9c6a400fd9a7dadf9ca7e0ea87767c92da28a 100644
|
| --- a/tests/lib/async/catch_errors7_test.dart
|
| +++ b/tests/lib/async/catch_errors12_test.dart
|
| @@ -8,15 +8,18 @@ import 'dart:isolate';
|
|
|
| main() {
|
| // We keep a ReceivePort open until all tests are done. This way the VM will
|
| - // time out if the callbacks are not invoked.
|
| + // hang if the callbacks are not invoked and the test will time out.
|
| var port = new ReceivePort();
|
| var events = [];
|
| - // Test that asynchronous errors are caught.
|
| + // Tests that errors that have been delayed by several milliseconds with
|
| + // Timers are still caught by `catchErrors`.
|
| catchErrors(() {
|
| events.add("catch error entry");
|
| - new Future.error("future error");
|
| - new Future.error("future error2");
|
| - new Future.value(499).then((x) => throw x);
|
| + Timer.run(() { throw "timer error"; });
|
| + new Timer(const Duration(milliseconds: 100), () { throw "timer2 error"; });
|
| + new Future.value(499).then((x) {
|
| + new Timer(const Duration(milliseconds: 200), () { throw x; });
|
| + });
|
| throw "catch error";
|
| }).listen((x) {
|
| events.add(x);
|
| @@ -26,8 +29,8 @@ main() {
|
| "catch error entry",
|
| "main exit",
|
| "catch error",
|
| - "future error",
|
| - "future error2",
|
| + "timer error",
|
| + "timer2 error",
|
| 499,
|
| ],
|
| events);
|
|
|