| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library service_test_common; | 5 library service_test_common; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:io' show File, Platform; | 8 import 'dart:io' show Platform; |
| 9 | |
| 10 import 'package:observatory/models.dart' as M; | 9 import 'package:observatory/models.dart' as M; |
| 11 import 'package:observatory/service_common.dart'; | 10 import 'package:observatory/service_common.dart'; |
| 12 import 'package:unittest/unittest.dart'; | 11 import 'package:unittest/unittest.dart'; |
| 13 | 12 |
| 14 typedef Future IsolateTest(Isolate isolate); | 13 typedef Future IsolateTest(Isolate isolate); |
| 15 typedef Future VMTest(VM vm); | 14 typedef Future VMTest(VM vm); |
| 16 | 15 |
| 17 Map<String, StreamSubscription> streamSubscriptions = {}; | 16 Map<String, StreamSubscription> streamSubscriptions = {}; |
| 18 | 17 |
| 19 class ScriptLineParser { | |
| 20 List<String> lines; | |
| 21 | |
| 22 ScriptLineParser(Uri scriptUri) { | |
| 23 String content = new File(scriptUri.toFilePath()).readAsStringSync(); | |
| 24 lines = content.split('\n'); | |
| 25 } | |
| 26 | |
| 27 int lineFor(String commentContent) { | |
| 28 String match1 = '// $commentContent'; | |
| 29 String match2 = '/* $commentContent */'; | |
| 30 | |
| 31 for (int i = 0; i < lines.length; i++) { | |
| 32 if (lines[i].contains(match1) || lines[i].contains(match2)) { | |
| 33 // return the 1-based line number | |
| 34 return i + 1; | |
| 35 } | |
| 36 } | |
| 37 | |
| 38 return -1; | |
| 39 } | |
| 40 } | |
| 41 | |
| 42 Future subscribeToStream(VM vm, String streamName, onEvent) async { | 18 Future subscribeToStream(VM vm, String streamName, onEvent) async { |
| 43 assert(streamSubscriptions[streamName] == null); | 19 assert(streamSubscriptions[streamName] == null); |
| 44 | 20 |
| 45 Stream stream = await vm.getEventStream(streamName); | 21 Stream stream = await vm.getEventStream(streamName); |
| 46 StreamSubscription subscription = stream.listen(onEvent); | 22 StreamSubscription subscription = stream.listen(onEvent); |
| 47 streamSubscriptions[streamName] = subscription; | 23 streamSubscriptions[streamName] = subscription; |
| 48 } | 24 } |
| 49 | 25 |
| 50 Future cancelStreamSubscription(String streamName) async { | 26 Future cancelStreamSubscription(String streamName) async { |
| 51 StreamSubscription subscription = streamSubscriptions[streamName]; | 27 StreamSubscription subscription = streamSubscriptions[streamName]; |
| (...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 549 if (!isKernel()) { | 525 if (!isKernel()) { |
| 550 nonKernelFunction(); | 526 nonKernelFunction(); |
| 551 } | 527 } |
| 552 } | 528 } |
| 553 | 529 |
| 554 void kernelExecute(Function kernelFunction) { | 530 void kernelExecute(Function kernelFunction) { |
| 555 if (isKernel()) { | 531 if (isKernel()) { |
| 556 kernelFunction(); | 532 kernelFunction(); |
| 557 } | 533 } |
| 558 } | 534 } |
| OLD | NEW |