Title: [92886] trunk/Tools
Revision
92886
Author
[email protected]
Date
2011-08-11 15:56:22 -0700 (Thu, 11 Aug 2011)

Log Message

Add unexpected-passes.html to TestFailures for marking tests as passing
https://bugs.webkit.org/show_bug.cgi?id=66102

Reviewed by Dimitri Glazkov.

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js:
    - Move some code into the library so it can be shared.
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/ui.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/ui_unittests.js:
    - Add round-trip unit tests.
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/unexpected-passes.html: Added.
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/unexpected-passes.js: Added.
    - I'm not entirely sure this feature should remain a separate HTML
      file, but it seemed better than cluttering up the main HTML file
      with too much extra stuff.
* Scripts/webkitpy/tool/servers/gardeningserver.py:
* Scripts/webkitpy/tool/servers/gardeningserver_unittest.py:
    - The gardening server couldn't handle adding PASS expectations.  Now it can.

Modified Paths

Added Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html (92885 => 92886)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html	2011-08-11 22:48:34 UTC (rev 92885)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html	2011-08-11 22:56:22 UTC (rev 92886)
@@ -36,7 +36,7 @@
 <div class="butterbar"><span class="status">Loading...</span></div>
 <div class="infobar"><span class="status"></span></div>
 <div class="actions">
-    <button class="show-selected-failures">Show Selected Failures</button><button class="rebaseline-selected">Rebaseline Selected</button><button class="add-selected-expectations">Mark Selected as Expected</button><button class="refresh">Refresh</button>
+    <button class="show-selected-failures">Show Selected Failures</button><button class="rebaseline-selected">Rebaseline Selected</button><button class="update-expectations-selected">Mark Selected as Expected</button><button class="refresh">Refresh</button>
 </div>
 <div class="recent-history"></div>
 <div class="results-detail">

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js (92885 => 92886)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js	2011-08-11 22:48:34 UTC (rev 92885)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js	2011-08-11 22:56:22 UTC (rev 92886)
@@ -192,20 +192,7 @@
     $('.test input:checkbox').each(function() {
         if (!this.checked)
             return;
-        var testSummary = $(this).parents('.result');
-        var testName = testSummary.attr(config.kTestNameAttr);
-        $('.builder', testSummary).each(function() {
-            var failureTypes = $(this).attr(config.kFailureTypesAttr);
-            if (!failureTypes)
-                return
-            var failureTypeList = failureTypes.split(' ');
-            var builderName = $(this).attr(config.kBuilderNameAttr);
-            failureInfoList.push({
-                'testName': testName,
-                'builderName': builderName,
-                'failureTypeList': failureTypeList,
-            });
-        });
+        failureInfoList = failureInfoList.concat(ui.failureInfoListForSummary($(this).parents('.result')));
     });
 
     return failureInfoList;

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js (92885 => 92886)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js	2011-08-11 22:48:34 UTC (rev 92885)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js	2011-08-11 22:56:22 UTC (rev 92886)
@@ -149,4 +149,20 @@
     });
 };
 
+model.analyzeUnexpectedSuccesses = function(callback)
+{
+    var unexpectedSuccesses = results.unexpectedSuccessesByTest(model.state.resultsByBuilder);
+    $.each(unexpectedSuccesses, function(testName, resultNodesByBuilder) {
+        var successAnalysis = {
+            'testName': testName,
+            'resultNodesByBuilder': resultNodesByBuilder,
+        };
+
+        // FIXME: Consider looking at the history to see how long this test
+        // has been unexpectedly passing.
+
+        callback(successAnalysis);
+    });
+};
+
 })();

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/ui.js (92885 => 92886)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/ui.js	2011-08-11 22:48:34 UTC (rev 92885)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/ui.js	2011-08-11 22:56:22 UTC (rev 92886)
@@ -141,6 +141,27 @@
     return block;
 };
 
+ui.failureInfoListForSummary = function(testSummary)
+{
+    var failureInfoList = [];
+
+    var testName = testSummary.attr(config.kTestNameAttr);
+    $('.builder', testSummary).each(function() {
+        var failureTypes = $(this).attr(config.kFailureTypesAttr);
+        if (!failureTypes)
+            return
+        var failureTypeList = failureTypes.split(' ');
+        var builderName = $(this).attr(config.kBuilderNameAttr);
+        failureInfoList.push({
+            'testName': testName,
+            'builderName': builderName,
+            'failureTypeList': failureTypeList,
+        });
+    });
+
+    return failureInfoList;
+};
+
 ui.commitEntry = function(commitData)
 {
     var entry = $('<td class="entry"></td>');

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/ui_unittests.js (92885 => 92886)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/ui_unittests.js	2011-08-11 22:48:34 UTC (rev 92885)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/ui_unittests.js	2011-08-11 22:56:22 UTC (rev 92886)
@@ -107,5 +107,38 @@
         '</table>');
 });
 
+test("summarizeFailure", 1, function() {
+    var failureAnalysis = {
+        "testName": "svg/dynamic-updates/SVGFETurbulenceElement-svgdom-baseFrequency-prop.html",
+        "resultNodesByBuilder": {
+            "Webkit Mac10.5": {
+                "expected": "IMAGE",
+                "actual": "PASS"
+            },
+            "Webkit Mac10.5 (dbg)(2)": {
+                "expected": "IMAGE",
+                "actual":"PASS"
+            }
+        }
+    }
 
+    var failureSummary = ui.summarizeFailure(failureAnalysis);
+    var failureInfoList = ui.failureInfoListForSummary(failureSummary);
+
+    deepEqual(failureInfoList, [{
+        "testName": "svg/dynamic-updates/SVGFETurbulenceElement-svgdom-baseFrequency-prop.html",
+        "builderName": "Webkit Mac10.5",
+        "failureTypeList": [
+            "PASS"
+        ]
+      }, {
+        "testName": "svg/dynamic-updates/SVGFETurbulenceElement-svgdom-baseFrequency-prop.html",
+        "builderName": "Webkit Mac10.5 (dbg)(2)",
+        "failureTypeList": [
+            "PASS"
+        ]
+      }
+    ]);
+});
+
 })();

