Title: [92344] trunk/Tools
Revision
92344
Author
[email protected]
Date
2011-08-03 20:02:54 -0700 (Wed, 03 Aug 2011)

Log Message

garden-o-matic details view should queue rebaselines for later execution
https://bugs.webkit.org/show_bug.cgi?id=65636

Reviewed by Dimitri Glazkov.

This patch doesn't contain any confirmation UI, but we'll probably want
that at some point.

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/checkout.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js:

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/checkout.js (92343 => 92344)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/checkout.js	2011-08-04 02:35:41 UTC (rev 92343)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/checkout.js	2011-08-04 03:02:54 UTC (rev 92344)
@@ -37,25 +37,19 @@
     });
 };
 
-checkout.rebaseline = function(builderName, testName, failureTypeList, callback)
+checkout.rebaseline = function(rebaselineTasks, callback)
 {
-    var extensionList = Array.prototype.concat.apply([], failureTypeList.map(results.failureTypeToExtensionList));
-
-    base.callInSequence(function(extension, callback) {
-        $.post('/rebaseline?' + $.param({
-            'builder': builderName,
-            'test': testName,
-            'extension': extension
-        }), function() {
-            callback();
-        });
-    }, extensionList, callback);
-};
-
-checkout.rebaselineAll = function(rebaselineTasks, callback)
-{
     base.callInSequence(function(task, callback) {
-        checkout.rebaseline(task.builderName, task.testName, task.failureTypeList, callback);
+        var extensionList = Array.prototype.concat.apply([], task.failureTypeList.map(results.failureTypeToExtensionList));
+        base.callInSequence(function(extension, callback) {
+            $.post('/rebaseline?' + $.param({
+                'builder': task.builderName,
+                'test': task.testName,
+                'extension': extension
+            }), function() {
+                callback();
+            });
+        }, extensionList, callback);
     }, rebaselineTasks, function() {
         var testNameList = base.uniquifyArray(rebaselineTasks.map(function(task) { return task.testName; }));
         base.callInSequence(checkout.optimizeBaselines, testNameList, callback);

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


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html	2011-08-04 02:35:41 UTC (rev 92343)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html	2011-08-04 03:02:54 UTC (rev 92344)
@@ -21,7 +21,7 @@
 <div class="results-detail">
     <div class="toolbar">
         <div class="actions">
-            <button class="rebaseline default">Rebaseline</button><button class="previous">&#9664;</button><button class="next">&#9654;</button><button class="dismiss">Close</button>
+            <button class="rebaseline default">Add to Rebaseline Queue</button><button class="previous">&#9664;</button><button class="next">&#9654;</button><button class="dismiss">Close</button>
         </div>
         <div class="status"></div>
         <div class="clear"></div>

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


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js	2011-08-04 02:35:41 UTC (rev 92343)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js	2011-08-04 03:02:54 UTC (rev 92344)
@@ -59,6 +59,16 @@
         button.attr('disabled', true)
 }
 
+function rebaseline(rebaselineTasks)
+{
+    displayOnButterbar('Rebaselining...');
+    checkout.rebaseline(rebaselineTasks, function() {
+        dismissButterbar();
+        // FIXME: We should use something like a lightbox rather than alert!
+        alert('New results downloaded to your working copy. Please use "webkit-patch land-cowboy" to land the updated baselines.');
+    });
+}
+
 function showResultsDetail(testName, builderName, failureTypeList)
 {
     var failureTypes = failureTypeList.join(' ');
@@ -97,6 +107,15 @@
     });
 }
 
+function executeQueuedRebaselines()
+{
+    var rebaselineQueue = model.takeRebaselineQueue();
+    if (!rebaselineQueue.length)
+        return;
+    // FIXME: Should we confirm with the use before executing the queue?
+    rebaseline(rebaselineQueue);
+}
+
 function hideResultsDetail()
 {
     $('.results-detail').fadeOut('fast', function() {
@@ -106,11 +125,15 @@
         // but doing so helps the garbage collector free memory.
         g_resultsDetailsIterator = null;
     });
+    executeQueuedRebaselines();
 }
 
 function nextResultsDetail()
 {
-    g_resultsDetailsIterator.callNext();
+    if (g_resultsDetailsIterator.hasNext())
+        g_resultsDetailsIterator.callNext();
+    else
+        hideResultsDetail();
 }
 
 function previousResultsDetail()
@@ -118,7 +141,7 @@
     g_resultsDetailsIterator.callPrevious();
 }
 
-function rebaselineResults()
+function addToRebaselineQueue()
 {
     var failureDetails = $('.failure-details', $(this).parents('.results-detail'));
 
@@ -127,8 +150,8 @@
     var failureTypes = failureDetails.attr(config.kFailureTypesAttr);
     var failureTypeList = failureTypes.split(' ');
 
-    displayOnButterbar('Rebaselining...');
-    checkout.rebaseline(builderName, testName, failureTypeList, dismissButterbar);
+    model.queueForRebaseline(builderName, testName, failureTypeList);
+    nextResultsDetail();
 }
 
 function selectedFailures()
@@ -159,8 +182,7 @@
 
 function rebaselineSelected()
 {
-    displayOnButterbar('Rebaselining...');
-    checkout.rebaselineAll(selectedFailures(), dismissButterbar);
+    rebaseline(selectedFailures());
 }
 
 function showSelectedFailures()
@@ -247,7 +269,7 @@
 
 $('.results-detail .actions .next').live('click', nextResultsDetail);
 $('.results-detail .actions .previous').live('click', previousResultsDetail);
-$('.results-detail .actions .rebaseline').live('click', rebaselineResults);
+$('.results-detail .actions .rebaseline').live('click', addToRebaselineQueue);
 $('.results-detail .actions .dismiss').live('click', hideResultsDetail);
 
 $(document).ready(function() {

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


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js	2011-08-04 02:35:41 UTC (rev 92343)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js	2011-08-04 03:02:54 UTC (rev 92344)
@@ -6,6 +6,7 @@
 
 model.state = {};
 model.state.failureAnalysisByTest = {};
+model.state.rebaselineQueue = []
 
 function findAndMarkRevertedRevisions(commitDataList)
 {
@@ -20,6 +21,22 @@
     });
 }
 
+model.queueForRebaseline = function(builderName, testName, failureTypeList)
+{
+    model.state.rebaselineQueue.push({
+        'builderName': builderName,
+        'testName': testName,
+        'failureTypeList': failureTypeList,
+    });
+};
+
+model.takeRebaselineQueue = function()
+{
+    var queue = model.state.rebaselineQueue;
+    model.state.rebaselineQueue = [];
+    return queue;
+};
+
 model.updateRecentCommits = function(callback)
 {
     trac.recentCommitData('trunk', kCommitLogLength, function(commitDataList) {
@@ -40,6 +57,7 @@
 model.analyzeUnexpectedFailures = function(callback)
 {
     var unexpectedFailures = results.unexpectedFailuresByTest(model.state.resultsByBuilder);
+    console.log(unexpectedFailures);
 
     $.each(model.state.failureAnalysisByTest, function(testName, failureAnalysis) {
         if (!(testName in unexpectedFailures))

Modified: trunk/Tools/ChangeLog (92343 => 92344)


--- trunk/Tools/ChangeLog	2011-08-04 02:35:41 UTC (rev 92343)
+++ trunk/Tools/ChangeLog	2011-08-04 03:02:54 UTC (rev 92344)
@@ -1,3 +1,18 @@
+2011-08-03  Adam Barth  <[email protected]>
+
+        garden-o-matic details view should queue rebaselines for later execution
+        https://bugs.webkit.org/show_bug.cgi?id=65636
+
+        Reviewed by Dimitri Glazkov.
+
+        This patch doesn't contain any confirmation UI, but we'll probably want
+        that at some point.
+
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/checkout.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js:
+
 2011-08-03  Kentaro Hara  <[email protected]>
 
         Implement EventSender.scalePageBy()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to