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

Side by Side Diff: third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py

Issue 2759263002: Add image-first-tests flag to run-webkit-tests (Closed)
Patch Set: fix comments Created 3 years, 9 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
OLDNEW
1 # Copyright (C) 2011 Google Inc. All rights reserved. 1 # Copyright (C) 2011 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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 self._port = port 63 self._port = port
64 self._filesystem = port.host.filesystem 64 self._filesystem = port.host.filesystem
65 self._options = options 65 self._options = options
66 self._results_directory = results_directory 66 self._results_directory = results_directory
67 self._driver = primary_driver 67 self._driver = primary_driver
68 self._reference_driver = primary_driver 68 self._reference_driver = primary_driver
69 self._timeout_ms = test_input.timeout_ms 69 self._timeout_ms = test_input.timeout_ms
70 self._worker_name = worker_name 70 self._worker_name = worker_name
71 self._test_name = test_input.test_name 71 self._test_name = test_input.test_name
72 self._should_run_pixel_test = test_input.should_run_pixel_test 72 self._should_run_pixel_test = test_input.should_run_pixel_test
73 self._should_run_pixel_test_first = (
74 test_input.should_run_pixel_test_first)
73 self._reference_files = test_input.reference_files 75 self._reference_files = test_input.reference_files
74 self._should_add_missing_baselines = test_input.should_add_missing_basel ines 76 self._should_add_missing_baselines = test_input.should_add_missing_basel ines
75 self._stop_when_done = stop_when_done 77 self._stop_when_done = stop_when_done
76 78
77 # If this is a virtual test that uses the default flags instead of the 79 # If this is a virtual test that uses the default flags instead of the
78 # virtual flags for it's references, run it on the secondary driver so 80 # virtual flags for it's references, run it on the secondary driver so
79 # that the primary driver does not need to be restarted. 81 # that the primary driver does not need to be restarted.
80 if (secondary_driver and 82 if (secondary_driver and
81 self._port.is_virtual_test(self._test_name) and 83 self._port.is_virtual_test(self._test_name) and
82 not self._port.lookup_virtual_reference_args(self._test_name)): 84 not self._port.lookup_virtual_reference_args(self._test_name)):
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 278
277 if driver_output.crash: 279 if driver_output.crash:
278 # Don't continue any more if we already have a crash. 280 # Don't continue any more if we already have a crash.
279 # In case of timeouts, we continue since we still want to see the te xt and image output. 281 # In case of timeouts, we continue since we still want to see the te xt and image output.
280 return TestResult(self._test_name, failures, driver_output.test_time , driver_output.has_stderr(), 282 return TestResult(self._test_name, failures, driver_output.test_time , driver_output.has_stderr(),
281 pid=driver_output.pid) 283 pid=driver_output.pid)
282 284
283 is_testharness_test, testharness_failures = self._compare_testharness_te st(driver_output, expected_driver_output) 285 is_testharness_test, testharness_failures = self._compare_testharness_te st(driver_output, expected_driver_output)
284 if is_testharness_test: 286 if is_testharness_test:
285 failures.extend(testharness_failures) 287 failures.extend(testharness_failures)
288
289 compare_functions = []
290 compare_image_fn = (self._compare_image, (
291 expected_driver_output, driver_output))
292 compare_txt_fn = (self._compare_text, (
293 expected_driver_output.text, driver_output.text))
294 compare_audio_fn = (self._compare_audio, (
295 expected_driver_output.audio, driver_output.audio))
qyearsley 2017/03/21 22:44:09 Formatting note: Technically, the line length limi
296
297 if self._should_run_pixel_test_first:
298 if driver_output.image_hash:
299 compare_functions.append(compare_image_fn)
300 else:
301 compare_functions.append(compare_txt_fn)
286 else: 302 else:
287 failures.extend(self._compare_text(expected_driver_output.text, driv er_output.text)) 303 compare_functions.append(compare_txt_fn)
288 failures.extend(self._compare_audio(expected_driver_output.audio, driver _output.audio)) 304 if self._should_run_pixel_test:
289 if self._should_run_pixel_test: 305 compare_functions.append(compare_image_fn)
290 failures.extend(self._compare_image(expected_driver_output, driver_o utput)) 306 compare_functions.append(compare_audio_fn)
307
308 for func, args in compare_functions:
309 failures.extend(func(*args))
310
291 has_repaint_overlay = (repaint_overlay.result_contains_repaint_rects(exp ected_driver_output.text) or 311 has_repaint_overlay = (repaint_overlay.result_contains_repaint_rects(exp ected_driver_output.text) or
292 repaint_overlay.result_contains_repaint_rects(dri ver_output.text)) 312 repaint_overlay.result_contains_repaint_rects(dri ver_output.text))
293 return TestResult(self._test_name, failures, driver_output.test_time, dr iver_output.has_stderr(), 313 return TestResult(self._test_name, failures, driver_output.test_time, dr iver_output.has_stderr(),
294 pid=driver_output.pid, has_repaint_overlay=has_repaint _overlay) 314 pid=driver_output.pid, has_repaint_overlay=has_repaint _overlay)
295 315
296 def _compare_testharness_test(self, driver_output, expected_driver_output): 316 def _compare_testharness_test(self, driver_output, expected_driver_output):
297 if expected_driver_output.text: 317 if expected_driver_output.text:
298 return False, [] 318 return False, []
299 319
300 if self._is_render_tree(driver_output.text): 320 if self._is_render_tree(driver_output.text):
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 elif reference_driver_output.image_hash != actual_driver_output.image_ha sh: 469 elif reference_driver_output.image_hash != actual_driver_output.image_ha sh:
450 diff, err_str = self._port.diff_image(reference_driver_output.image, actual_driver_output.image) 470 diff, err_str = self._port.diff_image(reference_driver_output.image, actual_driver_output.image)
451 if diff: 471 if diff:
452 failures.append(test_failures.FailureReftestMismatch(reference_f ilename)) 472 failures.append(test_failures.FailureReftestMismatch(reference_f ilename))
453 elif err_str: 473 elif err_str:
454 _log.error(err_str) 474 _log.error(err_str)
455 else: 475 else:
456 _log.warning(" %s -> ref test hashes didn't match but diff pass ed", self._test_name) 476 _log.warning(" %s -> ref test hashes didn't match but diff pass ed", self._test_name)
457 477
458 return TestResult(self._test_name, failures, 0, has_stderr, pid=actual_d river_output.pid) 478 return TestResult(self._test_name, failures, 0, has_stderr, pid=actual_d river_output.pid)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698