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

Side by Side Diff: tests/isolate/src/CountTest.dart

Issue 10153005: unittest step 3 and 4: remove TestFramework.dart, make test.dart use (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #library("CountTest"); 5 #library("CountTest");
6 #import('dart:isolate'); 6 #import('dart:isolate');
7 #import("TestFramework.dart"); 7 #import('../../../lib/unittest/unittest.dart');
8 8
9 class TestIsolate extends Isolate { 9 class TestIsolate extends Isolate {
10 10
11 TestIsolate() : super(); 11 TestIsolate() : super();
12 12
13 void main() { 13 void main() {
14 int count = 0; 14 int count = 0;
15 this.port.receive((int message, SendPort replyTo) { 15 this.port.receive((int message, SendPort replyTo) {
16 if (message == -1) { 16 if (message == -1) {
17 Expect.equals(10, count); 17 Expect.equals(10, count);
18 replyTo.send(-1, null); 18 replyTo.send(-1, null);
19 this.port.close(); 19 this.port.close();
20 return; 20 return;
21 } 21 }
22 22
23 Expect.equals(count, message); 23 Expect.equals(count, message);
24 count++; 24 count++;
25 replyTo.send(message * 2, null); 25 replyTo.send(message * 2, null);
26 }); 26 });
27 } 27 }
28 } 28 }
29 29
30 void test(TestExpectation expect) { 30 void main() {
31 int count = 0; 31 test("count 10 consecutive messages", () {
32 expect.completes(new TestIsolate().spawn()).then((SendPort remote) { 32 int count = 0;
33 ReceivePort local = new ReceivePort(); 33 new TestIsolate().spawn().then(later1((SendPort remote) {
34 SendPort reply = local.toSendPort(); 34 ReceivePort local = new ReceivePort();
35 SendPort reply = local.toSendPort();
35 36
36 local.receive(expect.runs2((int message, SendPort replyTo) { 37 Function done = later0(() {});
Siggi Cherem (dart-lang) 2012/04/20 00:58:23 this is called more than once, so 'later2' is not
Bob Nystrom 2012/04/20 22:31:36 This is hackish. Either our API should support thi
Siggi Cherem (dart-lang) 2012/04/21 00:03:43 How about these names? - calledOnce(f): replacing
37 if (message == -1) { 38 local.receive((int message, SendPort replyTo) {
38 Expect.equals(11, count); 39 if (message == -1) {
39 local.close(); 40 Expect.equals(11, count);
40 expect.succeeded(); 41 local.close();
41 return; 42 done();
42 } 43 return;
44 }
43 45
44 Expect.equals((count - 1) * 2, message); 46 Expect.equals((count - 1) * 2, message);
47 remote.send(count++, reply);
48 if (count == 10) {
49 remote.send(-1, reply);
50 }
51 });
45 remote.send(count++, reply); 52 remote.send(count++, reply);
46 if (count == 10) {
47 remote.send(-1, reply);
48 }
49 })); 53 }));
50 remote.send(count++, reply);
51 }); 54 });
52 } 55 }
53
54 void main() {
55 runTests([test]);
56 }
57
58
59
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698