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

Unified Diff: pkg/scheduled_test/lib/scheduled_test.dart

Issue 227193002: pkg/scheduled_test: handle null currentSchedule due to timeout (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: nits Created 6 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 side-by-side diff with in-line comments
Download patch
Index: pkg/scheduled_test/lib/scheduled_test.dart
diff --git a/pkg/scheduled_test/lib/scheduled_test.dart b/pkg/scheduled_test/lib/scheduled_test.dart
index 9d7897a62dec03fa103ff9779108c4971b206b46..720f2607269ef6eb1bd5087ed0bd8aee2f368f8a 100644
--- a/pkg/scheduled_test/lib/scheduled_test.dart
+++ b/pkg/scheduled_test/lib/scheduled_test.dart
@@ -245,8 +245,13 @@ void _test(String description, body(), Function testFn) {
testFn(description, () {
var completer = new Completer();
+ // Capture this in a local variable in case we capture an out-of-band error
+ // after the schedule completes.
+ var errorHandler;
+
Chain.capture(() {
_currentSchedule = new Schedule();
+ errorHandler = _currentSchedule.signalError;
return currentSchedule.run(() {
if (_setUpFn != null) maybeWrapFuture(_setUpFn(), "set up");
maybeWrapFuture(body(), "test body");
@@ -259,7 +264,7 @@ void _test(String description, body(), Function testFn) {
unittest.registerException(error, new Chain.forTrace(stackTrace));
}
}).then(completer.complete);
- }, onError: (error, chain) => currentSchedule.signalError(error, chain));
+ }, onError: (error, stackTrace) => errorHandler(error, stackTrace));
return completer.future;
});

Powered by Google App Engine
This is Rietveld 408576698