| // Copyright (c) 2012, 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. |
| |
| /// This is an example of converting the args in test.dart to use this API. |
| /// It shows what it looks like to build an [ArgParser] and then, when the code |
| /// is run, demonstrates what the generated usage text looks like. |
| library example; |
| |
| import 'dart:io'; |
| |
| import 'package:args/args.dart'; |
| |
| main() { |
| var parser = new ArgParser(); |
| |
| parser.addSeparator('===== Platform'); |
| |
| parser.addOption('compiler', |
| abbr: 'c', |
| defaultsTo: 'none', |
| help: 'Specify any compilation step (if needed).', |
| allowed: [ |
| 'none', |
| 'dart2js', |
| 'dartc' |
| ], |
| allowedHelp: { |
| 'none': 'Do not compile the Dart code (run native Dart code on the' |
| ' VM).\n(only valid with the following runtimes: vm, drt)', |
| 'dart2js': 'Compile dart code to JavaScript by running dart2js.\n' |
| '(only valid with the following runtimes: d8, drt, chrome\n' |
| 'safari, ie, firefox, opera, none (compile only))', |
| 'dartc': 'Perform static analysis on Dart code by running dartc.\n' |
| '(only valid with the following runtimes: none)', |
| }); |
| |
| parser.addOption('runtime', |
| abbr: 'r', |
| defaultsTo: 'vm', |
| help: 'Where the tests should be run.', |
| allowed: [ |
| 'vm', |
| 'd8', |
| 'drt', |
| 'dartium', |
| 'ff', |
| 'firefox', |
| 'chrome', |
| 'safari', |
| 'ie', |
| 'opera', |
| 'none' |
| ], |
| allowedHelp: { |
| 'vm': 'Run Dart code on the standalone dart vm.', |
| 'd8': 'Run JavaScript from the command line using v8.', |
| // TODO(antonm): rename flag. |
| 'drt': 'Run Dart or JavaScript in the headless version of Chrome,\n' |
| 'content shell.', |
| 'dartium': 'Run Dart or JavaScript in Dartium.', |
| 'ff': 'Run JavaScript in Firefox', |
| 'chrome': 'Run JavaScript in Chrome', |
| 'safari': 'Run JavaScript in Safari', |
| 'ie': 'Run JavaScript in Internet Explorer', |
| 'opera': 'Run JavaScript in Opera', |
| 'none': 'No runtime, compile only (for example, used for dartc static\n' |
| 'analysis tests).', |
| }); |
| |
| parser.addOption('arch', |
| abbr: 'a', |
| defaultsTo: 'ia32', |
| help: 'The architecture to run tests for', |
| allowed: ['all', 'ia32', 'x64', 'simarm']); |
| |
| parser.addOption('system', |
| abbr: 's', |
| defaultsTo: Platform.operatingSystem, |
| help: 'The operating system to run tests on', |
| allowed: ['linux', 'macos', 'windows']); |
| |
| parser.addSeparator('===== Runtime'); |
| |
| parser.addOption('mode', |
| abbr: 'm', |
| defaultsTo: 'debug', |
| help: 'Mode in which to run the tests', |
| allowed: ['all', 'debug', 'release']); |
| |
| parser.addFlag('checked', |
| defaultsTo: false, help: 'Run tests in checked mode'); |
| |
| parser.addFlag('host-checked', |
| defaultsTo: false, help: 'Run compiler in checked mode'); |
| |
| parser.addOption('timeout', abbr: 't', help: 'Timeout in seconds'); |
| |
| parser.addOption('tasks', |
| abbr: 'j', |
| defaultsTo: Platform.numberOfProcessors.toString(), |
| help: 'The number of parallel tasks to run'); |
| |
| parser.addOption('shards', |
| defaultsTo: '1', |
| help: 'The number of instances that the tests will be sharded over'); |
| |
| parser.addOption('shard', |
| defaultsTo: '1', |
| help: 'The index of this instance when running in sharded mode'); |
| |
| parser.addFlag('valgrind', |
| defaultsTo: false, help: 'Run tests through valgrind'); |
| |
| parser.addSeparator('===== Output'); |
| |
| parser.addOption('progress', |
| abbr: 'p', |
| defaultsTo: 'compact', |
| help: 'Progress indication mode', |
| allowed: [ |
| 'compact', |
| 'color', |
| 'line', |
| 'verbose', |
| 'silent', |
| 'status', |
| 'buildbot' |
| ]); |
| |
| parser.addFlag('report', |
| defaultsTo: false, |
| help: 'Print a summary report of the number of tests, by expectation'); |
| |
| parser.addFlag('verbose', |
| abbr: 'v', defaultsTo: false, help: 'Verbose output'); |
| |
| parser.addFlag('list', |
| defaultsTo: false, help: 'List tests only, do not run them'); |
| |
| parser.addFlag('time', |
| help: 'Print timing information after running tests', defaultsTo: false); |
| |
| parser.addFlag('batch', |
| abbr: 'b', help: 'Run browser tests in batch mode', defaultsTo: true); |
| |
| parser.addSeparator('===== Miscellaneous'); |
| |
| parser.addFlag('keep-generated-tests', |
| defaultsTo: false, |
| help: 'Keep the generated files in the temporary directory'); |
| |
| parser.addOption('special-command', help: """ |
| Special command support. Wraps the command line in |
| a special command. The special command should contain |
| an '@' character which will be replaced by the normal |
| command. |
| |
| For example if the normal command that will be executed |
| is 'dart file.dart' and you specify special command |
| 'python -u valgrind.py @ suffix' the final command will be |
| 'python -u valgrind.py dart file.dart suffix'"""); |
| |
| parser.addOption('dart', help: 'Path to dart executable'); |
| parser.addOption('drt', help: 'Path to content shell executable'); |
| parser.addOption('dartium', help: 'Path to Dartium Chrome executable'); |
| |
| print(parser.usage); |
| } |