| 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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 help: 'Run only tests with all of the specified tags.\n' | 49 help: 'Run only tests with all of the specified tags.\n' |
| 50 'Supports boolean selector syntax.', | 50 'Supports boolean selector syntax.', |
| 51 allowMultiple: true); | 51 allowMultiple: true); |
| 52 parser.addOption("tag", hide: true, allowMultiple: true); | 52 parser.addOption("tag", hide: true, allowMultiple: true); |
| 53 parser.addOption("exclude-tags", | 53 parser.addOption("exclude-tags", |
| 54 abbr: 'x', | 54 abbr: 'x', |
| 55 help: "Don't run tests with any of the specified tags.\n" | 55 help: "Don't run tests with any of the specified tags.\n" |
| 56 "Supports boolean selector syntax.", | 56 "Supports boolean selector syntax.", |
| 57 allowMultiple: true); | 57 allowMultiple: true); |
| 58 parser.addOption("exclude-tag", hide: true, allowMultiple: true); | 58 parser.addOption("exclude-tag", hide: true, allowMultiple: true); |
| 59 parser.addFlag("run-skipped", |
| 60 help: 'Run skipped tests instead of skipping them.'); |
| 59 | 61 |
| 60 parser.addSeparator("======== Running Tests"); | 62 parser.addSeparator("======== Running Tests"); |
| 61 parser.addOption("platform", | 63 parser.addOption("platform", |
| 62 abbr: 'p', | 64 abbr: 'p', |
| 63 help: 'The platform(s) on which to run the tests.', | 65 help: 'The platform(s) on which to run the tests.', |
| 64 defaultsTo: 'vm', | 66 defaultsTo: 'vm', |
| 65 allowed: allPlatforms.map((platform) => platform.identifier).toList(), | 67 allowed: allPlatforms.map((platform) => platform.identifier).toList(), |
| 66 allowMultiple: true); | 68 allowMultiple: true); |
| 67 parser.addOption("preset", | 69 parser.addOption("preset", |
| 68 abbr: 'P', | 70 abbr: 'P', |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 precompiledPath: _ifParsed('precompiled'), | 198 precompiledPath: _ifParsed('precompiled'), |
| 197 reporter: _ifParsed('reporter'), | 199 reporter: _ifParsed('reporter'), |
| 198 pubServePort: _parseOption('pub-serve', int.parse), | 200 pubServePort: _parseOption('pub-serve', int.parse), |
| 199 concurrency: _parseOption('concurrency', int.parse), | 201 concurrency: _parseOption('concurrency', int.parse), |
| 200 shardIndex: shardIndex, | 202 shardIndex: shardIndex, |
| 201 totalShards: totalShards, | 203 totalShards: totalShards, |
| 202 timeout: _parseOption('timeout', (value) => new Timeout.parse(value)), | 204 timeout: _parseOption('timeout', (value) => new Timeout.parse(value)), |
| 203 patterns: patterns, | 205 patterns: patterns, |
| 204 platforms: (_ifParsed('platform') as List<String>) | 206 platforms: (_ifParsed('platform') as List<String>) |
| 205 ?.map(TestPlatform.find), | 207 ?.map(TestPlatform.find), |
| 208 runSkipped: _ifParsed('run-skipped'), |
| 206 chosenPresets: _ifParsed('preset') as List<String>, | 209 chosenPresets: _ifParsed('preset') as List<String>, |
| 207 paths: _options.rest.isEmpty ? null : _options.rest, | 210 paths: _options.rest.isEmpty ? null : _options.rest, |
| 208 includeTags: includeTags, | 211 includeTags: includeTags, |
| 209 excludeTags: excludeTags); | 212 excludeTags: excludeTags); |
| 210 } | 213 } |
| 211 | 214 |
| 212 /// Returns the parsed option for [name], or `null` if none was parsed. | 215 /// Returns the parsed option for [name], or `null` if none was parsed. |
| 213 /// | 216 /// |
| 214 /// If the user hasn't explicitly chosen a value, we want to pass null values | 217 /// If the user hasn't explicitly chosen a value, we want to pass null values |
| 215 /// to [new Configuration] so that it considers those fields unset when | 218 /// to [new Configuration] so that it considers those fields unset when |
| (...skipping 15 matching lines...) Expand all Loading... |
| 231 /// information. | 234 /// information. |
| 232 /*=T*/ _wrapFormatException/*<T>*/(String name, /*=T*/ parse()) { | 235 /*=T*/ _wrapFormatException/*<T>*/(String name, /*=T*/ parse()) { |
| 233 try { | 236 try { |
| 234 return parse(); | 237 return parse(); |
| 235 } on FormatException catch (error) { | 238 } on FormatException catch (error) { |
| 236 throw new FormatException('Couldn\'t parse --$name "${_options[name]}": ' | 239 throw new FormatException('Couldn\'t parse --$name "${_options[name]}": ' |
| 237 '${error.message}'); | 240 '${error.message}'); |
| 238 } | 241 } |
| 239 } | 242 } |
| 240 } | 243 } |
| OLD | NEW |