Chromium Code Reviews| Index: tools/test.dart |
| diff --git a/tools/test.dart b/tools/test.dart |
| index dbd5ba87a4d359869b1e07900269ab0798fa45d5..6b1cb591d8ab9e3da9b066ad1d8dcd170c50aba8 100755 |
| --- a/tools/test.dart |
| +++ b/tools/test.dart |
| @@ -1,5 +1,5 @@ |
| #!/usr/bin/env dart |
| -// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| +// 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. |
| @@ -71,7 +71,7 @@ final TEST_SUITE_DIRECTORIES = [ |
| ]; |
| main() { |
| - var startTime = new Date.now(); |
| + var startTime = new DateTime.now(); |
| var optionsParser = new TestOptionsParser(); |
| List<Map> configurations = optionsParser.parse(new Options().arguments); |
| if (configurations == null || configurations.length == 0) return; |
| @@ -105,7 +105,7 @@ main() { |
| ['Test configurations:'] : ['Test configuration:']; |
| for (Map conf in configurations) { |
| List settings = ['compiler', 'runtime', 'mode', 'arch'] |
| - .mappedBy((name) => conf[name]).toList(); |
| + .map((name) => conf[name]).toList(); |
| if (conf['checked']) settings.add('checked'); |
| output_words.add(settings.join('_')); |
| } |
| @@ -116,6 +116,7 @@ main() { |
| return TestUtils.isBrowserRuntime(config['runtime']); |
| }); |
| + List<TestingServers> servers = []; |
|
kustermann
2013/03/13 13:37:56
Why not make it a "List<Future> serverFutures", st
Søren Gjesse
2013/03/13 15:17:18
Done.
|
| var testSuites = new List<TestSuite>(); |
| var maxBrowserProcesses = maxProcesses; |
| for (var conf in configurations) { |
| @@ -124,10 +125,9 @@ main() { |
| // The http server is available on window.location.port, and a second |
| // server for cross-domain tests can be found by calling |
| // getCrossOriginPortNumber(). |
| - var servers = new TestingServers(new Path(TestUtils.buildDir(conf)), |
| - useContentSecurityPolicy); |
| - servers.startServers('127.0.0.1'); |
| - conf['_servers_'] = servers; |
| + servers.add(new TestingServers(new Path(TestUtils.buildDir(conf)), |
| + useContentSecurityPolicy)); |
| + conf['_servers_'] = servers.last; |
| } |
| // There should not be more than one InternetExplorerDriver instance |
| @@ -203,13 +203,29 @@ main() { |
| } |
| eventListener.add(new ExitCodeSetter()); |
| - // Start process queue. |
| - new ProcessQueue(maxProcesses, |
| - maxBrowserProcesses, |
| - startTime, |
| - testSuites, |
| - eventListener, |
| - allTestsFinished, |
| - verbose, |
| - listTests); |
| + void startProcessQueue() { |
| + // Start process queue. |
| + new ProcessQueue(maxProcesses, |
| + maxBrowserProcesses, |
| + startTime, |
| + testSuites, |
| + eventListener, |
| + allTestsFinished, |
| + verbose, |
| + listTests); |
| + } |
| + |
| + void startTesting(List<TestingServers> servers) { |
| + // Start all the HTTP servers required before starting the process queue. |
| + if (servers.isEmpty) { |
| + startProcessQueue(); |
| + } else { |
| + TestingServers server = servers.removeLast(); |
| + server.startServers('127.0.0.1').then((_) { |
| + startTesting(servers); |
| + }); |
| + } |
| + } |
| + |
| + startTesting(servers); |
| } |