Index: dart/tools/testing/drt-trampoline.py |
diff --git a/dart/tools/testing/drt-trampoline.py b/dart/tools/testing/drt-trampoline.py |
index ac5b23d690af3de4017eebf27fa14da8ecb55ada..fc27a7ded3b80c3dd0677304db7525ca2c9f3a1f 100644 |
--- a/dart/tools/testing/drt-trampoline.py |
+++ b/dart/tools/testing/drt-trampoline.py |
@@ -8,70 +8,40 @@ |
# |
# Expected invocation: python drt-trampoline.py <path to DRT> <DRT command line> |
-import optparse |
import os |
import signal |
import subprocess |
import sys |
-def parse_options(argv): |
- parser = optparse.OptionParser() |
- parser.add_option('--dart-flags', |
- metavar='FLAGS', |
- dest='dart_flags') |
- parser.add_option('--out-expectation', |
- metavar='FILE', |
- dest='out_expected_file') |
- parser.add_option('--package-root', |
- metavar='DIRECTORY', |
- dest='dart_package_root') |
- parser.add_option('--no-timeout', |
- action='store_true') |
- return parser.parse_args(args=argv) |
- |
+DART_FLAGS_PREFIX = '--dart-flags=' |
+OUT_EXPECTATION_PREFIX = '--out-expectation=' |
def main(argv): |
drt_path = argv[1] |
- (options, arguments) = parse_options(argv[2:]) |
+ command_line = argv[2:] |
cmd = [drt_path] |
env = None |
test_file = None |
- dart_flags = options.dart_flags |
- out_expected_file = options.out_expected_file |
- dart_package_root = options.dart_package_root |
+ out_expected_file = None |
is_png = False |
- if dart_flags: |
- if not env: |
- env = dict(os.environ.items()) |
- env['DART_FLAGS'] = dart_flags |
- |
- if dart_package_root: |
- if not env: |
+ # parse arguments, filtering out flags, and selecting the input test file |
+ for arg in command_line: |
+ if arg.startswith(DART_FLAGS_PREFIX): |
env = dict(os.environ.items()) |
- absolute_path = os.path.abspath(dart_package_root) |
- absolute_path = absolute_path.replace(os.path.sep, '/') |
- if not absolute_path.startswith('/'): |
- # Happens on Windows for C:\packages |
- absolute_path = '/%s' % absolute_path |
- env['DART_PACKAGE_ROOT'] = 'file://%s' % absolute_path |
- |
- if out_expected_file: |
- if out_expected_file.endswith('.png'): |
- cmd.append('--notree') |
- is_png = True |
- elif not out_expected_file.endswith('.txt'): |
- raise Exception( |
- 'Bad file expectation (%s) please specify either a .txt or a .png file' |
- % out_expected_file) |
- |
- if options.no_timeout: |
- cmd.append('--no-timeout') |
- |
- for arg in arguments: |
- if '.html' in arg: |
+ env['DART_FLAGS'] = arg[len(DART_FLAGS_PREFIX):] |
+ elif arg.startswith(OUT_EXPECTATION_PREFIX): |
+ out_expected_file = arg[len(OUT_EXPECTATION_PREFIX):] |
+ if out_expected_file.endswith('.png'): |
+ cmd.append('--notree') |
+ is_png = True |
+ elif not out_expected_file.endswith('.txt'): |
+ raise Exception( |
+ 'Bad file expectation (%s), ' % out_expected_file |
+ + 'please specify either a .txt or a .png file') |
+ elif '.html' in arg: |
test_file = arg |
else: |
cmd.append(arg) |