Index: runtime/observatory/tests/service/test_helper.dart |
diff --git a/runtime/observatory/tests/service/test_helper.dart b/runtime/observatory/tests/service/test_helper.dart |
index 53520c443187ced1eb7e3ab8e7109bdc86e84c42..0ec5345bda01ea50eaff98a4d5b17d699e131373 100644 |
--- a/runtime/observatory/tests/service/test_helper.dart |
+++ b/runtime/observatory/tests/service/test_helper.dart |
@@ -237,6 +237,29 @@ Future<Isolate> resumeIsolate(Isolate isolate) { |
} |
+Future streamEvent(Isolate isolate, stream, onEvent) async { |
+ Completer completer = new Completer(); |
+ var sub; |
+ sub = await isolate.vm.listenEventStream( |
+ stream, |
+ (ServiceEvent event) { |
+ var r = onEvent(event); |
+ if (r is! Future) { |
+ r = new Future.value(r); |
+ } |
+ r.then((x) => sub.cancel().then((_) { |
+ completer.complete(); |
+ })); |
+ }); |
+ await isolate.resume(); |
+ return completer.future; |
+} |
+ |
+IsolateTest isolateStreamEvent(stream, onEvent) { |
rmacnak
2015/07/21 00:20:15
This name doesn't suggest it resumes the isolate.
Cutch
2015/07/21 14:51:44
Done.
|
+ return (Isolate isolate) async => streamEvent(isolate, stream, onEvent); |
+} |
+ |
+ |
Future<Class> getClassFromRootLib(Isolate isolate, String className) async { |
Library rootLib = await isolate.rootLibrary.load(); |
for (var i = 0; i < rootLib.classes.length; i++) { |