Copied: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/unexpected-passes.html (from rev 92885, trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html) (0 => 92886)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/unexpected-passes.html	                        (rev 0)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/unexpected-passes.html	2011-08-11 22:56:22 UTC (rev 92886)
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<!--
+Copyright (C) 2011 Google Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<html>
+<head>
+<title>Unexpected Passes</title>
+<link rel="stylesheet" href=""
+</head>
+<body>
+<div class="actions">
+    <button class="update-expectations-selected">Mark Selected as Expected</button>
+</div>
+<div class="recent-history"><table class="changelog"></table></div>
+<script src="" 
+<script src=""
+<script src=""
+<script src=""
+<script src=""
+<script src=""
+<script src=""
+<script src=""
+<script src=""
+<script src=""
+<script src=""
+<script src=""
+</body>
+</html>

Added: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/unexpected-passes.js (0 => 92886)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/unexpected-passes.js	                        (rev 0)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/unexpected-passes.js	2011-08-11 22:56:22 UTC (rev 92886)
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+(function() {
+
+function selectedSuccesses()
+{
+    var failureInfoList = [];
+
+    $('.test input:checkbox').each(function() {
+        if (!this.checked)
+            return;
+        failureInfoList = failureInfoList.concat(ui.failureInfoListForSummary($(this).parents('.result')));
+    });
+
+    return failureInfoList;
+}
+
+function updateExpectationsForSelected()
+{
+    checkout.updateExpectations(selectedSuccesses(), $.noop);
+}
+
+function showUnexpectedSuccess(successAnalysis)
+{
+    // FIXME: Rename summarizeFailure to make it appropriate to use here.
+    $('.recent-history table').append(ui.summarizeFailure(successAnalysis));
+}
+
+function update()
+{
+    model.updateResultsByBuilder(function() {
+        model.analyzeUnexpectedSuccesses(showUnexpectedSuccess);
+    });
+}
+
+$('.update-expectations-selected').live('click', updateExpectationsForSelected);
+
+$(document).ready(update);
+
+})();

Modified: trunk/Tools/ChangeLog (92885 => 92886)


--- trunk/Tools/ChangeLog	2011-08-11 22:48:34 UTC (rev 92885)
+++ trunk/Tools/ChangeLog	2011-08-11 22:56:22 UTC (rev 92886)
@@ -1,3 +1,26 @@
+2011-08-11  Adam Barth  <[email protected]>
+
+        Add unexpected-passes.html to TestFailures for marking tests as passing
+        https://bugs.webkit.org/show_bug.cgi?id=66102
+
+        Reviewed by Dimitri Glazkov.
+
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js:
+            - Move some code into the library so it can be shared.
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/ui.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/ui_unittests.js:
+            - Add round-trip unit tests.
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/unexpected-passes.html: Added.
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/unexpected-passes.js: Added.
+            - I'm not entirely sure this feature should remain a separate HTML
+              file, but it seemed better than cluttering up the main HTML file
+              with too much extra stuff.
+        * Scripts/webkitpy/tool/servers/gardeningserver.py:
+        * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py:
+            - The gardening server couldn't handle adding PASS expectations.  Now it can.
+
 2011-08-11  Eric Seidel  <[email protected]>
 
         NRWT has wrong fallback order for Mac now that Lion exists

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py (92885 => 92886)


--- trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py	2011-08-11 22:48:34 UTC (rev 92885)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py	2011-08-11 22:56:22 UTC (rev 92886)
@@ -71,7 +71,8 @@
         updated_expectation_lines = []
         # FIXME: Group failures by testName+failureTypeList.
         for failure_info in failure_info_list:
-            expectation_set = set(filter(None, map(TestExpectations.expectation_from_string, failure_info['failureTypeList'])))
+            expectation_set = set(filter(lambda expectation: expectation is not None,
+                                         map(TestExpectations.expectation_from_string, failure_info['failureTypeList'])))
             assert(expectation_set)
             test_name = failure_info['testName']
             assert(test_name)

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver_unittest.py (92885 => 92886)


--- trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver_unittest.py	2011-08-11 22:48:34 UTC (rev 92885)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver_unittest.py	2011-08-11 22:56:22 UTC (rev 92886)
@@ -151,6 +151,12 @@
         expectations_after = "BUG_NEW XP RELEASE CPU : failures/expected/image.html = IMAGE"
         self.assert_update(failure_info_list, expectations_before=expectations_before, expectations_after=expectations_after)
 
+    def test_pass_expectation(self):
+        failure_info_list = [{"testName": "failures/expected/image.html", "builderName": "Webkit Win", "failureTypeList": ["PASS"]}]
+        expectations_before = "BUG_OLD XP RELEASE CPU : failures/expected/image.html = TEXT"
+        expectations_after = ""
+        self.assert_update(failure_info_list, expectations_before=expectations_before, expectations_after=expectations_after)
+
     def test_supplement_old_expectation(self):
         failure_info_list = [{"testName": "failures/expected/image.html", "builderName": "Webkit Win", "failureTypeList": ["IMAGE"]}]
         expectations_before = "BUG_OLD XP RELEASE :  failures/expected/image.html = TEXT"
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to