Title: [111287] trunk/Tools
- Revision
- 111287
- Author
- [email protected]
- Date
- 2012-03-19 18:21:16 -0700 (Mon, 19 Mar 2012)
Log Message
webkitpy: allow instance data in TestFailure objects
https://bugs.webkit.org/show_bug.cgi?id=81580
Reviewed by Tony Chang.
Current TestFailures are basically enums, but it would be nice,
especially for crashes, if they contained the name and pid of
the process that crashed.
* Scripts/webkitpy/layout_tests/models/test_failures.py:
(TestFailure.message):
(FailureTimeout.message):
(FailureCrash):
(FailureCrash.__init__):
(FailureCrash.message):
(FailureMissingResult.message):
(FailureTextMismatch.message):
(FailureMissingImageHash.message):
(FailureMissingImage.message):
(FailureImageHashMismatch.message):
(FailureImageHashIncorrect.message):
(FailureReftestMismatch.message):
(FailureReftestMismatchDidNotOccur.message):
(FailureReftestNoImagesGenerated.message):
(FailureMissingAudio.message):
(FailureAudioMismatch.message):
* Scripts/webkitpy/layout_tests/models/test_failures_unittest.py:
(TestFailuresTest.test_equals):
(TestFailuresTest):
(TestFailuresTest.test_crashes):
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (111286 => 111287)
--- trunk/Tools/ChangeLog 2012-03-20 01:16:20 UTC (rev 111286)
+++ trunk/Tools/ChangeLog 2012-03-20 01:21:16 UTC (rev 111287)
@@ -1,3 +1,36 @@
+2012-03-19 Dirk Pranke <[email protected]>
+
+ webkitpy: allow instance data in TestFailure objects
+ https://bugs.webkit.org/show_bug.cgi?id=81580
+
+ Reviewed by Tony Chang.
+
+ Current TestFailures are basically enums, but it would be nice,
+ especially for crashes, if they contained the name and pid of
+ the process that crashed.
+
+ * Scripts/webkitpy/layout_tests/models/test_failures.py:
+ (TestFailure.message):
+ (FailureTimeout.message):
+ (FailureCrash):
+ (FailureCrash.__init__):
+ (FailureCrash.message):
+ (FailureMissingResult.message):
+ (FailureTextMismatch.message):
+ (FailureMissingImageHash.message):
+ (FailureMissingImage.message):
+ (FailureImageHashMismatch.message):
+ (FailureImageHashIncorrect.message):
+ (FailureReftestMismatch.message):
+ (FailureReftestMismatchDidNotOccur.message):
+ (FailureReftestNoImagesGenerated.message):
+ (FailureMissingAudio.message):
+ (FailureAudioMismatch.message):
+ * Scripts/webkitpy/layout_tests/models/test_failures_unittest.py:
+ (TestFailuresTest.test_equals):
+ (TestFailuresTest):
+ (TestFailuresTest.test_crashes):
+
2012-03-19 Brady Eidson <[email protected]>
<rdar://problem/10917120> and https://bugs.webkit.org/show_bug.cgi?id=81066
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/models/test_failures.py (111286 => 111287)
--- trunk/Tools/Scripts/webkitpy/layout_tests/models/test_failures.py 2012-03-20 01:16:20 UTC (rev 111286)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/models/test_failures.py 2012-03-20 01:21:16 UTC (rev 111287)
@@ -85,8 +85,7 @@
"""Creates a TestFailure object from the specified string."""
return cPickle.loads(s)
- @staticmethod
- def message():
+ def message(self):
"""Returns a string describing the failure in more detail."""
raise NotImplementedError
@@ -113,8 +112,7 @@
def __init__(self, is_reftest=False):
self.is_reftest = is_reftest
- @staticmethod
- def message():
+ def message(self):
return "Test timed out"
def driver_needs_restart(self):
@@ -122,14 +120,16 @@
class FailureCrash(TestFailure):
- """DumpRenderTree crashed."""
- def __init__(self, is_reftest=False):
+ """DumpRenderTree/WebKitTestRunner crashed."""
+ def __init__(self, is_reftest=False, process_name='DumpRenderTree', pid=None):
+ self.process_name = process_name
+ self.pid = pid
self.is_reftest = is_reftest
- @staticmethod
- def message():
- # FIXME: This is wrong for WebKit2 (which uses WebKitTestRunner).
- return "DumpRenderTree crashed"
+ def message(self):
+ if self.pid:
+ return "%s (pid %d) crashed" % (self.process_name, self.pid)
+ return self.process_name + " crashed"
def driver_needs_restart(self):
return True
@@ -138,32 +138,28 @@
class FailureMissingResult(TestFailure):
"""Expected result was missing."""
- @staticmethod
- def message():
+ def message(self):
return "No expected results found"
class FailureTextMismatch(TestFailure):
"""Text diff output failed."""
- @staticmethod
- def message():
+ def message(self):
return "Text diff mismatch"
class FailureMissingImageHash(TestFailure):
"""Actual result hash was missing."""
- @staticmethod
- def message():
+ def message(self):
return "No expected image hash found"
class FailureMissingImage(TestFailure):
"""Actual result image was missing."""
- @staticmethod
- def message():
+ def message(self):
return "No expected image found"
@@ -172,16 +168,14 @@
def __init__(self, diff_percent=0):
self.diff_percent = diff_percent
- @staticmethod
- def message():
+ def message(self):
return "Image mismatch"
class FailureImageHashIncorrect(TestFailure):
"""Actual result hash is incorrect."""
- @staticmethod
- def message():
+ def message(self):
return "Images match, expected image hash incorrect. "
@@ -191,8 +185,7 @@
def __init__(self, reference_filename=None):
self.reference_filename = reference_filename
- @staticmethod
- def message():
+ def message(self):
return "Mismatch with reference"
@@ -202,8 +195,7 @@
def __init__(self, reference_filename=None):
self.reference_filename = reference_filename
- @staticmethod
- def message():
+ def message(self):
return "Mismatch with the reference did not occur"
@@ -213,24 +205,21 @@
def __init__(self, reference_filename=None):
self.reference_filename = reference_filename
- @staticmethod
- def message():
+ def message(self):
return "Reftest didn't generate pixel results."
class FailureMissingAudio(TestFailure):
"""Actual result image was missing."""
- @staticmethod
- def message():
+ def message(self):
return "No expected audio found"
class FailureAudioMismatch(TestFailure):
"""Audio files didn't match."""
- @staticmethod
- def message():
+ def message(self):
return "Audio mismatch"
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/models/test_failures_unittest.py (111286 => 111287)
--- trunk/Tools/Scripts/webkitpy/layout_tests/models/test_failures_unittest.py 2012-03-20 01:16:20 UTC (rev 111286)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/models/test_failures_unittest.py 2012-03-20 01:21:16 UTC (rev 111287)
@@ -63,3 +63,7 @@
# The hash happens to be the name of the class, but sets still work:
crash_set = set([FailureCrash(), "FailureCrash"])
self.assertEqual(len(crash_set), 2)
+
+ def test_crashes(self):
+ self.assertEquals(FailureCrash().message(), 'DumpRenderTree crashed')
+ self.assertEquals(FailureCrash(process_name='foo', pid=1234).message(), 'foo (pid 1234) crashed')
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes