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

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

Issue 2781733003: Improve run-webkit-tests error reporting when ref tests have missing images. (Closed)
Patch Set: review comments Created 3 years, 8 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 writer.write_image_files(driver_output.image, expected_driver_output .image) 63 writer.write_image_files(driver_output.image, expected_driver_output .image)
64 writer.write_image_diff_files(driver_output.image_diff) 64 writer.write_image_diff_files(driver_output.image_diff)
65 elif isinstance(failure, (test_failures.FailureAudioMismatch, 65 elif isinstance(failure, (test_failures.FailureAudioMismatch,
66 test_failures.FailureMissingAudio)): 66 test_failures.FailureMissingAudio)):
67 writer.write_audio_files(driver_output.audio, expected_driver_output .audio) 67 writer.write_audio_files(driver_output.audio, expected_driver_output .audio)
68 elif isinstance(failure, test_failures.FailureCrash): 68 elif isinstance(failure, test_failures.FailureCrash):
69 crashed_driver_output = expected_driver_output if failure.is_reftest else driver_output 69 crashed_driver_output = expected_driver_output if failure.is_reftest else driver_output
70 writer.write_crash_log(crashed_driver_output.crash_log) 70 writer.write_crash_log(crashed_driver_output.crash_log)
71 elif isinstance(failure, test_failures.FailureLeak): 71 elif isinstance(failure, test_failures.FailureLeak):
72 writer.write_leak_log(driver_output.leak_log) 72 writer.write_leak_log(driver_output.leak_log)
73 elif isinstance(failure, test_failures.FailureReftestMismatch): 73 elif isinstance(failure, (
74 test_failures.FailureReftestMismatch,
75 test_failures.FailureReftestNoImageGenerated,
76 test_failures.FailureReftestNoReferenceImageGenerated)):
74 writer.write_image_files(driver_output.image, expected_driver_output .image) 77 writer.write_image_files(driver_output.image, expected_driver_output .image)
75 # FIXME: This work should be done earlier in the pipeline (e.g., whe n we compare images for non-ref tests).
76 # FIXME: We should always have 2 images here.
77 if driver_output.image and expected_driver_output.image: 78 if driver_output.image and expected_driver_output.image:
78 diff_image, _ = port.diff_image(expected_driver_output.image, dr iver_output.image) 79 diff_image, _ = port.diff_image(expected_driver_output.image, dr iver_output.image)
79 if diff_image: 80 if diff_image:
80 writer.write_image_diff_files(diff_image) 81 writer.write_image_diff_files(diff_image)
81 else: 82 else:
82 _log.warning('ref test mismatch did not produce an image dif f.') 83 _log.warning('ref test mismatch did not produce an image dif f.')
83 writer.write_image_files(driver_output.image, expected_image=None)
84 if filesystem.exists(failure.reference_filename): 84 if filesystem.exists(failure.reference_filename):
85 writer.write_reftest(failure.reference_filename) 85 writer.write_reftest(failure.reference_filename)
86 else: 86 else:
87 _log.warning("reference %s was not found", failure.reference_fil ename) 87 _log.warning("reference %s was not found", failure.reference_fil ename)
88 elif isinstance(failure, test_failures.FailureReftestMismatchDidNotOccur ): 88 elif isinstance(failure, test_failures.FailureReftestMismatchDidNotOccur ):
89 writer.write_image_files(driver_output.image, expected_image=None) 89 writer.write_image_files(driver_output.image, expected_image=None)
90 if filesystem.exists(failure.reference_filename): 90 if filesystem.exists(failure.reference_filename):
91 writer.write_reftest(failure.reference_filename) 91 writer.write_reftest(failure.reference_filename)
92 else: 92 else:
93 _log.warning("reference %s was not found", failure.reference_fil ename) 93 _log.warning("reference %s was not found", failure.reference_fil ename)
94 else: 94 else:
95 assert isinstance(failure, (test_failures.FailureTimeout, test_failu res.FailureReftestNoImagesGenerated)) 95 assert isinstance(failure, test_failures.FailureTimeout)
96 96
97 if expected_driver_output is not None: 97 if expected_driver_output is not None:
98 writer.create_repaint_overlay_result(driver_output.text, expected_dr iver_output.text) 98 writer.create_repaint_overlay_result(driver_output.text, expected_dr iver_output.text)
99 99
100 100
101 def baseline_name(filesystem, test_name, suffix): 101 def baseline_name(filesystem, test_name, suffix):
102 base = filesystem.splitext(test_name)[0] 102 base = filesystem.splitext(test_name)[0]
103 return '%s%s.%s' % (base, TestResultWriter.FILENAME_SUFFIX_EXPECTED, suffix) 103 return '%s%s.%s' % (base, TestResultWriter.FILENAME_SUFFIX_EXPECTED, suffix)
104 104
105 105
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 'diff_filename': self._output_testname(self.FILENAME_SUFFIX_IMAGE_DI FF), 283 'diff_filename': self._output_testname(self.FILENAME_SUFFIX_IMAGE_DI FF),
284 'prefix': self._output_testname(''), 284 'prefix': self._output_testname(''),
285 } 285 }
286 self._write_file(diffs_html_filename, html) 286 self._write_file(diffs_html_filename, html)
287 287
288 def write_reftest(self, src_filepath): 288 def write_reftest(self, src_filepath):
289 fs = self._filesystem 289 fs = self._filesystem
290 dst_dir = fs.dirname(fs.join(self._root_output_dir, self._test_name)) 290 dst_dir = fs.dirname(fs.join(self._root_output_dir, self._test_name))
291 dst_filepath = fs.join(dst_dir, fs.basename(src_filepath)) 291 dst_filepath = fs.join(dst_dir, fs.basename(src_filepath))
292 self._write_file(dst_filepath, fs.read_binary_file(src_filepath)) 292 self._write_file(dst_filepath, fs.read_binary_file(src_filepath))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698