// 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:test_runner/src/configuration.dart'; import 'package:test_runner/src/testing_servers.dart'; import 'package:test_runner/src/utils.dart'; import 'package:test_runner/src/vendored_pkg/args/args.dart'; void main(List 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.getUsage()); } 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}'); }); } }