dart-sdk/tests/language_2/async_star_pause_test.dart
Kevin Millikin fa1d2c896d Fix order of arguments to Expect.equals in some tests
Expect.equals (and Expect.listEquals) takes expected first and actual
second.  When these are flipped in tests, the failure message can be super
hard to understand.

Bug:
Change-Id: I1d3c5a31365fa41ee7bcc7781474d76de9184cd5
Reviewed-on: https://dart-review.googlesource.com/23420
Reviewed-by: Jonas Termansen <sortie@google.com>
Commit-Queue: Kevin Millikin <kmillikin@google.com>
2017-11-23 14:45:46 +00:00

47 lines
1 KiB
Dart

// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
// 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.
library async_star_pause_test;
import "package:async_helper/async_helper.dart";
import "package:expect/expect.dart";
import "dart:async";
main() {
// await for pauses stream during body.
asyncTest(() async {
// Assumes await-for uses streamIterator.
var log = [];
var s = () async* {
for (int i = 0; i < 3; i++) {
log.add("$i-");
yield i;
// Should pause here until next iteration of await-for loop.
log.add("$i+");
}
}();
await for (var i in s) {
log.add("$i?");
await nextMicrotask();
log.add("$i!");
}
Expect.listEquals([
"0-",
"0?",
"0!",
"0+",
"1-",
"1?",
"1!",
"1+",
"2-",
"2?",
"2!",
"2+"
], log);
});
}
Future nextMicrotask() => new Future.microtask(() {});