Title: [90441] trunk/Tools
Revision
90441
Author
[email protected]
Date
2011-07-06 00:04:02 -0700 (Wed, 06 Jul 2011)

Log Message

2011-07-05  Adam Barth  <[email protected]>

        garden-o-matic should list the failing tests
        https://bugs.webkit.org/show_bug.cgi?id=63978

        Reviewed by Eric Seidel.

        * Scripts/webkitpy/tool/servers/data/gardeningserver/config.js: Added.
        * Scripts/webkitpy/tool/servers/data/gardeningserver/index.html:
        * Scripts/webkitpy/tool/servers/data/gardeningserver/main.js:
        * Scripts/webkitpy/tool/servers/data/gardeningserver/results.js:
        * Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js:
        * Scripts/webkitpy/tool/servers/data/gardeningserver/run-unittests.html:
        * Scripts/webkitpy/tool/servers/data/gardeningserver/ui.js: Added.
        * Scripts/webkitpy/tool/servers/data/gardeningserver/ui_unittests.js: Added.
        * Scripts/webkitpy/tool/servers/gardeningserver.py:

Modified Paths

Added Paths

Diff

Modified: trunk/Tools/ChangeLog (90440 => 90441)


--- trunk/Tools/ChangeLog	2011-07-06 06:59:56 UTC (rev 90440)
+++ trunk/Tools/ChangeLog	2011-07-06 07:04:02 UTC (rev 90441)
@@ -1,3 +1,21 @@
+2011-07-05  Adam Barth  <[email protected]>
+
+        garden-o-matic should list the failing tests
+        https://bugs.webkit.org/show_bug.cgi?id=63978
+
+        Reviewed by Eric Seidel.
+
+        * Scripts/webkitpy/tool/servers/data/gardeningserver/config.js: Added.
+        * Scripts/webkitpy/tool/servers/data/gardeningserver/index.html:
+        * Scripts/webkitpy/tool/servers/data/gardeningserver/main.js:
+        * Scripts/webkitpy/tool/servers/data/gardeningserver/results.js:
+        * Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js:
+        * Scripts/webkitpy/tool/servers/data/gardeningserver/run-unittests.html:
+        * Scripts/webkitpy/tool/servers/data/gardeningserver/ui.js: Added.
+        * Scripts/webkitpy/tool/servers/data/gardeningserver/ui_unittests.js: Added.
+        * Scripts/webkitpy/tool/servers/gardeningserver.py:
+
+
 2011-07-05  Eric Seidel  <[email protected]>
 
         Re-enable NRWT on Leopard now that bug 63973 is fixed.

Added: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/config.js (0 => 90441)


--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/config.js	                        (rev 0)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/config.js	2011-07-06 07:04:02 UTC (rev 90441)
@@ -0,0 +1,22 @@
+var config = config || {};
+
+(function() {
+
+config.builders = [
+  'Webkit Win',
+  'Webkit Vista',
+  // 'Webkit Win7',
+  'Webkit Win (dbg)(1)',
+  'Webkit Win (dbg)(2)',
+  'Webkit Linux',
+  'Webkit Linux 32',
+  'Webkit Linux (dbg)(1)',
+  'Webkit Linux (dbg)(2)',
+  'Webkit Mac10.5',
+  'Webkit Mac10.5 (dbg)(1)',
+  'Webkit Mac10.5 (dbg)(2)',
+  'Webkit Mac10.6',
+  'Webkit Mac10.6 (dbg)',
+];
+
+})();

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/index.html (90440 => 90441)


--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/index.html	2011-07-06 06:59:56 UTC (rev 90440)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/index.html	2011-07-06 07:04:02 UTC (rev 90441)
@@ -10,7 +10,6 @@
 h1 {
   margin: 0px;
   padding: 3px;
-  background-color: #EFF5FB;
 }
 .butterbar {
   width: 500px;
@@ -25,26 +24,36 @@
 .butterbar .hide {
   float: right;
 }
+.toolbar {
+  float: right;
+}
+.failures {
+  padding: 3px;
+}
+.failures .test {
+  margin: 6px 3px;
+}
+.failures .builders {
+  color: #888;
+}
+.failures .builderName, .failures .actual {
+  float: left;
+  width: 200px;
+}
 </style>
 </head>
 <body>
 <div class="butterbar"><span class="status">Loading...</span> <a class="hide" href=""
+<div class="toolbar">
+  <button class="quit">Quit</button>
+</div>
 <h1>Garden-O-Matic</h1>
-<ul>
-  <li><button class="quit">Quit</button></li>
-</ul>
+<div class="failures"></div>
 <script src="" 
+<script src=""
 <script src=""
 <script src=""
+<script src=""
 <script src=""
-<script>
-function logUnexpectedFailures(builderResults) {
-    unexpectedFailures = builderResults.unexpectedFailures();
-    console.log('== Unexpected Failures ==')
-    console.log(unexpectedFailures);
-}
-
-results.fetchResultsForBuilder('Webkit Linux', logUnexpectedFailures);
-</script>
 </body>
 </html>

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/main.js (90440 => 90441)


--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/main.js	2011-07-06 06:59:56 UTC (rev 90440)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/main.js	2011-07-06 07:04:02 UTC (rev 90441)
@@ -1,19 +1,34 @@
 (function() {
-  function quit() {
+
+function quit()
+{
     $.post('/quitquitquit', function(data){
-      $('.butterbar .status').html(data)
-      $('.butterbar').fadeIn();
+        $('.butterbar .status').html(data)
+        $('.butterbar').fadeIn();
     });
-  }
+}
 
-  function hide() {
+function hide()
+{
     $(this).parent().fadeOut();
-  }
+}
 
-  $('.hide').live('click', hide);
-  $('.quit').live('click', quit);
+function fetchResults(onsuccess)
+{
+    results.fetchResultsByBuilder(config.builders, function(resultsByBuilder) {
+        unexpectedFailures = ui.resultsByTest(results.unexpectedFailuresByTest(resultsByBuilder));
+        $('.failures').append(unexpectedFailures);
+        onsuccess();
+    });
+}
 
-  $(document).ready(function() {
-    $('.butterbar').fadeOut();
-  })
+$('.hide').live('click', hide);
+$('.quit').live('click', quit);
+
+$(document).ready(function() {
+    fetchResults(function() {
+        $('.butterbar').fadeOut();
+    });
+});
+
 })();

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js (90440 => 90441)


--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js	2011-07-06 06:59:56 UTC (rev 90440)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js	2011-07-06 07:04:02 UTC (rev 90441)
@@ -45,15 +45,30 @@
     return !!node.actual;
 }
 
-results.BuilderResults = function(m_resultsJSON)
+results.BuilderResults = function(resultsJSON)
 {
-    this.m_resultsJSON = m_resultsJSON;
-}
+    this.m_resultsJSON = resultsJSON;
+};
 
-results.BuilderResults.prototype.unexpectedFailures = function() {
+results.BuilderResults.prototype.unexpectedFailures = function()
+{
     return base.filterTree(this.m_resultsJSON.tests, isResultNode, isUnexpectedFailure);
-}
+};
 
+results.unexpectedFailuresByTest = function(resultsByBuilder)
+{
+    unexpectedFailures = {};
+
+    $.each(resultsByBuilder, function(buildName, builderResults) {
+        $.each(builderResults.unexpectedFailures(), function(testName, resultNode) {
+            unexpectedFailures[testName] = unexpectedFailures[testName] || {};
+            unexpectedFailures[testName][buildName] = resultNode;
+        });
+    });
+
+    return unexpectedFailures;
+};
+
 function resultsURL(builderName, name)
 {
     return kTestResultsServer + 'testfile' +
@@ -72,6 +87,20 @@
             onsuccess(new results.BuilderResults(data));
         }
     });
-}
+};
 
+results.fetchResultsByBuilder = function(builderNameList, onsuccess)
+{
+    var resultsByBuilder = {}
+    var requestsInFlight = builderNameList.length;
+    $.each(builderNameList, function(index, builderName) {
+        results.fetchResultsForBuilder(builderName, function(builderResults) {
+            resultsByBuilder[builderName] = builderResults;
+            --requestsInFlight;
+            if (!requestsInFlight)
+                onsuccess(resultsByBuilder);
+        });
+    });
+};
+
 })();

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js (90440 => 90441)


--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js	2011-07-06 06:59:56 UTC (rev 90440)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js	2011-07-06 07:04:02 UTC (rev 90441)
@@ -43,3 +43,18 @@
         }
     });
 });
