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

Unified Diff: tests/isolate/message_stream_test.dart

Issue 12919011: Remove streamSpawnUri and mangler. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebase Created 7 years, 9 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
Index: tests/isolate/message_stream_test.dart
diff --git a/tests/isolate/message_test.dart b/tests/isolate/message_stream_test.dart
similarity index 64%
copy from tests/isolate/message_test.dart
copy to tests/isolate/message_stream_test.dart
index ee00de52c56e8e72d252e5bc637f1a27f67e31fe..bfd7d4c011a2289f5e6c7918bd4530e1108412d6 100644
--- a/tests/isolate/message_test.dart
+++ b/tests/isolate/message_stream_test.dart
@@ -65,35 +65,41 @@ class MessageTest {
pingPong() {
int count = 0;
- port.receive((var message, SendPort replyTo) {
- if (message == -1) {
- port.close();
- replyTo.send(count, null);
- } else {
- // Check if the received object is correct.
- if (count < MessageTest.elms.length) {
- MessageTest.VerifyObject(count, message);
- }
- // Bounce the received object back so that the sender
- // can make sure that the object matches.
- replyTo.send(message, null);
- count++;
+ bool isFirst = true;
+ IsolateSink replyTo;
+ stream.listen((var message) {
+ if (isFirst) {
+ isFirst = false;
+ replyTo = message;
+ return;
+ }
+ // Check if the received object is correct.
+ if (count < MessageTest.elms.length) {
+ MessageTest.VerifyObject(count, message);
}
+ // Bounce the received object back so that the sender
+ // can make sure that the object matches.
+ replyTo.add(message);
+ count++;
+ }, onDone: () {
+ replyTo.add(count);
+ replyTo.close();
});
}
main() {
test("send objects and receive them back", () {
- SendPort remote = spawnFunction(pingPong);
+ IsolateSink remote = streamSpawnFunction(pingPong);
+ MessageBox box = new MessageBox();
+ remote.add(box.sink);
+
// Send objects and receive them back.
for (int i = 0; i < MessageTest.elms.length; i++) {
var sentObject = MessageTest.elms[i];
// TODO(asiva): remove this local var idx once thew new for-loop
// semantics for closures is implemented.
var idx = i;
- remote.call(sentObject).then(expectAsync1((var receivedObject) {
- MessageTest.VerifyObject(idx, receivedObject);
- }));
+ remote.add(sentObject);
}
// Send recursive objects and receive them back.
@@ -106,23 +112,33 @@ main() {
sendObject[2] = local_list2;
sendObject[3] = sendObject;
sendObject[4] = local_list3;
- remote.call(sendObject).then((var replyObject) {
- expect(sendObject, isList);
- expect(replyObject, isList);
- expect(sendObject.length, equals(replyObject.length));
- expect(replyObject[1], same(replyObject));
- expect(replyObject[3], same(replyObject));
- expect(replyObject[0], same(replyObject[2][1]));
- expect(replyObject[0], same(replyObject[2][2]));
- expect(replyObject[2], same(replyObject[4][0]));
- expect(replyObject[0][0], same(replyObject[0][2]));
- // Bigint literals are not canonicalized so do a == check.
- expect(replyObject[0][3], equals(replyObject[4][4]));
- });
+ remote.add(sendObject);
// Shutdown the MessageServer.
- remote.call(-1).then(expectAsync1((int message) {
+ remote.close();
+
+ int receivedCounter = 0;
+ box.stream.listen((message) {
+ if (receivedCounter < MessageTest.elms.length) {
+ MessageTest.VerifyObject(receivedCounter, message);
+ } else if (receivedCounter == MessageTest.elms.length) {
+ var replyObject = message;
+ expect(sendObject, isList);
+ expect(replyObject, isList);
+ expect(sendObject.length, equals(replyObject.length));
+ expect(replyObject[1], same(replyObject));
+ expect(replyObject[3], same(replyObject));
+ expect(replyObject[0], same(replyObject[2][1]));
+ expect(replyObject[0], same(replyObject[2][2]));
+ expect(replyObject[2], same(replyObject[4][0]));
+ expect(replyObject[0][0], same(replyObject[0][2]));
+ // Bigint literals are not canonicalized so do a == check.
+ expect(replyObject[0][3], equals(replyObject[4][4]));
+ } else {
+ // Reply from done.
expect(message, MessageTest.elms.length + 1);
- }));
+ }
+ receivedCounter++;
+ });
});
}

Powered by Google App Engine
This is Rietveld 408576698