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

Unified Diff: lib/src/isolate_wrapper.dart

Issue 941123002: Get all tests running via the test runner. (Closed) Base URL: git@github.com:dart-lang/unittest@master
Patch Set: Created 5 years, 10 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
« no previous file with comments | « lib/src/dart.dart ('k') | test/invoker_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/isolate_wrapper.dart
diff --git a/lib/src/isolate_wrapper.dart b/lib/src/isolate_wrapper.dart
new file mode 100644
index 0000000000000000000000000000000000000000..f9963210d34e997ee7644f2686dd3a0bb67a8706
--- /dev/null
+++ b/lib/src/isolate_wrapper.dart
@@ -0,0 +1,44 @@
+// Copyright (c) 2015, 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 unittest.isolate_wrapper;
+
+import 'dart:isolate';
+
+// TODO(nweiz): Get rid of this when issue 6610 is fixed.
+/// This is a wrapper around an [Isolate] that supports a callback that will
+/// fire when [Isolate.exit] is called.
+///
+/// This is necessary to delete the source directory of the isolate only once
+/// the Isolate completes. Note that the callback won't necessarily fire before
+/// the Isolate is killed, but it comes close enough for our purposes.
+class IsolateWrapper implements Isolate {
+ final Isolate _inner;
+
+ final Function _onExit;
+
+ SendPort get controlPort => _inner.controlPort;
+ Stream get errors => _inner.errors;
+ Capability get terminateCapability => _inner.terminateCapability;
+
+ IsolateWrapper(this._inner, this._onExit);
+
+ void addErrorListener(SendPort port) => _inner.addErrorListener(port);
+ void addOnExitListener(SendPort port) => _inner.addOnExitListener(port);
+ Capability pause([Capability resumeCapability]) =>
+ _inner.pause(resumeCapability);
+ void ping(SendPort responsePort, [int pingType=Isolate.IMMEDIATE]) =>
+ _inner.ping(responsePort, pingType);
+ void removeErrorListener(SendPort port) => _inner.removeErrorListener(port);
+ void removeOnExitListener(SendPort port) => _inner.removeOnExitListener(port);
+ void resume(Capability resumeCapability) => _inner.resume(resumeCapability);
+ void setErrorsFatal(bool errorsAreFatal) =>
+ _inner.setErrorsFatal(errorsAreFatal);
+ String toString() => _inner.toString();
+
+ void kill([int priority=Isolate.BEFORE_NEXT_EVENT]) {
+ _inner.kill(priority);
+ _onExit();
+ }
+}
« no previous file with comments | « lib/src/dart.dart ('k') | test/invoker_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698