+
+test("unexpectedFailuresByTest", 1, function() {
+    var builderResults = new results.BuilderResults(kExampleResultsJSON);
+    var unexpectedFailuresByTest = results.unexpectedFailuresByTest({
+        "Mock Builder": builderResults
+    });
+    deepEqual(unexpectedFailuresByTest, {
+        "userscripts/another-test.html": {
+            "Mock Builder": {
+                "expected": "PASS",
+                "actual": "TEXT"
+            }
+        }
+    });
+});

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/run-unittests.html (90440 => 90441)


--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/run-unittests.html	2011-07-06 06:59:56 UTC (rev 90440)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/run-unittests.html	2011-07-06 07:04:02 UTC (rev 90441)
@@ -15,5 +15,7 @@
 <script src=""
 <script src=""
 <script src=""
+<script src=""
+<script src=""
 </body>
 </html>

Added: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui.js (0 => 90441)


--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui.js	                        (rev 0)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui.js	2011-07-06 07:04:02 UTC (rev 90441)
@@ -0,0 +1,24 @@
+var ui = ui || {};
+
+(function () {
+
+ui.resultsByTest = function(resultsByTest)
+{
+    var block = $('<div class="results"></div>');
+    $.each(resultsByTest, function(testName, resultNodesByBuilder) {
+        var testBlock = $('<div class="test"><div class="testName"></div><div class="builders"></div></div>');
+        block.append(testBlock);
+        $('.testName', testBlock).text(testName);
+        $.each(resultNodesByBuilder, function(builderName, resultNode) {
+            var builderBlock = $('<div class="builder"><div class="builderName"></div><div class="actual"></div><div class="expected"></div></div>');
+            $('.builders', testBlock).append(builderBlock);
+            $('.builderName', builderBlock).text(builderName);
+            $('.actual', builderBlock).text(resultNode.actual);
+            $('.expected', builderBlock).text(resultNode.expected);
+        });
+    });
+
+    return block;
+};
+
+})();

Added: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui_unittests.js (0 => 90441)


--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui_unittests.js	                        (rev 0)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui_unittests.js	2011-07-06 07:04:02 UTC (rev 90441)
@@ -0,0 +1,38 @@
+module("iu");
+
+var kExampleResultsByTest = {
+    "scrollbars/custom-scrollbar-with-incomplete-style.html": {
+        "Mock Builder": {
+            "expected": "IMAGE",
+            "actual": "CRASH"
+        },
+        "Mock Linux": {
+            "expected": "TEXT",
+            "actual": "CRASH"
+        }
+    },
+    "userscripts/another-test.html": {
+        "Mock Builder": {
+            "expected": "PASS",
+            "actual": "TEXT"
+        }
+    }
+}
+
+test("BuilderResults.resultsByTest", 1, function() {
+    var resultsByTest = ui.resultsByTest(kExampleResultsByTest);
+    equal(resultsByTest.html(),
+        '<div class="test">' +
+            '<div class="testName">scrollbars/custom-scrollbar-with-incomplete-style.html</div>' +
+                '<div class="builders">' +
+                    '<div class="builder"><div class="builderName">Mock Builder</div><div class="actual">CRASH</div><div class="expected">IMAGE</div></div>' +
+                    '<div class="builder"><div class="builderName">Mock Linux</div><div class="actual">CRASH</div><div class="expected">TEXT</div></div>' +
+                '</div>' +
+            '</div>' +
+        '<div class="test">' +
+            '<div class="testName">userscripts/another-test.html</div>' +
+            '<div class="builders">' +
+                '<div class="builder"><div class="builderName">Mock Builder</div><div class="actual">TEXT</div><div class="expected">PASS</div></div>' +
+            '</div>' +
+        '</div>');
+});

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


--- trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py	2011-07-06 06:59:56 UTC (rev 90440)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py	2011-07-06 07:04:02 UTC (rev 90441)
@@ -38,8 +38,10 @@
     STATIC_FILE_NAMES = frozenset([
         "index.html",
         "base.js",
+        "config.js",
         "main.js",
         "results.js",
+        "ui.js",
     ])
 
     STATIC_FILE_DIRECTORY = os.path.join(os.path.dirname(__file__), "data", "gardeningserver")
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to