Changeset 126188 in webkit
- Timestamp:
- Aug 21, 2012 2:36:15 PM (12 years ago)
- Location:
- trunk/Tools
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r126185 r126188 1 2012-08-21 Dirk Pranke <dpranke@chromium.org> 2 3 _compare_image() swaps actual and expected images by mistake 4 https://bugs.webkit.org/show_bug.cgi?id=94567 5 6 Reviewed by Ojan Vafai. 7 8 Re-work the code so that we consistently pass (expected, actual) 9 across all of the compare/diff routines. 10 11 * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: 12 (SingleTestRunner._run_compare_test): 13 (SingleTestRunner._compare_output): 14 (SingleTestRunner._compare_text): 15 (SingleTestRunner._compare_audio): 16 (SingleTestRunner._compare_image): 17 (SingleTestRunner._run_reftest): 18 (SingleTestRunner._compare_output_with_reference): 19 * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: 20 (write_test_result): 21 1 22 2012-08-21 Adam Barth <abarth@webkit.org> 2 23 -
trunk/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py
r126070 r126188 111 111 driver_output.strip_metrics() 112 112 113 test_result = self._compare_output( driver_output, expected_driver_output)113 test_result = self._compare_output(expected_driver_output, driver_output) 114 114 if self._options.new_test_results: 115 115 self._add_missing_baselines(test_result, driver_output) … … 210 210 return failures 211 211 212 def _compare_output(self, driver_output, expected_driver_output):212 def _compare_output(self, expected_driver_output, driver_output): 213 213 failures = [] 214 214 failures.extend(self._handle_error(driver_output)) … … 219 219 return TestResult(self._test_name, failures, driver_output.test_time, driver_output.has_stderr()) 220 220 221 failures.extend(self._compare_text( driver_output.text, expected_driver_output.text))222 failures.extend(self._compare_audio( driver_output.audio, expected_driver_output.audio))221 failures.extend(self._compare_text(expected_driver_output.text, driver_output.text)) 222 failures.extend(self._compare_audio(expected_driver_output.audio, driver_output.audio)) 223 223 if self._should_run_pixel_test: 224 failures.extend(self._compare_image( driver_output, expected_driver_output))224 failures.extend(self._compare_image(expected_driver_output, driver_output)) 225 225 return TestResult(self._test_name, failures, driver_output.test_time, driver_output.has_stderr()) 226 226 227 def _compare_text(self, actual_text, expected_text):227 def _compare_text(self, expected_text, actual_text): 228 228 failures = [] 229 229 if (expected_text and actual_text and 230 230 # Assuming expected_text is already normalized. 231 self._port.do_text_results_differ( self._get_normalized_output_text(actual_text), expected_text)):231 self._port.do_text_results_differ(expected_text, self._get_normalized_output_text(actual_text))): 232 232 failures.append(test_failures.FailureTextMismatch()) 233 233 elif actual_text and not expected_text: … … 235 235 return failures 236 236 237 def _compare_audio(self, actual_audio, expected_audio):237 def _compare_audio(self, expected_audio, actual_audio): 238 238 failures = [] 239 239 if (expected_audio and actual_audio and 240 self._port.do_audio_results_differ( actual_audio, expected_audio)):240 self._port.do_audio_results_differ(expected_audio, actual_audio)): 241 241 failures.append(test_failures.FailureAudioMismatch()) 242 242 elif actual_audio and not expected_audio: … … 255 255 # FIXME: This function also creates the image diff. Maybe that work should 256 256 # be handled elsewhere? 257 def _compare_image(self, driver_output, expected_driver_output):257 def _compare_image(self, expected_driver_output, driver_output): 258 258 failures = [] 259 259 # If we didn't produce a hash file, this test must be text-only. … … 265 265 failures.append(test_failures.FailureMissingImageHash()) 266 266 elif driver_output.image_hash != expected_driver_output.image_hash: 267 diff_result = self._port.diff_image( driver_output.image, expected_driver_output.image)267 diff_result = self._port.diff_image(expected_driver_output.image, driver_output.image) 268 268 err_str = diff_result[2] 269 269 # FIXME: see https://bugs.webkit.org/show_bug.cgi?id=94277 and … … 299 299 reference_test_name = self._port.relative_test_filename(reference_filename) 300 300 reference_output = self._driver.run_test(DriverInput(reference_test_name, self._timeout, test_output.image_hash, should_run_pixel_test=True), self._stop_when_done) 301 test_result = self._compare_output_with_reference( test_output, reference_output, reference_filename, expectation == '!=')301 test_result = self._compare_output_with_reference(reference_output, test_output, reference_filename, expectation == '!=') 302 302 303 303 if (expectation == '!=' and test_result.failures) or (expectation == '==' and not test_result.failures): … … 309 309 return TestResult(self._test_name, test_result.failures, total_test_time + test_result.test_run_time, test_result.has_stderr) 310 310 311 def _compare_output_with_reference(self, driver_output1, driver_output2, reference_filename, mismatch):312 total_test_time = driver_output1.test_time + driver_output2.test_time313 has_stderr = driver_output1.has_stderr() or driver_output2.has_stderr()314 failures = [] 315 failures.extend(self._handle_error( driver_output1))311 def _compare_output_with_reference(self, reference_driver_output, actual_driver_output, reference_filename, mismatch): 312 total_test_time = reference_driver_output.test_time + actual_driver_output.test_time 313 has_stderr = reference_driver_output.has_stderr() or actual_driver_output.has_stderr() 314 failures = [] 315 failures.extend(self._handle_error(actual_driver_output)) 316 316 if failures: 317 317 # Don't continue any more if we already have crash or timeout. 318 318 return TestResult(self._test_name, failures, total_test_time, has_stderr) 319 failures.extend(self._handle_error( driver_output2, reference_filename=reference_filename))319 failures.extend(self._handle_error(reference_driver_output, reference_filename=reference_filename)) 320 320 if failures: 321 321 return TestResult(self._test_name, failures, total_test_time, has_stderr) … … 325 325 return TestResult(self._test_name, failures, total_test_time, has_stderr) 326 326 327 if not driver_output1.image_hash and not driver_output2.image_hash:327 if not reference_driver_output.image_hash and not actual_driver_output.image_hash: 328 328 failures.append(test_failures.FailureReftestNoImagesGenerated(reference_filename)) 329 329 elif mismatch: 330 if driver_output1.image_hash == driver_output2.image_hash:330 if reference_driver_output.image_hash == actual_driver_output.image_hash: 331 331 failures.append(test_failures.FailureReftestMismatchDidNotOccur(reference_filename)) 332 elif driver_output1.image_hash != driver_output2.image_hash:332 elif reference_driver_output.image_hash != actual_driver_output.image_hash: 333 333 failures.append(test_failures.FailureReftestMismatch(reference_filename)) 334 334 335 335 # recompute in case we added to stderr during diff_image 336 has_stderr = driver_output1.has_stderr() or driver_output2.has_stderr()336 has_stderr = reference_driver_output.has_stderr() or actual_driver_output.has_stderr() 337 337 338 338 return TestResult(self._test_name, failures, total_test_time, has_stderr) -
trunk/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer.py
r124958 r126188 70 70 # FIXME: We should always have 2 images here. 71 71 if driver_output.image and expected_driver_output.image: 72 diff_image, diff_percent, err_str = port.diff_image( driver_output.image, expected_driver_output.image, tolerance=0)72 diff_image, diff_percent, err_str = port.diff_image(expected_driver_output.image, driver_output.image, tolerance=0) 73 73 if diff_image: 74 74 writer.write_image_diff_files(diff_image) -
trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium.py
r124958 r126188 217 217 218 218 executable = self._path_to_image_diff() 219 # Note that although we are handed 'old', 'new', image_diff wants 'new', 'old'. 219 220 comand = [executable, '--diff', native_actual_filename, native_expected_filename, native_diff_filename] 220 221 -
trunk/Tools/Scripts/webkitpy/layout_tests/port/image_diff.py
r124958 r126188 58 58 if not self._process: 59 59 self._start(tolerance) 60 # Note that although we are handed 'old', 'new', ImageDiff wants 'new', 'old'. 60 61 self._process.write('Content-Length: %d\n%sContent-Length: %d\n%s' % ( 61 62 len(actual_contents), actual_contents,
Note: See TracChangeset
for help on using the changeset viewer.