OLD | NEW |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 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 | 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. | 4 # BSD-style license that can be found in the LICENSE file. |
5 | 5 |
6 import optparse | 6 import optparse |
7 import os | 7 import os |
8 import stat | 8 import stat |
9 import subprocess | 9 import subprocess |
10 import sys | 10 import sys |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
62 quoted_arguments = ' '.join([repr(s) for s in arguments]) | 62 quoted_arguments = ' '.join([repr(s) for s in arguments]) |
63 sys.stderr.write('Command failed:\n%s\n' % quoted_arguments) | 63 sys.stderr.write('Command failed:\n%s\n' % quoted_arguments) |
64 if stdout: | 64 if stdout: |
65 sys.stderr.write(stdout) | 65 sys.stderr.write(stdout) |
66 | 66 |
67 | 67 |
68 EXECUTABLE = (stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | | 68 EXECUTABLE = (stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | |
69 stat.S_IRGRP | stat.S_IXGRP | | 69 stat.S_IRGRP | stat.S_IXGRP | |
70 stat.S_IROTH | stat.S_IXOTH) | 70 stat.S_IROTH | stat.S_IXOTH) |
71 | 71 |
72 def SelfHost(): | |
73 def b(s): | |
74 """Adds ANSI escape-code for bold-face""" | |
75 return "\033[1m%s\033[0m" % s | |
76 | |
77 # VM Checked/CompileAll, produces checked | |
78 print 'Started' | |
79 start = time.time() | |
80 RunCommand('./frog/frog.py', | |
81 '--vm_flags=--compile_all --enable_type_checks --enable_asserts', | |
82 '--', '--compile_all', '--enable_type_checks', | |
83 '--out=frog/minfrog', 'frog/minfrog.dart') | |
84 elapsed = time.time() - start | |
85 mode = 'in checked mode + compile all' | |
86 print 'Compiling minfrog on Dart VM took %s seconds %s' % ( | |
87 b('%.1f' % elapsed), b(mode)) | |
88 os.chmod('./frog/minfrog', EXECUTABLE) | |
89 | |
90 # VM Production | |
91 start = time.time() | |
92 RunCommand('./frog/frog.py', '--', '--out=frog/minfrog', 'frog/minfrog.dart') | |
93 elapsed = time.time() - start | |
94 mode = 'in production mode' | |
95 print 'Compiling minfrog on Dart VM took %s seconds %s' % ( | |
96 b('%.1f' % elapsed), b(mode)) | |
97 os.chmod('./frog/minfrog', EXECUTABLE) | |
98 | |
99 # Selfhost Production | |
100 start = time.time() | |
101 # TODO(jmesserly): --warnings_as_errors disabled until corelib is moved to | |
102 # new factory syntax. | |
103 RunCommand('./frog/minfrog', '--out=frog/minfrog', # '--warnings_as_errors', | |
104 'frog/minfrog.dart', 'frog/tests/hello.dart', verbose=True) | |
105 elapsed = time.time() - start | |
106 size = os.path.getsize('./frog/minfrog') / 1024 | |
107 print 'Bootstrapping minfrog took %s seconds %s' % (b('%.1f' % elapsed), | |
108 b('in production mode')) | |
109 print 'Generated %s minfrog is %s kB' % (b('production'), b(size)) | |
110 | |
111 | |
112 def main(): | 72 def main(): |
113 dart_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | 73 dart_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |
114 os.chdir(dart_dir) | 74 os.chdir(dart_dir) |
115 | 75 |
116 (options, args) = BuildOptions().parse_args() | 76 (options, args) = BuildOptions().parse_args() |
117 | 77 |
118 RunCommand('./tools/build.py', '--mode=release', 'dart2js') | 78 RunCommand('./tools/build.py', '--mode=release', 'dart2js') |
119 | 79 |
120 if not options.leg_only: | |
121 SelfHost() | |
122 | |
123 test_cmd = ['./tools/test.py', '--report', '--timeout=30', | 80 test_cmd = ['./tools/test.py', '--report', '--timeout=30', |
124 '--progress=color', '--mode=release', '--checked'] | 81 '--progress=color', '--mode=release', '--checked'] |
125 | 82 |
126 if options.notest: return | 83 if options.notest: return |
127 | 84 |
128 if args: | 85 if args: |
129 if options.leg_only: | 86 if options.leg_only: |
130 test_cmd.extend('--compiler=dart2js', '--runtime=d8') | 87 test_cmd.extend('--compiler=dart2js', '--runtime=d8') |
131 else: | 88 else: |
132 test_cmd.append('--component=frogsh,dart2js') | 89 test_cmd.extend('--compiler=frog,dart2js', '--runtime=d8') |
133 test_cmd.extend(args) | 90 test_cmd.extend(args) |
134 RunCommand(*test_cmd, verbose=True) | 91 RunCommand(*test_cmd, verbose=True) |
135 else: | 92 else: |
136 if not options.leg_only: | 93 if not options.leg_only: |
137 # Run frog.py on the corelib tests, so we get some frog.py coverage. | 94 # Run frog.py on the corelib tests, so we get some frog.py coverage. |
138 cmd = test_cmd + ['--compiler=frog', '--runtime=d8', 'corelib'] | 95 cmd = test_cmd + ['--compiler=frog', '--runtime=d8', 'corelib'] |
139 RunCommand(*cmd, verbose=True) | 96 RunCommand(*cmd, verbose=True) |
140 | 97 |
141 # Run frogium client tests. This is a pretty quick test but | 98 # Run frogium client tests. This is a pretty quick test but |
142 # tends to uncover different issues due to the size/complexity | 99 # tends to uncover different issues due to the size/complexity |
143 # of the DOM APIs. | 100 # of the DOM APIs. |
144 cmd = test_cmd + ['--compiler=frog', '--runtime=drt', 'client'] | 101 cmd = test_cmd + ['--compiler=frog', '--runtime=drt', 'client'] |
145 RunCommand(*cmd, verbose=True) | 102 RunCommand(*cmd, verbose=True) |
146 | 103 |
147 # TODO(jimhug): Consider adding co19 back when it delivers more value | |
148 # than pain. | |
149 # Run frogsh on most of the tests. | |
150 cmd = test_cmd + ['--compiler=frogsh', '--runtime=d8', | |
151 'language', 'corelib', | |
152 'isolate', 'peg', 'frog', 'css', 'frog_native'] | |
sra1
2012/04/21 17:10:27
If frogsh is not run on these tests then frog need
ahe
2012/04/23 13:14:09
Done.
| |
153 RunCommand(*cmd, verbose=True) | |
154 | |
155 # Run the "utils" tests which includes dartdoc. Frog/leg changes often | 104 # Run the "utils" tests which includes dartdoc. Frog/leg changes often |
156 # break dartdoc and this tries to catch those. | 105 # break dartdoc and this tries to catch those. |
157 cmd = test_cmd + ['--compiler=none', '--runtime=vm', 'utils'] | 106 cmd = test_cmd + ['--compiler=none', '--runtime=vm', 'utils'] |
158 RunCommand(*cmd, verbose=True) | 107 RunCommand(*cmd, verbose=True) |
159 | 108 |
160 # Run leg unit tests. | 109 # Run leg unit tests. |
161 cmd = test_cmd + ['--compiler=none', '--runtime=vm', 'leg'] | 110 cmd = test_cmd + ['--compiler=none', '--runtime=vm', 'leg'] |
162 RunCommand(*cmd, verbose=True) | 111 RunCommand(*cmd, verbose=True) |
163 | 112 |
164 # Leg does not implement checked mode yet. | 113 # Leg does not implement checked mode yet. |
165 test_cmd.remove('--checked') | 114 test_cmd.remove('--checked') |
166 | 115 |
167 cmd = test_cmd + ['--compiler=dart2js', '--runtime=d8', | 116 cmd = test_cmd + ['--compiler=dart2js', '--runtime=d8', |
168 'leg_only', 'frog_native'] | 117 'leg_only', 'frog_native'] |
169 RunCommand(*cmd, verbose=True) | 118 RunCommand(*cmd, verbose=True) |
170 | 119 |
171 # Run dart2js and legium on "built-in" tests. | 120 # Run dart2js and legium on "built-in" tests. |
172 cmd = test_cmd + ['--compiler=dart2js', '--runtime=d8,drt'] | 121 cmd = test_cmd + ['--compiler=dart2js', '--runtime=d8,drt'] |
173 RunCommand(*cmd, verbose=True) | 122 RunCommand(*cmd, verbose=True) |
174 | 123 |
175 | 124 |
176 if __name__ == '__main__': | 125 if __name__ == '__main__': |
177 try: | 126 try: |
178 sys.exit(main()) | 127 sys.exit(main()) |
179 except Error as e: | 128 except Error as e: |
180 sys.stderr.write('%s\n' % e) | 129 sys.stderr.write('%s\n' % e) |
181 sys.exit(1) | 130 sys.exit(1) |
OLD | NEW |