Title: [106739] trunk/Tools
Revision
106739
Author
[email protected]
Date
2012-02-04 02:22:12 -0800 (Sat, 04 Feb 2012)

Log Message

garden-o-matic's All Failure tab should let you examine and rebaseline expected failures
https://bugs.webkit.org/show_bug.cgi?id=77802

Reviewed by Eric Seidel.

This patch refactors our directory grouping code into base.js where it
can be shared between failures.js and notifications.js.  It then adds
an Examine action to each group of failures that triggers the "results"
view.

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/failures.css:

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js (106738 => 106739)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js	2012-02-04 10:20:07 UTC (rev 106738)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js	2012-02-04 10:22:12 UTC (rev 106739)
@@ -171,12 +171,26 @@
     return filteredTree;
 };
 
+base.forEachDirectory = function(pathList, callback)
+{
+    var pathsByDirectory = {};
+    pathList.forEach(function(path) {
+        var directory = base.dirName(path);
+        pathsByDirectory[directory] = pathsByDirectory[directory] || [];
+        pathsByDirectory[directory].push(path);
+    });
+    Object.keys(pathsByDirectory).sort().forEach(function(directory) {
+        var paths = pathsByDirectory[directory];
+        callback(directory + ' (' + paths.length + ' tests)', paths);
+    });
+};
+
 base.parseJSONP = function(jsonp)
 {
     var startIndex = jsonp.indexOf('(') + 1;
     var endIndex = jsonp.lastIndexOf(')');
     return JSON.parse(jsonp.substr(startIndex, endIndex - startIndex));
-}
+};
 
 base.RequestTracker = function(requestsInFlight, callback, args)
 {

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js (106738 => 106739)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js	2012-02-04 10:20:07 UTC (rev 106738)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js	2012-02-04 10:22:12 UTC (rev 106739)
@@ -104,7 +104,29 @@
     update: function()
     {
         var expectedOrUnexpectedFailures = results.expectedOrUnexpectedFailuresByTest(this._model.resultsByBuilder);
-        this._view.setFailingTests(Object.keys(expectedOrUnexpectedFailures));
+        var failingTestsList = Object.keys(expectedOrUnexpectedFailures);
+
+        $(this._view).empty();
+        base.forEachDirectory(failingTestsList, function(label, testsFailingInDirectory) {
+            var listItem = new ui.failures.ListItem(label, testsFailingInDirectory);
+            this._view.appendChild(listItem);
+            $(listItem).bind('examine', function() {
+                this.onExamine(testsFailingInDirectory);
+            }.bind(this));
+        }.bind(this));
+    },
+    onExamine: function(failingTestsList)
+    {
+        var resultsView = new ui.results.View({
+            fetchResultsURLs: results.fetchResultsURLs
+        });
+        var failuresByTest = base.filterDictionary(
+            results.expectedOrUnexpectedFailuresByTest(this._model.resultsByBuilder),
+            function(key) {
+                return failingTestsList.indexOf(key) != -1;
+            });
+        var controller = new controllers.ResultsDetails(resultsView, failuresByTest);
+        this._delegate.showResults(resultsView);
     }
 });
 

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures.js (106738 => 106739)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures.js	2012-02-04 10:20:07 UTC (rev 106738)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures.js	2012-02-04 10:22:12 UTC (rev 106739)
@@ -127,18 +127,23 @@
     }
 });
 
