Chromium Code Reviews| Index: tests/language/asyncstar_throw_in_catch_test.dart |
| diff --git a/tests/language/asyncstar_throw_in_catch_test.dart b/tests/language/asyncstar_throw_in_catch_test.dart |
| index a6f6a337b8f1b49e968efa776946cec17ece7767..e4bb516731de0de9bdc90ed78773c964ef202437 100644 |
| --- a/tests/language/asyncstar_throw_in_catch_test.dart |
| +++ b/tests/language/asyncstar_throw_in_catch_test.dart |
| @@ -38,25 +38,64 @@ foo1(Tracer tracer) async* { |
| tracer.trace("d"); |
| yield 2; |
| tracer.trace("e"); |
| - await new Future.error("Error2"); |
| } finally { |
| tracer.trace("f"); |
| } |
| tracer.trace("g"); |
| } |
| -test() async { |
| - Tracer tracer; |
| +foo2(Tracer tracer) async* { |
| + try { |
| + tracer.trace("a"); |
| + throw "Error"; |
| + } catch (error) { |
| + Expect.equals("Error", error); |
| + tracer.trace("b"); |
| + rethrow; |
| + } finally { |
| + tracer.trace("c"); |
| + } |
| +} |
| - Completer foo1Done = new Completer(); |
| - tracer = new Tracer("abcdf"); |
| +foo3(Tracer tracer) async* { |
| + try { |
| + tracer.trace("a"); |
| + throw "Error"; |
| + } catch (error) { |
| + Expect.equals("Error", error); |
| + tracer.trace("b"); |
| + rethrow; |
| + } finally { |
| + tracer.trace("c"); |
| + yield 1; |
| + } |
| +} |
| + |
| +runTest(test, expectedTrace, expectedError, shouldCancel) { |
| + Tracer tracer = new Tracer(expectedTrace);; |
| + Completer done = new Completer(); |
| var subscription; |
| - subscription = foo1(tracer).listen((event) async { |
| - await subscription.cancel(); |
| - tracer.done(); |
| - foo1Done.complete(null); |
| + subscription = test(tracer).listen((event) async { |
| + tracer.trace("Y"); |
| + if (shouldCancel) { |
| + await subscription.cancel(); |
| + tracer.trace("C"); |
| + done.complete(null); |
| + } |
| + }, onError: (error) { |
| + Expect.equals(expectedError, error); |
| + tracer.trace("X"); |
| + }, onDone: () { |
| + tracer.done(); |
| + done.complete(null); |
| }); |
| - await foo1Done.future; |
| + return done.future.then((_) => tracer.done()); |
| +} |
| + |
| +test() async { |
| + await runTest(foo1, "abcdYfC", null, true); |
|
floitsch
2015/02/20 12:36:05
This looks a change from a different CL.
sigurdm
2015/02/23 12:41:18
Yes it is - I must have made a mistake during uplo
|
| + await runTest(foo2, "abcX", "Error", false); |
| + await runTest(foo3, "abcYX", "Error", false); |
| } |