Index: tests/language/async_star_test.dart |
diff --git a/tests/language/async_star_test.dart b/tests/language/async_star_test.dart |
index fb7d2e4d17bc363d6613850e339b8d7c1ee2220c..691890fa32dfb25677b974e19c8b49e09496a4c4 100644 |
--- a/tests/language/async_star_test.dart |
+++ b/tests/language/async_star_test.dart |
@@ -17,7 +17,10 @@ main() { |
}); |
test("single", () { |
- f() async* { yield 42; } |
+ f() async* { |
+ yield 42; |
+ } |
+ |
return f().toList().then((v) { |
expect(v, equals([42])); |
}); |
@@ -25,7 +28,11 @@ main() { |
test("call delays", () { |
var list = []; |
- f() async* { list.add(1); yield 2; } |
+ f() async* { |
+ list.add(1); |
+ yield 2; |
+ } |
+ |
var res = f().forEach(list.add); |
list.add(0); |
return res.whenComplete(() { |
@@ -34,12 +41,15 @@ main() { |
}); |
test("throws", () { |
- f() async* { yield 1; throw 2; } |
+ f() async* { |
+ yield 1; |
+ throw 2; |
+ } |
+ |
var completer = new Completer(); |
var list = []; |
f().listen(list.add, |
- onError: (v) => list.add("$v"), |
- onDone: completer.complete); |
+ onError: (v) => list.add("$v"), onDone: completer.complete); |
return completer.future.whenComplete(() { |
expect(list, equals([1, "2"])); |
}); |
@@ -51,6 +61,7 @@ main() { |
yield i; |
} |
} |
+ |
return expectList(f(), new List.generate(10, id)); |
}); |
@@ -60,6 +71,7 @@ main() { |
yield x; |
x = await new Future.value(42); |
} |
+ |
return expectList(f(), [42]); |
}); |
@@ -69,6 +81,7 @@ main() { |
yield await i; |
} |
} |
+ |
return expectList(f(), new List.generate(10, id)); |
}); |
@@ -76,6 +89,7 @@ main() { |
f() async* { |
yield* new Stream.fromIterable([1, 2, 3]); |
} |
+ |
return expectList(f(), [1, 2, 3]); |
}); |
@@ -86,6 +100,7 @@ main() { |
yield* f(n - 1); |
yield n; |
} |
+ |
return expectList(f(3), [3, 2, 1, 0, 1, 2, 3]); |
}); |
@@ -93,16 +108,18 @@ main() { |
f(s) async* { |
yield* s; |
} |
+ |
return f(42).transform(getErrors).single.then((v) { |
// Not implementing Stream. |
expect(v is Error, isTrue); |
}); |
}); |
- test("Cannot yield* non-stream", () { |
+ test("Cannot yield* non-stream", () { |
f(s) async* { |
yield* s; |
} |
+ |
return f(new NotAStream()).transform(getErrors).single.then((v) { |
// Not implementing Stream. |
expect(v is Error, isTrue); |
@@ -115,13 +132,18 @@ main() { |
f() async* { |
yield 0; |
} |
+ |
return expectList(f(), [0]); |
}); |
test("if-then-else", () { |
f(b) async* { |
- if (b) yield 0; else yield 1; |
+ if (b) |
+ yield 0; |
+ else |
+ yield 1; |
} |
+ |
return expectList(f(true), [0]).whenComplete(() { |
expectList(f(false), [1]); |
}); |
@@ -130,16 +152,21 @@ main() { |
test("block", () { |
f() async* { |
yield 0; |
- { yield 1; } |
+ { |
+ yield 1; |
+ } |
yield 2; |
} |
+ |
return expectList(f(), [0, 1, 2]); |
}); |
test("labeled", () { |
f() async* { |
- label1: yield 0; |
+ label1: |
+ yield 0; |
} |
+ |
return expectList(f(), [0]); |
}); |
@@ -147,6 +174,7 @@ main() { |
f() async* { |
for (int i = 0; i < 3; i++) yield i; |
} |
+ |
return expectList(f(), [0, 1, 2]); |
}); |
@@ -154,6 +182,7 @@ main() { |
f() async* { |
for (var i in [0, 1, 2]) yield i; |
} |
+ |
return expectList(f(), [0, 1, 2]); |
}); |
@@ -161,6 +190,7 @@ main() { |
f() async* { |
await for (var i in new Stream.fromIterable([0, 1, 2])) yield i; |
} |
+ |
return expectList(f(), [0, 1, 2]); |
}); |
@@ -169,6 +199,7 @@ main() { |
int i = 0; |
while (i < 3) yield i++; |
} |
+ |
return expectList(f(), [0, 1, 2]); |
}); |
@@ -177,20 +208,35 @@ main() { |
int i = 0; |
do yield i++; while (i < 3); |
} |
+ |
return expectList(f(), [0, 1, 2]); |
}); |
test("try-catch-finally", () { |
f() async* { |
- try { yield 0; } catch (e) { yield 1; } finally { yield 2; } |
+ try { |
+ yield 0; |
+ } catch (e) { |
+ yield 1; |
+ } finally { |
+ yield 2; |
+ } |
} |
+ |
return expectList(f(), [0, 2]); |
}); |
test("try-catch-finally 2", () { |
f() async* { |
- try { yield throw 0; } catch (e) { yield 1; } finally { yield 2; } |
+ try { |
+ yield throw 0; |
+ } catch (e) { |
+ yield 1; |
+ } finally { |
+ yield 2; |
+ } |
} |
+ |
return expectList(f(), [1, 2]); |
}); |
@@ -208,6 +254,7 @@ main() { |
yield 2; |
} |
} |
+ |
return expectList(f(0), [0, 1]).whenComplete(() { |
return expectList(f(1), [1]); |
}).whenComplete(() { |
@@ -220,6 +267,7 @@ main() { |
return; |
yield 1; |
} |
+ |
return expectList(f(), []); |
}); |
@@ -230,6 +278,7 @@ main() { |
yield 1; |
} catch (_) {} |
} |
+ |
return expectList(f(), []); |
}); |
@@ -240,16 +289,19 @@ main() { |
yield 1; |
} |
} |
+ |
return expectList(f(), []); |
}); |
test("dead-code break 2", () { |
f() async* { |
- label: { |
+ label: |
+ { |
break label; |
yield 1; |
} |
} |
+ |
return expectList(f(), []); |
}); |
@@ -260,6 +312,7 @@ main() { |
yield 1; |
} while (false); |
} |
+ |
return expectList(f(), []); |
}); |
}); |
@@ -270,6 +323,7 @@ main() { |
var x = 42; |
yield x; |
} |
+ |
return expectList(f(), [42]); |
}); |
@@ -278,6 +332,7 @@ main() { |
const x = 42; |
yield x; |
} |
+ |
return expectList(f(), [42]); |
}); |
@@ -286,6 +341,7 @@ main() { |
f() async* { |
yield g(); |
} |
+ |
return expectList(f(), [42]); |
}); |
@@ -294,6 +350,7 @@ main() { |
var x = -42; |
yield -x; |
} |
+ |
return expectList(f(), [42]); |
}); |
@@ -302,6 +359,7 @@ main() { |
var x = 21; |
yield x + x; |
} |
+ |
return expectList(f(), [42]); |
}); |
@@ -310,6 +368,7 @@ main() { |
var x = 21; |
yield x == 21 ? x + x : x; |
} |
+ |
return expectList(f(), [42]); |
}); |
@@ -318,6 +377,7 @@ main() { |
var x = 42; |
yield x++; |
} |
+ |
return expectList(f(), [42]); |
}); |
@@ -326,6 +386,7 @@ main() { |
var x = 41; |
yield ++x; |
} |
+ |
return expectList(f(), [42]); |
}); |
@@ -334,6 +395,7 @@ main() { |
var x = 37; |
yield x = 42; |
} |
+ |
return expectList(f(), [42]); |
}); |
@@ -342,6 +404,7 @@ main() { |
var x = 41; |
yield x += 1; |
} |
+ |
return expectList(f(), [42]); |
}); |
@@ -349,6 +412,7 @@ main() { |
f() async* { |
yield await new Future.value(42); |
} |
+ |
return expectList(f(), [42]); |
}); |
@@ -357,14 +421,18 @@ main() { |
var x = [42]; |
yield x[0]; |
} |
+ |
return expectList(f(), [42]); |
}); |
test("function expression block", () { |
var o = new Object(); |
f() async* { |
- yield () { return o; }; |
+ yield () { |
+ return o; |
+ }; |
} |
+ |
return f().first.then((v) { |
expect(v(), same(o)); |
}); |
@@ -375,6 +443,7 @@ main() { |
f() async* { |
yield () => o; |
} |
+ |
return f().first.then((v) { |
expect(v(), same(o)); |
}); |
@@ -383,8 +452,11 @@ main() { |
test("function expression block async", () { |
var o = new Object(); |
f() async* { |
- yield () async { return o; }; |
+ yield () async { |
+ return o; |
+ }; |
} |
+ |
return f().first.then((v) => v()).then((v) { |
expect(v, same(o)); |
}); |
@@ -395,6 +467,7 @@ main() { |
f() async* { |
yield () async => o; |
} |
+ |
return f().first.then((v) => v()).then((v) { |
expect(v, same(o)); |
}); |
@@ -403,8 +476,11 @@ main() { |
test("function expression block async*", () { |
var o = new Object(); |
f() async* { |
- yield () async* { yield o; }; |
+ yield () async* { |
+ yield o; |
+ }; |
} |
+ |
return f().first.then((v) => v().first).then((v) { |
expect(v, same(o)); |
}); |
@@ -418,6 +494,7 @@ main() { |
yield i; |
} |
} |
+ |
return expectList(f(), [0, 1, 2]); |
}); |
@@ -429,6 +506,7 @@ main() { |
} |
} |
} |
+ |
return expectList(f(), [0, 1, 2, 3, 4, 5]); |
}); |
@@ -443,6 +521,7 @@ main() { |
} |
} |
} |
+ |
return expectList(f(), [0, 1, 2]).whenComplete(() { |
expect(list, equals(["0", "1", "2"])); |
}); |
@@ -461,6 +540,7 @@ main() { |
} |
} |
} |
+ |
return expectList(f(), [0, 1, 2]).whenComplete(() { |
expect(list, equals(["0", "1", "2"])); |
}); |
@@ -479,6 +559,7 @@ main() { |
} |
} |
} |
+ |
return expectList(f(), [0, 1, 2]).whenComplete(() { |
expect(list, equals(["0", "1", "2"])); |
}); |
@@ -494,6 +575,7 @@ main() { |
} |
} |
} |
+ |
return expectList(f().take(3), [0, 1, 2]); |
}); |
}); |
@@ -513,9 +595,13 @@ main() { |
exits.complete(3); |
} |
} |
+ |
// No events must be fired synchronously in response to a listen. |
- var subscription = f().listen((v) { fail("Received event $v"); }, |
- onDone: () { fail("Received done"); }); |
+ var subscription = f().listen((v) { |
+ fail("Received event $v"); |
+ }, onDone: () { |
+ fail("Received done"); |
+ }); |
// No events must be delivered after a cancel. |
subscription.cancel(); |
return exits.future.then((v) { |
@@ -536,12 +622,13 @@ main() { |
exits.complete(i); |
} |
} |
+ |
return expectList(f().take(5), [0, 1, 2, 3, 4]) |
.then((_) => exits.future) |
.then((v) { |
- expect(v, greaterThan(4)); |
- expect(list, ["a"]); |
- }); |
+ expect(v, greaterThan(4)); |
+ expect(list, ["a"]); |
+ }); |
}); |
group("at index", () { |
@@ -556,6 +643,7 @@ main() { |
} |
} |
} |
+ |
test("- all, sanity check", () { |
return expectList(f(), [1, 2, 3]); |
}); |
@@ -587,6 +675,7 @@ main() { |
yield 4; |
list.add(5); |
} |
+ |
var done = new Completer(); |
var sub = f().listen((v) { |
if (v == 2) { |
@@ -612,6 +701,7 @@ main() { |
yield 4; |
list.add(5); |
} |
+ |
var done = new Completer(); |
var sub; |
sub = f().listen((v) { |
@@ -644,6 +734,7 @@ main() { |
i++; |
} |
} |
+ |
int expected = 0; |
var done = new Completer(); |
var sub; |
@@ -672,9 +763,10 @@ main() { |
test("simple stream", () { |
f(s) async { |
var r = 0; |
- await for(var v in s) r += v; |
+ await for (var v in s) r += v; |
return r; |
} |
+ |
return f(mkStream(5)).then((v) { |
expect(v, equals(10)); |
}); |
@@ -683,9 +775,10 @@ main() { |
test("simple stream, await", () { |
f(s) async { |
var r = 0; |
- await for(var v in s) r += await new Future.microtask(() => v); |
+ await for (var v in s) r += await new Future.microtask(() => v); |
return r; |
} |
+ |
return f(mkStream(5)).then((v) { |
expect(v, equals(10)); |
}); |
@@ -694,16 +787,18 @@ main() { |
test("simple stream reyield", () { |
f(s) async* { |
var r = 0; |
- await for(var v in s) yield r += v; |
+ await for (var v in s) yield r += v; |
} |
+ |
return expectList(f(mkStream(5)), [0, 1, 3, 6, 10]); |
}); |
test("simple stream, await, reyield", () { |
f(s) async* { |
var r = 0; |
- await for(var v in s) yield r += await new Future.microtask(() => v); |
+ await for (var v in s) yield r += await new Future.microtask(() => v); |
} |
+ |
return expectList(f(mkStream(5)), [0, 1, 3, 6, 10]); |
}); |
@@ -717,6 +812,7 @@ main() { |
} |
return r; |
} |
+ |
return f().then((v) { |
expect(v, equals((1 + 2 + 3 + 4) * (1 + 2))); |
}); |
@@ -732,6 +828,7 @@ main() { |
} |
return r; |
} |
+ |
return f().then((v) { |
expect(v, equals((1 + 2 + 3 + 4) * (1 + 2))); |
}); |
@@ -748,6 +845,7 @@ main() { |
} |
return r; |
} |
+ |
return f().then((v) { |
expect(v, equals((1 + 2 + 3 + 4) * (1 + 2))); |
}); |
@@ -773,10 +871,13 @@ expectList(stream, list) { |
const MS = const Duration(milliseconds: 1); |
-var getErrors = new StreamTransformer.fromHandlers( |
- handleData:(data, sink) { fail("Unexpected value"); }, |
- handleError: (e, s, sink) { sink.add(e); }, |
- handleDone: (sink) { sink.close(); }); |
+var getErrors = new StreamTransformer.fromHandlers(handleData: (data, sink) { |
+ fail("Unexpected value"); |
+}, handleError: (e, s, sink) { |
+ sink.add(e); |
+}, handleDone: (sink) { |
+ sink.close(); |
+}); |
class NotAStream { |
listen(oData, {onError, onDone, cancelOnError}) { |