| // 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. |
| |
| import 'package:args/args.dart'; |
| import 'package:test_runner/src/configuration.dart'; |
| import 'package:test_runner/src/testing_servers.dart'; |
| import 'package:test_runner/src/utils.dart'; |
| |
| void main(List<String> arguments) { |
| var parser = ArgParser(); |
| parser.addOption( |
| 'port', |
| abbr: 'p', |
| help: 'The main server port we wish to respond to requests.', |
| defaultsTo: '0', |
| ); |
| parser.addOption( |
| 'crossOriginPort', |
| abbr: 'c', |
| help: 'A different port that accepts request from the main server port.', |
| defaultsTo: '0', |
| ); |
| parser.addFlag( |
| 'help', |
| abbr: 'h', |
| negatable: false, |
| help: 'Print this usage information.', |
| ); |
| parser.addOption('build-directory', help: 'The build directory to use.'); |
| parser.addOption('packages', help: 'The package spec file to use.'); |
| parser.addOption( |
| 'network', |
| help: 'The network interface to use.', |
| defaultsTo: '0.0.0.0', |
| ); |
| parser.addFlag( |
| 'csp', |
| help: 'Use Content Security Policy restrictions.', |
| defaultsTo: false, |
| ); |
| parser.addOption( |
| 'runtime', |
| help: 'The runtime we are using (for csp flags).', |
| defaultsTo: 'none', |
| ); |
| |
| var args = parser.parse(arguments); |
| if (args['help'] as bool) { |
| print(parser.usage); |
| } else { |
| var servers = TestingServers( |
| args['build-directory'] as String, |
| args['csp'] as bool, |
| Runtime.find(args['runtime'] as String), |
| null, |
| args['packages'] as String?, |
| ); |
| var port = int.parse(args['port'] as String); |
| var crossOriginPort = int.parse(args['crossOriginPort'] as String); |
| servers |
| .startServers( |
| args['network'] as String, |
| port: port, |
| crossOriginPort: crossOriginPort, |
| ) |
| .then((_) { |
| DebugLogger.info('Server listening on port ${servers.port}'); |
| DebugLogger.info( |
| 'Server listening on port ${servers.crossOriginPort}', |
| ); |
| }); |
| } |
| } |