| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 part of testrunner; | 5 part of testrunner; |
| 6 | 6 |
| 7 /** Create and return an options parser for the test runner. */ | 7 /** Create and return an options parser for the test runner. */ |
| 8 ArgParser getOptionParser() { | 8 ArgParser getOptionParser() { |
| 9 var parser = new ArgParser(); | 9 var parser = new ArgParser(); |
| 10 | 10 |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 /** | 193 /** |
| 194 * Get the test runner configuration. This loads options from multiple | 194 * Get the test runner configuration. This loads options from multiple |
| 195 * sources, in increasing order of priority: a test.config file in the | 195 * sources, in increasing order of priority: a test.config file in the |
| 196 * current directory, a test config file specified with --configfile on | 196 * current directory, a test config file specified with --configfile on |
| 197 * the command line, and other arguments specified on the command line. | 197 * the command line, and other arguments specified on the command line. |
| 198 */ | 198 */ |
| 199 ArgResults loadConfiguration(optionsParser) { | 199 ArgResults loadConfiguration(optionsParser) { |
| 200 var options = new List(); | 200 var options = new List(); |
| 201 // We first load options from a test.config file in the working directory. | 201 // We first load options from a test.config file in the working directory. |
| 202 options.addAll(getFileContents('test.config', false). | 202 options.addAll(getFileContents('test.config', false). |
| 203 filter((e) => e.trim().length > 0 && e[0] != '#')); | 203 where((e) => e.trim().length > 0 && e[0] != '#')); |
| 204 // Next we look to see if the command line included a -testconfig argument, | 204 // Next we look to see if the command line included a -testconfig argument, |
| 205 // and if so, load options from that file too; where these are not | 205 // and if so, load options from that file too; where these are not |
| 206 // multi-valued they will take precedence over the ones in test.config. | 206 // multi-valued they will take precedence over the ones in test.config. |
| 207 var commandLineArgs = new Options().arguments; | 207 var commandLineArgs = new Options().arguments; |
| 208 var cfgarg = '--configfile'; | 208 var cfgarg = '--configfile'; |
| 209 for (var i = 0; i < commandLineArgs.length; i++) { | 209 for (var i = 0; i < commandLineArgs.length; i++) { |
| 210 if (commandLineArgs[i].startsWith(cfgarg)) { | 210 if (commandLineArgs[i].startsWith(cfgarg)) { |
| 211 if (commandLineArgs[i] == cfgarg) { | 211 if (commandLineArgs[i] == cfgarg) { |
| 212 if (i == commandLineArgs.length - 1) { | 212 if (i == commandLineArgs.length - 1) { |
| 213 throw new Exception('Missing argument to $cfgarg'); | 213 throw new Exception('Missing argument to $cfgarg'); |
| 214 } | 214 } |
| 215 options.addAll(getFileContents(commandLineArgs[++i], true). | 215 options.addAll(getFileContents(commandLineArgs[++i], true). |
| 216 filter((e) => e.trim().length > 0 && e[0] != '#')); | 216 where((e) => e.trim().length > 0 && e[0] != '#')); |
| 217 } else if (commandLineArgs[i].startsWith('$cfgarg=')) { | 217 } else if (commandLineArgs[i].startsWith('$cfgarg=')) { |
| 218 options.addAll( | 218 options.addAll( |
| 219 getFileContents(commandLineArgs[i].substring(cfgarg.length), true). | 219 getFileContents(commandLineArgs[i].substring(cfgarg.length), true). |
| 220 filter((e) => e.trim().length > 0 && e[0] != '#')); | 220 where((e) => e.trim().length > 0 && e[0] != '#')); |
| 221 } else { | 221 } else { |
| 222 throw new Exception('Missing argument to $cfgarg'); | 222 throw new Exception('Missing argument to $cfgarg'); |
| 223 } | 223 } |
| 224 } | 224 } |
| 225 } | 225 } |
| 226 // Finally, we add options from the command line. These have the highest | 226 // Finally, we add options from the command line. These have the highest |
| 227 // precedence of all. | 227 // precedence of all. |
| 228 options.addAll(commandLineArgs); | 228 options.addAll(commandLineArgs); |
| 229 // Now try parse the whole collection of options, and if this fails, | 229 // Now try parse the whole collection of options, and if this fails, |
| 230 // issue a usage message. | 230 // issue a usage message. |
| (...skipping 25 matching lines...) Expand all Loading... |
| 256 print('--include and --exclude are mutually exclusive.'); | 256 print('--include and --exclude are mutually exclusive.'); |
| 257 return false; | 257 return false; |
| 258 } | 258 } |
| 259 if ((config['layout-text'] || config['layout-pixel']) && | 259 if ((config['layout-text'] || config['layout-pixel']) && |
| 260 config['runtime'] == 'vm') { | 260 config['runtime'] == 'vm') { |
| 261 print('Layout tests must use --runtime values of "drt-dart" or "drt-js"'); | 261 print('Layout tests must use --runtime values of "drt-dart" or "drt-js"'); |
| 262 return false; | 262 return false; |
| 263 } | 263 } |
| 264 return true; | 264 return true; |
| 265 } | 265 } |
| OLD | NEW |