| Index: tests/lib/async/catch_errors14_test.dart
|
| diff --git a/tests/lib/async/catch_errors4_test.dart b/tests/lib/async/catch_errors14_test.dart
|
| similarity index 57%
|
| copy from tests/lib/async/catch_errors4_test.dart
|
| copy to tests/lib/async/catch_errors14_test.dart
|
| index d14f948911d101cfd7d8fb00e6ebcffc87981909..83a36a1fe5d5f064cbd22ff90a7a3a96ab23db95 100644
|
| --- a/tests/lib/async/catch_errors4_test.dart
|
| +++ b/tests/lib/async/catch_errors14_test.dart
|
| @@ -8,21 +8,28 @@ 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 synchronous errors inside a `catchErrors` are caught.
|
| + // Test that periodic Timers are handled correctly by `catchErrors`.
|
| catchErrors(() {
|
| - events.add("catch error entry");
|
| - throw "catch error";
|
| + int counter = 0;
|
| + new Timer.periodic(const Duration(milliseconds: 50), (timer) {
|
| + if (counter++ == 5) timer.cancel();
|
| + throw "error $counter";
|
| + });
|
| }).listen((x) {
|
| events.add(x);
|
| },
|
| onDone: () {
|
| Expect.listEquals([
|
| - "catch error entry",
|
| "main exit",
|
| - "catch error",
|
| + "error 1",
|
| + "error 2",
|
| + "error 3",
|
| + "error 4",
|
| + "error 5",
|
| + "error 6",
|
| ],
|
| events);
|
| port.close();
|
|
|