d9eae90196
Review URL: https://chromiumcodereview.appspot.com//10244009 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7096 260f80e4-7a28-3924-810f-c04153c831b5
45 lines
1.2 KiB
Dart
45 lines
1.2 KiB
Dart
// Copyright (c) 2011, 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("FuturesTest");
|
|
#import("dart:isolate");
|
|
|
|
Future testWaitEmpty() {
|
|
List<Future> futures = new List<Future>();
|
|
return Futures.wait(futures);
|
|
}
|
|
|
|
Future testCompleteAfterWait() {
|
|
List<Future> futures = new List<Future>();
|
|
Completer<Object> c = new Completer<Object>();
|
|
futures.add(c.future);
|
|
Future future = Futures.wait(futures);
|
|
c.complete(null);
|
|
return future;
|
|
}
|
|
|
|
Future testCompleteBeforeWait() {
|
|
List<Future> futures = new List<Future>();
|
|
Completer c = new Completer();
|
|
futures.add(c.future);
|
|
c.complete(null);
|
|
return Futures.wait(futures);
|
|
}
|
|
|
|
main() {
|
|
List<Future> futures = new List<Future>();
|
|
|
|
futures.add(testWaitEmpty());
|
|
futures.add(testCompleteAfterWait());
|
|
futures.add(testCompleteBeforeWait());
|
|
|
|
// Use a receive port for blocking the test.
|
|
// Note that if the test fails, the program will not end.
|
|
ReceivePort port = new ReceivePort();
|
|
Futures.wait(futures).then((List list) {
|
|
Expect.equals(3, list.length);
|
|
port.close();
|
|
});
|
|
}
|