Index: Tools/Scripts/webkitpy/layout_tests/models/test_failures.py |
diff --git a/Tools/Scripts/webkitpy/layout_tests/models/test_failures.py b/Tools/Scripts/webkitpy/layout_tests/models/test_failures.py |
index 87cd1df723a522bfb23c6c28f8daccb96aa74070..2a1b87c15c3773e0513d2bd61bfcca9ed3ddc51b 100644 |
--- a/Tools/Scripts/webkitpy/layout_tests/models/test_failures.py |
+++ b/Tools/Scripts/webkitpy/layout_tests/models/test_failures.py |
@@ -33,11 +33,14 @@ from webkitpy.layout_tests.models import test_expectations |
def is_reftest_failure(failure_list): |
failure_types = [type(f) for f in failure_list] |
- return set((FailureReftestMismatch, FailureReftestMismatchDidNotOccur, FailureReftestNoImagesGenerated)).intersection(failure_types) |
+ return set((FailureReftestMismatch, FailureReftestMismatchDidNotOccur, FailureReftestNoImagesGenerated)).intersection( |
+ failure_types) |
# FIXME: This is backwards. Each TestFailure subclass should know what |
# test_expectation type it corresponds too. Then this method just |
# collects them all from the failure list and returns the worst one. |
+ |
+ |
def determine_result_type(failure_list): |
"""Takes a set of test_failures and returns which result type best fits |
the list of failures. "Best fits" means we use the worst type of failure. |
@@ -77,11 +80,12 @@ def determine_result_type(failure_list): |
elif is_audio_failure: |
return test_expectations.AUDIO |
else: |
- raise ValueError("unclassifiable set of failures: " |
+ raise ValueError('unclassifiable set of failures: ' |
+ str(failure_types)) |
class TestFailure(object): |
+ |
"""Abstract base class that defines the failure interface.""" |
@staticmethod |
@@ -112,18 +116,20 @@ class TestFailure(object): |
class FailureTimeout(TestFailure): |
+ |
def __init__(self, is_reftest=False): |
super(FailureTimeout, self).__init__() |
self.is_reftest = is_reftest |
def message(self): |
- return "test timed out" |
+ return 'test timed out' |
def driver_needs_restart(self): |
return True |
class FailureCrash(TestFailure): |
+ |
def __init__(self, is_reftest=False, process_name='content_shell', pid=None): |
super(FailureCrash, self).__init__() |
self.process_name = process_name |
@@ -132,68 +138,78 @@ class FailureCrash(TestFailure): |
def message(self): |
if self.pid: |
- return "%s crashed [pid=%d]" % (self.process_name, self.pid) |
- return self.process_name + " crashed" |
+ return '%s crashed [pid=%d]' % (self.process_name, self.pid) |
+ return self.process_name + ' crashed' |
def driver_needs_restart(self): |
return True |
class FailureLeak(TestFailure): |
+ |
def __init__(self, is_reftest=False, log=''): |
super(FailureLeak, self).__init__() |
self.is_reftest = is_reftest |
self.log = log |
def message(self): |
- return "leak detected: %s" % (self.log) |
+ return 'leak detected: %s' % (self.log) |
class FailureMissingResult(TestFailure): |
+ |
def message(self): |
- return "-expected.txt was missing" |
+ return '-expected.txt was missing' |
class FailureTestHarnessAssertion(TestFailure): |
+ |
def message(self): |
- return "asserts failed" |
+ return 'asserts failed' |
class FailureTextMismatch(TestFailure): |
+ |
def message(self): |
- return "text diff" |
+ return 'text diff' |
class FailureMissingImageHash(TestFailure): |
+ |
def message(self): |
- return "-expected.png was missing an embedded checksum" |
+ return '-expected.png was missing an embedded checksum' |
class FailureMissingImage(TestFailure): |
+ |
def message(self): |
- return "-expected.png was missing" |
+ return '-expected.png was missing' |
class FailureImageHashMismatch(TestFailure): |
+ |
def message(self): |
- return "image diff" |
+ return 'image diff' |
class FailureImageHashIncorrect(TestFailure): |
+ |
def message(self): |
- return "-expected.png embedded checksum is incorrect" |
+ return '-expected.png embedded checksum is incorrect' |
class FailureReftestMismatch(TestFailure): |
+ |
def __init__(self, reference_filename=None): |
super(FailureReftestMismatch, self).__init__() |
self.reference_filename = reference_filename |
def message(self): |
- return "reference mismatch" |
+ return 'reference mismatch' |
class FailureReftestMismatchDidNotOccur(TestFailure): |
+ |
def __init__(self, reference_filename=None): |
super(FailureReftestMismatchDidNotOccur, self).__init__() |
self.reference_filename = reference_filename |
@@ -203,6 +219,7 @@ class FailureReftestMismatchDidNotOccur(TestFailure): |
class FailureReftestNoImagesGenerated(TestFailure): |
+ |
def __init__(self, reference_filename=None): |
super(FailureReftestNoImagesGenerated, self).__init__() |
self.reference_filename = reference_filename |
@@ -212,18 +229,21 @@ class FailureReftestNoImagesGenerated(TestFailure): |
class FailureMissingAudio(TestFailure): |
+ |
def message(self): |
- return "expected audio result was missing" |
+ return 'expected audio result was missing' |
class FailureAudioMismatch(TestFailure): |
+ |
def message(self): |
- return "audio mismatch" |
+ return 'audio mismatch' |
class FailureEarlyExit(TestFailure): |
+ |
def message(self): |
- return "skipped due to early exit" |
+ return 'skipped due to early exit' |
# Convenient collection of all failure classes for anything that might |