-ui.failures.List = base.extends('div', {
+ui.failures.ListItem = base.extends('li', {
+    init: function(groupName, failingTestsList)
+    {
+        this._failingTestsList = failingTestsList;
+        this.appendChild(new ui.actions.List([
+            new ui.actions.Examine().makeDefault(),
+        ]));
+        var label = this.appendChild(document.createElement('label'))
+        label.textContent = failingTestsList.length == 1 ? failingTestsList[0] : groupName;
+    },
+});
+
+ui.failures.List = base.extends('ul', {
     init: function()
     {
+        this.className = 'failures';
         this.textContent = 'Loading...';
-    },
-    setFailingTests: function(failingTestsList)
-    {
-        $(this).empty();
-        var list = this.appendChild(document.createElement('ul'));
-        failingTestsList.sort().forEach(function(failingTest) {
-            list.appendChild(document.createElement('li')).textContent = failingTest;
-        });
     }
 });
 

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js (106738 => 106739)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js	2012-02-04 10:20:07 UTC (rev 106738)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js	2012-02-04 10:22:12 UTC (rev 106739)
@@ -182,21 +182,13 @@
     },
     _forEachTestGroup: function(callback)
     {
-        var testsByDirectory = {};
-        this._testNameList.forEach(function(testName) {
-            var directory = base.dirName(testName);
-            testsByDirectory[directory] = testsByDirectory[directory] || [];
-            testsByDirectory[directory].push(testName);
-        });
         var individualTests = [];
-        Object.keys(testsByDirectory).forEach(function(directory) {
-            var testsInDirectory = testsByDirectory[directory];
-            var count = testsInDirectory.length;
-            if (count <= kMaxTestsPerGroup) {
+        base.forEachDirectory(this._testNameList, function(groupLabel, testsInDirectory) {
+            if (testsInDirectory.length <= kMaxTestsPerGroup) {
                 individualTests = individualTests.concat(testsInDirectory);
                 return;
             }
-            callback(directory + ' (' + count + ' tests)', testsInDirectory);
+            callback(groupLabel, testsInDirectory);
         });
         individualTests.forEach(function(testName) {
             callback(testName, [testName]);

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js (106738 => 106739)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js	2012-02-04 10:20:07 UTC (rev 106738)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js	2012-02-04 10:22:12 UTC (rev 106739)
@@ -218,8 +218,8 @@
         '<div class="what">' +
             '<div class="problem">' +
                 '<ul class="effects">' +
+                    '<li><a target="_blank" href="" +
                     '<li><a target="_blank" href="" +
-                    '<li><a target="_blank" href="" +
                 '</ul>' +
                 '<ul class="actions">' +
                     '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
@@ -263,8 +263,8 @@
         '<div class="what">' +
             '<div class="problem">' +
                 '<ul class="effects">' +
+                    '<li><a target="_blank" href="" +
                     '<li><a target="_blank" href="" +
-                    '<li><a target="_blank" href="" +
                 '</ul>' +
                 '<ul class="actions">' +
                     '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/failures.css (106738 => 106739)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/failures.css	2012-02-04 10:20:07 UTC (rev 106738)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/failures.css	2012-02-04 10:22:12 UTC (rev 106739)
@@ -51,3 +51,25 @@
     a.failing-builder>span.graphics {
         padding: 0 2px;
     }
+
+
+ul.failures {
+    padding: 0px;
+}
+
+    ul.failures>li {
+        display: -webkit-box;
+    }
+
+    ul.failures>li label {
+        margin-left: 10px;
+    }
+
+        ul.failures>li ul.actions {
+            padding: 0px;
+            visibility: hidden;
+        }
+
+        ul.failures>li:hover ul.actions {
+            visibility: visible;
+        }

Modified: trunk/Tools/ChangeLog (106738 => 106739)


--- trunk/Tools/ChangeLog	2012-02-04 10:20:07 UTC (rev 106738)
+++ trunk/Tools/ChangeLog	2012-02-04 10:22:12 UTC (rev 106739)
@@ -1,3 +1,22 @@
+2012-02-04  Adam Barth  <[email protected]>
+
+        garden-o-matic's All Failure tab should let you examine and rebaseline expected failures
+        https://bugs.webkit.org/show_bug.cgi?id=77802
+
+        Reviewed by Eric Seidel.
+
+        This patch refactors our directory grouping code into base.js where it
+        can be shared between failures.js and notifications.js.  It then adds
+        an Examine action to each group of failures that triggers the "results"
+        view.
+
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/failures.css:
+
 2012-02-04  Ojan Vafai  <[email protected]>
 
         check-webkit-style is throwing an exception
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to