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

Unified Diff: runtime/observatory/test/test_helper.dart

Issue 1071363002: Relocate service library tests and hookup a working status file (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 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: runtime/observatory/test/test_helper.dart
diff --git a/runtime/observatory/test/test_helper.dart b/runtime/observatory/test/test_helper.dart
deleted file mode 100644
index 666c9c338a645b2b12e3118a8e0075d640e0e2e3..0000000000000000000000000000000000000000
--- a/runtime/observatory/test/test_helper.dart
+++ /dev/null
@@ -1,167 +0,0 @@
-// Copyright (c) 2013, 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.
-// VMOptions=--compile-all --error_on_bad_type --error_on_bad_override --checked
-
-library test_helper;
-
-import 'dart:async';
-import 'dart:convert';
-import 'dart:io';
-import 'package:observatory/service_io.dart';
-
-// This invocation should set up the state being tested.
-const String _TESTEE_MODE_FLAG = "--testee-mode";
-
-class _TestLauncher {
- Process process;
- final List<String> args;
-
- _TestLauncher() : args = ['--enable-vm-service:0',
- Platform.script.toFilePath(),
- _TESTEE_MODE_FLAG] {}
-
- Future<int> launch(bool pause_on_exit) {
- String dartExecutable = Platform.executable;
- var fullArgs = [];
- if (pause_on_exit == true) {
- fullArgs.add('--pause-isolates-on-exit');
- }
- fullArgs.addAll(Platform.executableArguments);
- fullArgs.addAll(args);
- print('** Launching $dartExecutable ${fullArgs.join(' ')}');
- return Process.start(dartExecutable, fullArgs).then((p) {
-
- Completer completer = new Completer();
- process = p;
- var portNumber;
- var blank;
- var first = true;
- process.stdout.transform(UTF8.decoder)
- .transform(new LineSplitter()).listen((line) {
- if (line.startsWith('Observatory listening on http://')) {
- RegExp portExp = new RegExp(r"\d+.\d+.\d+.\d+:(\d+)");
- var port = portExp.firstMatch(line).group(1);
- portNumber = int.parse(port);
- }
- if (line == '') {
- // Received blank line.
- blank = true;
- }
- if (portNumber != null && blank == true && first == true) {
- completer.complete(portNumber);
- // Stop repeat completions.
- first = false;
- print('** Signaled to run test queries on $portNumber');
- }
- print(line);
- });
- process.stderr.transform(UTF8.decoder)
- .transform(new LineSplitter()).listen((line) {
- print(line);
- });
- process.exitCode.then((exitCode) {
- print("** Process exited");
- });
- return completer.future;
- });
- }
-
- void requestExit() {
- print('** Killing script');
- process.kill();
- }
-}
-
-typedef Future IsolateTest(Isolate isolate);
-typedef Future VMTest(VM vm);
-
-/// Runs [tests] in sequence, each of which should take an [Isolate] and
-/// return a [Future]. Code for setting up state can run before and/or
-/// concurrently with the tests. Uses [mainArgs] to determine whether
-/// to run tests or testee in this invokation of the script.
-void runIsolateTests(List<String> mainArgs,
- List<IsolateTest> tests,
- {void testeeBefore(),
- void testeeConcurrent(),
- bool pause_on_exit}) {
- if (mainArgs.contains(_TESTEE_MODE_FLAG)) {
- if (testeeBefore != null) {
- testeeBefore();
- }
- print(''); // Print blank line to signal that we are ready.
- if (testeeConcurrent != null) {
- testeeConcurrent();
- }
- // Wait around for the process to be killed.
- stdin.first.then((_) => exit(0));
- } else {
- var process = new _TestLauncher();
- process.launch(pause_on_exit).then((port) {
- String addr = 'ws://localhost:$port/ws';
- var testIndex = 0;
- var totalTests = tests.length - 1;
- var name = Platform.script.pathSegments.last;
- new WebSocketVM(new WebSocketVMTarget(addr)).load()
- .then((VM vm) => vm.isolates.first.load())
- .then((Isolate isolate) => Future.forEach(tests, (test) {
- print('Running $name [$testIndex/$totalTests]');
- testIndex++;
- return test(isolate);
- })).then((_) => process.requestExit());
- });
- }
-}
-
-
-// Cancel the subscription and complete the completer when finished processing
-// events.
-typedef void ServiceEventHandler(ServiceEvent event,
- StreamSubscription subscription,
- Completer completer);
-
-Future processServiceEvents(VM vm, ServiceEventHandler handler) {
- Completer completer = new Completer();
- var subscription;
- subscription = vm.events.stream.listen((ServiceEvent event) {
- handler(event, subscription, completer);
- });
- return completer.future;
-}
-
-
-/// Runs [tests] in sequence, each of which should take an [Isolate] and
-/// return a [Future]. Code for setting up state can run before and/or
-/// concurrently with the tests. Uses [mainArgs] to determine whether
-/// to run tests or testee in this invokation of the script.
-Future runVMTests(List<String> mainArgs,
- List<VMTest> tests,
- {Future testeeBefore(),
- Future testeeConcurrent(),
- bool pause_on_exit}) async {
- if (mainArgs.contains(_TESTEE_MODE_FLAG)) {
- if (testeeBefore != null) {
- await testeeBefore();
- }
- print(''); // Print blank line to signal that we are ready.
- if (testeeConcurrent != null) {
- await testeeConcurrent();
- }
- // Wait around for the process to be killed.
- stdin.first.then((_) => exit(0));
- } else {
- var process = new _TestLauncher();
- process.launch(pause_on_exit).then((port) async {
- String addr = 'ws://localhost:$port/ws';
- var testIndex = 0;
- var totalTests = tests.length - 1;
- var name = Platform.script.pathSegments.last;
- new WebSocketVM(new WebSocketVMTarget(addr)).load()
- .then((VM vm) => Future.forEach(tests, (test) {
- print('Running $name [$testIndex/$totalTests]');
- testIndex++;
- return test(vm);
- })).then((_) => process.requestExit());
- });
- }
-}
« no previous file with comments | « runtime/observatory/test/string_escaping_test.dart ('k') | runtime/observatory/test/type_arguments_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698