Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Side by Side Diff: frog/presubmit.py

Issue 10548047: Remove frog from the repository. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Move test and update apidoc.gyp. Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « frog/parser.dart ('k') | frog/reader.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
3 # for details. All rights reserved. Use of this source code is governed by a
4 # BSD-style license that can be found in the LICENSE file.
5
6 import optparse
7 import os
8 import stat
9 import subprocess
10 import sys
11 import time
12
13
14 class Error(Exception):
15 pass
16
17
18 def BuildOptions():
19 """Configures an option parser for this script"""
20 result = optparse.OptionParser()
21 result.add_option(
22 '--notest',
23 help='Skip running test.py',
24 default=False,
25 action='store_true')
26 result.add_option(
27 '--leg-only',
28 help='Only run leg tests',
29 default=False,
30 action='store_true')
31 return result
32
33
34 def RunCommand(*arguments, **kwargs):
35 pattern = None
36 if 'pattern' in kwargs:
37 pattern = kwargs['pattern']
38 expected_exit_code = 0
39 if 'exit_code' in kwargs:
40 expected_exit_code = kwargs['exit_code']
41 stdout = subprocess.PIPE
42 if 'verbose' in kwargs and kwargs['verbose']:
43 print ' '.join(arguments)
44 stdout = None
45 try:
46 proc = subprocess.Popen(arguments,
47 stdout=stdout,
48 stderr=subprocess.STDOUT)
49 stdout = proc.communicate()[0]
50 exit_code = proc.wait()
51 except OSError as e:
52 raise Error('%s: %s' % (arguments[0], e.strerror))
53 if exit_code != expected_exit_code:
54 DiagnoseError(arguments, stdout)
55 raise Error('%s returned %s' % (arguments[0], exit_code))
56 if pattern and not pattern in stdout:
57 DiagnoseError(arguments, stdout)
58 raise Error('%s failed' % arguments[0])
59
60
61 def DiagnoseError(arguments, stdout):
62 quoted_arguments = ' '.join([repr(s) for s in arguments])
63 sys.stderr.write('Command failed:\n%s\n' % quoted_arguments)
64 if stdout:
65 sys.stderr.write(stdout)
66
67
68 EXECUTABLE = (stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR |
69 stat.S_IRGRP | stat.S_IXGRP |
70 stat.S_IROTH | stat.S_IXOTH)
71
72 def main():
73 dart_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
74 os.chdir(dart_dir)
75
76 (options, args) = BuildOptions().parse_args()
77
78 RunCommand('./tools/build.py', '--mode=release', 'dart2js')
79
80 test_cmd = ['./tools/test.py', '--report', '--timeout=30',
81 '--progress=color', '--mode=release', '--checked']
82
83 if options.notest: return
84
85 if args:
86 if options.leg_only:
87 test_cmd.extend('--compiler=dart2js', '--runtime=d8')
88 else:
89 test_cmd.extend('--compiler=frog,dart2js', '--runtime=d8')
90 test_cmd.extend(args)
91 RunCommand(*test_cmd, verbose=True)
92 else:
93 if not options.leg_only:
94 # Run frog.py on the corelib tests, so we get some frog.py coverage.
95 cmd = test_cmd + ['--compiler=frog', '--runtime=d8', 'corelib']
96 RunCommand(*cmd, verbose=True)
97
98 # Run frogium client tests. This is a pretty quick test but
99 # tends to uncover different issues due to the size/complexity
100 # of the DOM APIs.
101 cmd = test_cmd + ['--compiler=frog', '--runtime=drt',
102 'dom', 'html', 'json', 'benchmark_smoke']
103 RunCommand(*cmd, verbose=True)
104
105 # Run frog on most of the tests.
106 cmd = test_cmd + ['--compiler=frog', '--runtime=d8',
107 'language', 'corelib',
108 'isolate', 'peg', 'frog', 'css', 'frog_native']
109 RunCommand(*cmd, verbose=True)
110
111 # Run the "utils" tests which includes dartdoc. Frog/leg changes often
112 # break dartdoc and this tries to catch those.
113 cmd = test_cmd + ['--compiler=none', '--runtime=vm', 'utils']
114 RunCommand(*cmd, verbose=True)
115
116 # Run leg unit tests.
117 cmd = test_cmd + ['--compiler=none', '--runtime=vm', 'leg']
118 RunCommand(*cmd, verbose=True)
119
120 # Leg does not implement checked mode yet.
121 test_cmd.remove('--checked')
122
123 cmd = test_cmd + ['--compiler=dart2js', '--runtime=d8',
124 'leg_only', 'frog_native']
125 RunCommand(*cmd, verbose=True)
126
127 # Run dart2js and legium on "built-in" tests.
128 cmd = test_cmd + ['--compiler=dart2js', '--runtime=d8,drt']
129 RunCommand(*cmd, verbose=True)
130
131
132 if __name__ == '__main__':
133 try:
134 sys.exit(main())
135 except Error as e:
136 sys.stderr.write('%s\n' % e)
137 sys.exit(1)
OLDNEW
« no previous file with comments | « frog/parser.dart ('k') | frog/reader.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698