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 import 'dart:io'; | 5 import 'dart:io'; |
6 | 6 |
7 import 'package:args/args.dart'; | 7 import 'package:args/args.dart'; |
8 import 'package:boolean_selector/boolean_selector.dart'; | 8 import 'package:boolean_selector/boolean_selector.dart'; |
9 | 9 |
10 import '../../backend/test_platform.dart'; | 10 import '../../backend/test_platform.dart'; |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 allowMultiple: true); | 53 allowMultiple: true); |
54 parser.addOption("exclude-tag", hide: true, allowMultiple: true); | 54 parser.addOption("exclude-tag", hide: true, allowMultiple: true); |
55 | 55 |
56 parser.addSeparator("======== Running Tests"); | 56 parser.addSeparator("======== Running Tests"); |
57 parser.addOption("platform", | 57 parser.addOption("platform", |
58 abbr: 'p', | 58 abbr: 'p', |
59 help: 'The platform(s) on which to run the tests.', | 59 help: 'The platform(s) on which to run the tests.', |
60 defaultsTo: 'vm', | 60 defaultsTo: 'vm', |
61 allowed: allPlatforms.map((platform) => platform.identifier).toList(), | 61 allowed: allPlatforms.map((platform) => platform.identifier).toList(), |
62 allowMultiple: true); | 62 allowMultiple: true); |
| 63 parser.addOption("preset", |
| 64 abbr: 'P', |
| 65 help: 'The configuration preset(s) to use.', |
| 66 allowMultiple: true); |
63 parser.addOption("concurrency", | 67 parser.addOption("concurrency", |
64 abbr: 'j', | 68 abbr: 'j', |
65 help: 'The number of concurrent test suites run.', | 69 help: 'The number of concurrent test suites run.', |
66 defaultsTo: defaultConcurrency.toString(), | 70 defaultsTo: defaultConcurrency.toString(), |
67 valueHelp: 'threads'); | 71 valueHelp: 'threads'); |
68 parser.addOption("pub-serve", | 72 parser.addOption("pub-serve", |
69 help: 'The port of a pub serve instance serving "test/".', | 73 help: 'The port of a pub serve instance serving "test/".', |
70 valueHelp: 'port'); | 74 valueHelp: 'port'); |
71 parser.addOption("timeout", | 75 parser.addOption("timeout", |
72 help: 'The default test timeout. For example: 15s, 2x, none', | 76 help: 'The default test timeout. For example: 15s, 2x, none', |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 pauseAfterLoad: ifParsed('pause-after-load'), | 153 pauseAfterLoad: ifParsed('pause-after-load'), |
150 color: ifParsed('color'), | 154 color: ifParsed('color'), |
151 packageRoot: ifParsed('package-root'), | 155 packageRoot: ifParsed('package-root'), |
152 reporter: ifParsed('reporter'), | 156 reporter: ifParsed('reporter'), |
153 pubServePort: _wrapFormatException(options, 'pub-serve', int.parse), | 157 pubServePort: _wrapFormatException(options, 'pub-serve', int.parse), |
154 concurrency: _wrapFormatException(options, 'concurrency', int.parse), | 158 concurrency: _wrapFormatException(options, 'concurrency', int.parse), |
155 timeout: _wrapFormatException(options, 'timeout', | 159 timeout: _wrapFormatException(options, 'timeout', |
156 (value) => new Timeout.parse(value)), | 160 (value) => new Timeout.parse(value)), |
157 pattern: pattern, | 161 pattern: pattern, |
158 platforms: ifParsed('platform')?.map(TestPlatform.find), | 162 platforms: ifParsed('platform')?.map(TestPlatform.find), |
| 163 chosenPresets: ifParsed('preset'), |
159 paths: options.rest.isEmpty ? null : options.rest, | 164 paths: options.rest.isEmpty ? null : options.rest, |
160 includeTags: includeTags, | 165 includeTags: includeTags, |
161 excludeTags: excludeTags); | 166 excludeTags: excludeTags); |
162 } | 167 } |
163 | 168 |
164 /// Runs [parse] on the value of the option [name], and wraps any | 169 /// Runs [parse] on the value of the option [name], and wraps any |
165 /// [FormatException] it throws with additional information. | 170 /// [FormatException] it throws with additional information. |
166 _wrapFormatException(ArgResults options, String name, parse(value)) { | 171 _wrapFormatException(ArgResults options, String name, parse(value)) { |
167 if (!options.wasParsed(name)) return null; | 172 if (!options.wasParsed(name)) return null; |
168 | 173 |
169 var value = options[name]; | 174 var value = options[name]; |
170 if (value == null) return null; | 175 if (value == null) return null; |
171 | 176 |
172 try { | 177 try { |
173 return parse(value); | 178 return parse(value); |
174 } on FormatException catch (error) { | 179 } on FormatException catch (error) { |
175 throw new FormatException('Couldn\'t parse --$name "${options[name]}": ' | 180 throw new FormatException('Couldn\'t parse --$name "${options[name]}": ' |
176 '${error.message}'); | 181 '${error.message}'); |
177 } | 182 } |
178 } | 183 } |
OLD | NEW |