Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Unified Diff: tests/language/async_star_await_pauses_test.dart

Issue 1869583003: Replace broken language/async_star_await_pauses_test (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Changed my mind. Fix the test instead. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tests/language/language.status » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/language/async_star_await_pauses_test.dart
diff --git a/tests/language/async_star_await_pauses_test.dart b/tests/language/async_star_await_pauses_test.dart
index c16fbdd7ff898666c1462fca8a336a020e9679ee..f6cd437339361549b8a09b37ae7e19a510d73d19 100644
--- a/tests/language/async_star_await_pauses_test.dart
+++ b/tests/language/async_star_await_pauses_test.dart
@@ -1,34 +1,47 @@
-// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
ahe 2016/04/08 11:46:15 The name of this test is odd. I think it should be
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import "dart:async";
-import "package:expect/expect.dart";
import "package:async_helper/async_helper.dart";
main() {
- var sc;
- var i = 0;
- void send() {
- if (i == 5) {
- sc.close();
- } else {
- sc.add(i++);
- }
+ Completer listenEventReceived = new Completer();
+ Completer pauseEventReceived = new Completer();
+ Completer resumeEventReceived = new Completer();
+ StreamController controller = new StreamController(
+ onListen: () => listenEventReceived.complete(),
+ onPause: () => pauseEventReceived.complete(),
+ onResume: () => resumeEventReceived.complete());
+
+ Completer forLoopEntered = new Completer();
+
+ send() async {
ahe 2016/04/08 11:46:15 Since this is a language feature test of "await fo
+ await listenEventReceived.future;
+ controller.add("first");
+ await forLoopEntered.future;
+ var timer = new Timer.periodic(new Duration(milliseconds: 10), (timer) {
+ controller.add("second");
+ });
+ await pauseEventReceived.future;
+ timer.cancel();
+ await resumeEventReceived.future;
+ controller.add("third");
+ controller.close();
}
- sc = new StreamController(onListen: send, onResume: send);
- f(s) async {
- var r = 0;
- await for (var i in s) {
- r += await new Future.delayed(new Duration(milliseconds: 10), () => i);
+ receive() async {
+ await for (var entry in controller.stream) {
+ if (entry == 'first') {
+ forLoopEntered.complete();
+ await pauseEventReceived.future;
+ }
}
- return r;
}
- asyncStart();
- f(sc.stream).then((v) {
- Expect.equals(10, v);
- asyncEnd();
+ asyncTest(() async {
+ var f = send();
+ await receive();
+ await f;
});
}
« no previous file with comments | « no previous file | tests/language/language.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698