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

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

Issue 148153009: DOM-object leak detection at run_webkit_tests.py (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Bug fix: unit test Created 6 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 | Annotate | Revision Log
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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 writer.write_image_files(driver_output.image, expected_driver_output .image) 58 writer.write_image_files(driver_output.image, expected_driver_output .image)
59 elif isinstance(failure, test_failures.FailureImageHashMismatch): 59 elif isinstance(failure, test_failures.FailureImageHashMismatch):
60 writer.write_image_files(driver_output.image, expected_driver_output .image) 60 writer.write_image_files(driver_output.image, expected_driver_output .image)
61 writer.write_image_diff_files(driver_output.image_diff) 61 writer.write_image_diff_files(driver_output.image_diff)
62 elif isinstance(failure, (test_failures.FailureAudioMismatch, 62 elif isinstance(failure, (test_failures.FailureAudioMismatch,
63 test_failures.FailureMissingAudio)): 63 test_failures.FailureMissingAudio)):
64 writer.write_audio_files(driver_output.audio, expected_driver_output .audio) 64 writer.write_audio_files(driver_output.audio, expected_driver_output .audio)
65 elif isinstance(failure, test_failures.FailureCrash): 65 elif isinstance(failure, test_failures.FailureCrash):
66 crashed_driver_output = expected_driver_output if failure.is_reftest else driver_output 66 crashed_driver_output = expected_driver_output if failure.is_reftest else driver_output
67 writer.write_crash_log(crashed_driver_output.crash_log) 67 writer.write_crash_log(crashed_driver_output.crash_log)
68 elif isinstance(failure, test_failures.FailureLeak):
69 writer.write_leak_log(driver_output.leak_log)
68 elif isinstance(failure, test_failures.FailureReftestMismatch): 70 elif isinstance(failure, test_failures.FailureReftestMismatch):
69 writer.write_image_files(driver_output.image, expected_driver_output .image) 71 writer.write_image_files(driver_output.image, expected_driver_output .image)
70 # FIXME: This work should be done earlier in the pipeline (e.g., whe n we compare images for non-ref tests). 72 # FIXME: This work should be done earlier in the pipeline (e.g., whe n we compare images for non-ref tests).
71 # FIXME: We should always have 2 images here. 73 # FIXME: We should always have 2 images here.
72 if driver_output.image and expected_driver_output.image: 74 if driver_output.image and expected_driver_output.image:
73 diff_image, err_str = port.diff_image(expected_driver_output.ima ge, driver_output.image) 75 diff_image, err_str = port.diff_image(expected_driver_output.ima ge, driver_output.image)
74 if diff_image: 76 if diff_image:
75 writer.write_image_diff_files(diff_image) 77 writer.write_image_diff_files(diff_image)
76 else: 78 else:
77 _log.warn('ref test mismatch did not produce an image diff.' ) 79 _log.warn('ref test mismatch did not produce an image diff.' )
(...skipping 15 matching lines...) Expand all
93 class TestResultWriter(object): 95 class TestResultWriter(object):
94 """A class which handles all writing operations to the result directory.""" 96 """A class which handles all writing operations to the result directory."""
95 97
96 # Filename pieces when writing failures to the test results directory. 98 # Filename pieces when writing failures to the test results directory.
97 FILENAME_SUFFIX_ACTUAL = "-actual" 99 FILENAME_SUFFIX_ACTUAL = "-actual"
98 FILENAME_SUFFIX_EXPECTED = "-expected" 100 FILENAME_SUFFIX_EXPECTED = "-expected"
99 FILENAME_SUFFIX_DIFF = "-diff" 101 FILENAME_SUFFIX_DIFF = "-diff"
100 FILENAME_SUFFIX_STDERR = "-stderr" 102 FILENAME_SUFFIX_STDERR = "-stderr"
101 FILENAME_SUFFIX_CRASH_LOG = "-crash-log" 103 FILENAME_SUFFIX_CRASH_LOG = "-crash-log"
102 FILENAME_SUFFIX_SAMPLE = "-sample" 104 FILENAME_SUFFIX_SAMPLE = "-sample"
105 FILENAME_SUFFIX_LEAK_LOG = "-leak-log"
103 FILENAME_SUFFIX_WDIFF = "-wdiff.html" 106 FILENAME_SUFFIX_WDIFF = "-wdiff.html"
104 FILENAME_SUFFIX_PRETTY_PATCH = "-pretty-diff.html" 107 FILENAME_SUFFIX_PRETTY_PATCH = "-pretty-diff.html"
105 FILENAME_SUFFIX_IMAGE_DIFF = "-diff.png" 108 FILENAME_SUFFIX_IMAGE_DIFF = "-diff.png"
106 FILENAME_SUFFIX_IMAGE_DIFFS_HTML = "-diffs.html" 109 FILENAME_SUFFIX_IMAGE_DIFFS_HTML = "-diffs.html"
107 110
108 def __init__(self, filesystem, port, root_output_dir, test_name): 111 def __init__(self, filesystem, port, root_output_dir, test_name):
109 self._filesystem = filesystem 112 self._filesystem = filesystem
110 self._port = port 113 self._port = port
111 self._root_output_dir = root_output_dir 114 self._root_output_dir = root_output_dir
112 self._test_name = test_name 115 self._test_name = test_name
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 self._write_file(expected_filename, expected) 165 self._write_file(expected_filename, expected)
163 166
164 def write_stderr(self, error): 167 def write_stderr(self, error):
165 filename = self.output_filename(self.FILENAME_SUFFIX_STDERR + ".txt") 168 filename = self.output_filename(self.FILENAME_SUFFIX_STDERR + ".txt")
166 self._write_file(filename, error) 169 self._write_file(filename, error)
167 170
168 def write_crash_log(self, crash_log): 171 def write_crash_log(self, crash_log):
169 filename = self.output_filename(self.FILENAME_SUFFIX_CRASH_LOG + ".txt") 172 filename = self.output_filename(self.FILENAME_SUFFIX_CRASH_LOG + ".txt")
170 self._write_file(filename, crash_log.encode('utf8', 'replace')) 173 self._write_file(filename, crash_log.encode('utf8', 'replace'))
171 174
175 def write_leak_log(self, leak_log):
176 filename = self.output_filename(self.FILENAME_SUFFIX_LEAK_LOG + ".txt")
177 self._write_file(filename, leak_log)
178
172 def copy_sample_file(self, sample_file): 179 def copy_sample_file(self, sample_file):
173 filename = self.output_filename(self.FILENAME_SUFFIX_SAMPLE + ".txt") 180 filename = self.output_filename(self.FILENAME_SUFFIX_SAMPLE + ".txt")
174 self._filesystem.copyfile(sample_file, filename) 181 self._filesystem.copyfile(sample_file, filename)
175 182
176 def write_text_files(self, actual_text, expected_text): 183 def write_text_files(self, actual_text, expected_text):
177 self.write_output_files(".txt", actual_text, expected_text) 184 self.write_output_files(".txt", actual_text, expected_text)
178 185
179 def create_text_diff_and_write_result(self, actual_text, expected_text): 186 def create_text_diff_and_write_result(self, actual_text, expected_text):
180 # FIXME: This function is actually doing the diffs as well as writing re sults. 187 # FIXME: This function is actually doing the diffs as well as writing re sults.
181 # It might be better to extract code which does 'diff' and make it a sep arate function. 188 # It might be better to extract code which does 'diff' and make it a sep arate function.
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 'diff_filename': self._output_testname(self.FILENAME_SUFFIX_IMAGE_DI FF), 274 'diff_filename': self._output_testname(self.FILENAME_SUFFIX_IMAGE_DI FF),
268 'prefix': self._output_testname(''), 275 'prefix': self._output_testname(''),
269 } 276 }
270 self._write_file(diffs_html_filename, html) 277 self._write_file(diffs_html_filename, html)
271 278
272 def write_reftest(self, src_filepath): 279 def write_reftest(self, src_filepath):
273 fs = self._filesystem 280 fs = self._filesystem
274 dst_dir = fs.dirname(fs.join(self._root_output_dir, self._test_name)) 281 dst_dir = fs.dirname(fs.join(self._root_output_dir, self._test_name))
275 dst_filepath = fs.join(dst_dir, fs.basename(src_filepath)) 282 dst_filepath = fs.join(dst_dir, fs.basename(src_filepath))
276 self._write_file(dst_filepath, fs.read_binary_file(src_filepath)) 283 self._write_file(dst_filepath, fs.read_binary_file(src_filepath))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698