OLD | NEW |
1 # Copyright (c) 2012 Google Inc. All rights reserved. | 1 # Copyright (c) 2012 Google Inc. All rights reserved. |
2 # | 2 # |
3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
5 # met: | 5 # met: |
6 # | 6 # |
7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 def setup_environ_for_server(self, server_name): | 131 def setup_environ_for_server(self, server_name): |
132 env = self.__delegate.setup_environ_for_server() | 132 env = self.__delegate.setup_environ_for_server() |
133 # We need to propagate PATH down so the python code can find the checkou
t. | 133 # We need to propagate PATH down so the python code can find the checkou
t. |
134 env['PATH'] = os.environ['PATH'] | 134 env['PATH'] = os.environ['PATH'] |
135 return env | 135 return env |
136 | 136 |
137 def lookup_virtual_test_args(self, test_name): | 137 def lookup_virtual_test_args(self, test_name): |
138 suite = self.__delegate.lookup_virtual_suite(test_name) | 138 suite = self.__delegate.lookup_virtual_suite(test_name) |
139 return suite.args + ['--virtual-test-suite-name', suite.name, '--virtual
-test-suite-base', suite.base] | 139 return suite.args + ['--virtual-test-suite-name', suite.name, '--virtual
-test-suite-base', suite.base] |
140 | 140 |
| 141 |
141 def main(argv, host, stdin, stdout, stderr): | 142 def main(argv, host, stdin, stdout, stderr): |
142 """Run the tests.""" | 143 """Run the tests.""" |
143 | 144 |
144 options, args = parse_options(argv) | 145 options, args = parse_options(argv) |
145 drt = MockDRT(options, args, host, stdin, stdout, stderr) | 146 drt = MockDRT(options, args, host, stdin, stdout, stderr) |
146 return drt.run() | 147 return drt.run() |
147 | 148 |
148 | 149 |
149 def parse_options(argv): | 150 def parse_options(argv): |
150 # We do custom arg parsing instead of using the optparse module | 151 # We do custom arg parsing instead of using the optparse module |
151 # because we don't want to have to list every command line flag DRT | 152 # because we don't want to have to list every command line flag DRT |
152 # accepts, and optparse complains about unrecognized flags. | 153 # accepts, and optparse complains about unrecognized flags. |
153 | 154 |
154 def get_arg(arg_name): | 155 def get_arg(arg_name): |
155 if arg_name in argv: | 156 if arg_name in argv: |
156 index = argv.index(arg_name) | 157 index = argv.index(arg_name) |
157 return argv[index + 1] | 158 return argv[index + 1] |
158 return None | 159 return None |
159 | 160 |
160 options = optparse.Values({ | 161 options = optparse.Values({ |
161 'actual_directory': get_arg('--actual-directory'), | 162 'actual_directory': get_arg('--actual-directory'), |
162 'platform': get_arg('--platform'), | 163 'platform': get_arg('--platform'), |
163 'virtual_test_suite_base': get_arg('--virtual-test-suite-base'), | 164 'virtual_test_suite_base': get_arg('--virtual-test-suite-base'), |
164 'virtual_test_suite_name': get_arg('--virtual-test-suite-name'), | 165 'virtual_test_suite_name': get_arg('--virtual-test-suite-name'), |
165 }) | 166 }) |
166 return (options, argv) | 167 return (options, argv) |
167 | 168 |
168 | 169 |
169 class MockDRT(object): | 170 class MockDRT(object): |
| 171 |
170 def __init__(self, options, args, host, stdin, stdout, stderr): | 172 def __init__(self, options, args, host, stdin, stdout, stderr): |
171 self._options = options | 173 self._options = options |
172 self._args = args | 174 self._args = args |
173 self._host = host | 175 self._host = host |
174 self._stdout = stdout | 176 self._stdout = stdout |
175 self._stdin = stdin | 177 self._stdin = stdin |
176 self._stderr = stderr | 178 self._stderr = stderr |
177 | 179 |
178 port_name = None | 180 port_name = None |
179 if options.platform: | 181 if options.platform: |
(...skipping 29 matching lines...) Expand all Loading... |
209 if uri.startswith('http://') or uri.startswith('https://'): | 211 if uri.startswith('http://') or uri.startswith('https://'): |
210 test_name = self._driver.uri_to_test(uri) | 212 test_name = self._driver.uri_to_test(uri) |
211 else: | 213 else: |
212 test_name = self._port.relative_test_filename(uri) | 214 test_name = self._port.relative_test_filename(uri) |
213 | 215 |
214 return DriverInput(test_name, 0, checksum, should_run_pixel_tests, args=
[]) | 216 return DriverInput(test_name, 0, checksum, should_run_pixel_tests, args=
[]) |
215 | 217 |
216 def output_for_test(self, test_input, is_reftest): | 218 def output_for_test(self, test_input, is_reftest): |
217 port = self._port | 219 port = self._port |
218 if self._options.virtual_test_suite_name: | 220 if self._options.virtual_test_suite_name: |
219 test_input.test_name = test_input.test_name.replace(self._options.vi
rtual_test_suite_base, self._options.virtual_test_suite_name) | 221 test_input.test_name = test_input.test_name.replace( |
| 222 self._options.virtual_test_suite_base, |
| 223 self._options.virtual_test_suite_name) |
220 actual_text = port.expected_text(test_input.test_name) | 224 actual_text = port.expected_text(test_input.test_name) |
221 actual_audio = port.expected_audio(test_input.test_name) | 225 actual_audio = port.expected_audio(test_input.test_name) |
222 actual_image = None | 226 actual_image = None |
223 actual_checksum = None | 227 actual_checksum = None |
224 if is_reftest: | 228 if is_reftest: |
225 # Make up some output for reftests. | 229 # Make up some output for reftests. |
226 actual_text = 'reference text\n' | 230 actual_text = 'reference text\n' |
227 actual_checksum = 'mock-checksum' | 231 actual_checksum = 'mock-checksum' |
228 actual_image = 'blank' | 232 actual_image = 'blank' |
229 if test_input.test_name.endswith('-mismatch.html'): | 233 if test_input.test_name.endswith('-mismatch.html'): |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
277 self._stdout.write('#EOF\n') | 281 self._stdout.write('#EOF\n') |
278 self._stdout.flush() | 282 self._stdout.flush() |
279 self._stderr.write('#EOF\n') | 283 self._stderr.write('#EOF\n') |
280 self._stderr.flush() | 284 self._stderr.flush() |
281 | 285 |
282 | 286 |
283 if __name__ == '__main__': | 287 if __name__ == '__main__': |
284 # Note that the Mock in MockDRT refers to the fact that it is emulating a | 288 # Note that the Mock in MockDRT refers to the fact that it is emulating a |
285 # real DRT, and as such, it needs access to a real SystemHost, not a MockSys
temHost. | 289 # real DRT, and as such, it needs access to a real SystemHost, not a MockSys
temHost. |
286 sys.exit(main(sys.argv[1:], SystemHost(), sys.stdin, sys.stdout, sys.stderr)
) | 290 sys.exit(main(sys.argv[1:], SystemHost(), sys.stdin, sys.stdout, sys.stderr)
) |
OLD | NEW |