Stop working around dart-lang/sdk#23497.
R=kevmoo@google.com
Review URL: https://codereview.chromium.org//1660093002 .
diff --git a/lib/src/backend/declarer.dart b/lib/src/backend/declarer.dart
index 5c59eac..72e4d31 100644
--- a/lib/src/backend/declarer.dart
+++ b/lib/src/backend/declarer.dart
@@ -78,16 +78,16 @@
testOn: testOn, timeout: timeout, skip: skip, onPlatform: onPlatform,
tags: tags));
- _entries.add(new LocalTest(_prefix(name), metadata, () {
+ _entries.add(new LocalTest(_prefix(name), metadata, () async {
// TODO(nweiz): It might be useful to throw an error here if a test starts
// running while other tests from the same declarer are also running,
// since they might share closurized state.
- // TODO(nweiz): Use async/await here once issue 23497 has been fixed in
- // two stable versions.
- return Invoker.current.waitForOutstandingCallbacks(() {
- return _runSetUps().then((_) => body());
- }).then((_) => _runTearDowns());
+ await Invoker.current.waitForOutstandingCallbacks(() async {
+ await _runSetUps();
+ await body();
+ });
+ await _runTearDowns();
}));
}
@@ -161,16 +161,9 @@
///
/// If no set-up functions are declared, this returns a [Future] that
/// completes immediately.
- Future _runSetUps() {
- // TODO(nweiz): Use async/await here once issue 23497 has been fixed in two
- // stable versions.
- if (_parent != null) {
- return _parent._runSetUps().then((_) {
- return Future.forEach(_setUps, (setUp) => setUp());
- });
- }
-
- return Future.forEach(_setUps, (setUp) => setUp());
+ Future _runSetUps() async {
+ if (_parent != null) await _parent._runSetUps();
+ await Future.forEach(_setUps, (setUp) => setUp());
}
/// Run the tear-up functions for this and any parent groups.
diff --git a/lib/src/backend/invoker.dart b/lib/src/backend/invoker.dart
index 8ff860e..9644d84 100644
--- a/lib/src/backend/invoker.dart
+++ b/lib/src/backend/invoker.dart
@@ -178,12 +178,11 @@
var zone;
var counter = new OutstandingCallbackCounter();
runZoned(() {
- // TODO(nweiz): Use async/await here once issue 23497 has been fixed in
- // two stable versions.
- runZoned(() {
+ runZoned(() async {
zone = Zone.current;
_outstandingCallbackZones.add(zone);
- new Future.sync(fn).then((_) => counter.removeOutstandingCallback());
+ await fn();
+ counter.removeOutstandingCallback();
}, onError: _handleError);
}, zoneValues: {
_counterKey: counter
@@ -260,10 +259,8 @@
var outstandingCallbacksForBody = new OutstandingCallbackCounter();
- // TODO(nweiz): Use async/await here once issue 23497 has been fixed in two
- // stable versions.
Chain.capture(() {
- runZonedWithValues(() {
+ runZonedWithValues(() async {
_invokerZone = Zone.current;
_outstandingCallbackZones.add(Zone.current);
@@ -276,15 +273,15 @@
new Future(_test._body)
.then((_) => removeOutstandingCallback());
- _outstandingCallbacks.noOutstandingCallbacks.then((_) {
- if (_timeoutTimer != null) _timeoutTimer.cancel();
- _controller.setState(
- new State(Status.complete, liveTest.state.result));
+ await _outstandingCallbacks.noOutstandingCallbacks;
+ if (_timeoutTimer != null) _timeoutTimer.cancel();
- // Use [Timer.run] here to avoid starving the DOM or other
- // non-microtask events.
- Timer.run(_controller.completer.complete);
- });
+ _controller.setState(
+ new State(Status.complete, liveTest.state.result));
+
+ // Use [Timer.run] here to avoid starving the DOM or other
+ // non-microtask events.
+ Timer.run(_controller.completer.complete);
}, zoneValues: {
#test.invoker: this,
// Use the invoker as a key so that multiple invokers can have different
diff --git a/pubspec.yaml b/pubspec.yaml
index 94f8a65..23ac55e 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -4,7 +4,7 @@
description: A library for writing dart unit tests.
homepage: https://github.com/dart-lang/test
environment:
- sdk: '>=1.11.0 <1.16.0'
+ sdk: '>=1.13.0 <1.16.0'
dependencies:
analyzer: '>=0.23.0 <0.28.0'
args: '>=0.12.1 <0.14.0'