Title: [120555] trunk/Tools
Revision
120555
Author
[email protected]
Date
2012-06-17 17:20:01 -0700 (Sun, 17 Jun 2012)

Log Message

garden-o-matic 'Results' panel is broken for the Apple platform
https://bugs.webkit.org/show_bug.cgi?id=89310

Reviewed by Adam Barth.

For platforms that don't use accumulated build directories on the server,
carry along buildLocation data with buildInfo, so that we know where to
look for the test results files for a given test.

Renamed historicalResultsSummaryURLs to historicalResultsLocations because
it now returns an array of objects with buildNumber, revision and url info.

Fixed results.fetchResultsURLs() to use this data to find results.

Fixed the results display to not scroll when you click on a test to see the results.
Made the h3s look less ugly

Don't try to show the flakiness dashboard for the Apple platform.

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/results.css:
(.results-view .top-panel):
(.results-view h3):

Modified Paths

Diff

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


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html	2012-06-17 23:06:12 UTC (rev 120554)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html	2012-06-18 00:20:01 UTC (rev 120555)
@@ -32,7 +32,7 @@
                                          script-src 'self' file: https://ajax.googleapis.com;
                                          style-src 'self' 'unsafe-inline' file: https://ajax.googleapis.com http://fonts.googleapis.com;
                                          font-src http://themes.googleusercontent.com;
-                                         img-src https://ajax.googleapis.com http://build.chromium.org file:;
+                                         img-src https://ajax.googleapis.com http://build.chromium.org http://build.webkit.org file:;
                                          media-src http://build.chromium.org http://build.webkit.org;
                                          frame-src http://build.chromium.org http://build.webkit.org http://test-results.appspot.com;
                                          connect-src http://trac.webkit.org http://build.chromium.org http://build.webkit.org http://127.0.0.1:8127">

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


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js	2012-06-17 23:06:12 UTC (rev 120554)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js	2012-06-18 00:20:01 UTC (rev 120555)
@@ -43,6 +43,7 @@
         },
         haveBuilderAccumulatedResults : false,
         useDirectoryListingForOldBuilds: false,
+        useFlakinessDashboard: false,
         resultsDirectoryNameFromBuilderName: function(builderName) {
             return encodeURIComponent(builderName);
         },
@@ -73,6 +74,7 @@
         },
         haveBuilderAccumulatedResults : true,
         useDirectoryListingForOldBuilds: true,
+        useFlakinessDashboard: true,
         resultsDirectoryNameFromBuilderName: function(builderName) {
             return builderName.replace(/[ .()]/g, '_');
         },

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js (120554 => 120555)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js	2012-06-17 23:06:12 UTC (rev 120554)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js	2012-06-18 00:20:01 UTC (rev 120555)
@@ -306,6 +306,8 @@
     $.each(resultsByBuilder, function(builderName, resultsTree) {
         $.each(filter(resultsTree), function(testName, resultNode) {
             resultsByTest[testName] = resultsByTest[testName] || {};
+            if (!config.kPlatforms[config.currentPlatform].haveBuilderAccumulatedResults)
+                resultNode._buildLocation = resultsTree._buildLocation;
             resultsByTest[testName][builderName] = resultNode;
         });
     });
@@ -330,11 +332,16 @@
 
 results.failureInfoForTestAndBuilder = function(resultsByTest, testName, builderName)
 {
-    return {
+    var failureInfoForTest = {
         'testName': testName,
         'builderName': builderName,
-        'failureTypeList': results.failureTypeList(resultsByTest[testName][builderName].actual)
-    }
+        'failureTypeList': results.failureTypeList(resultsByTest[testName][builderName].actual),
+    };
+    
+    if (!config.kPlatforms[config.currentPlatform].haveBuilderAccumulatedResults)
+        failureInfoForTest.buildLocation = resultsByTest[testName][builderName]._buildLocation;
+    
+    return failureInfoForTest;
 };
 
 results.collectUnexpectedResults = function(dictionaryOfResultNodes)
@@ -347,29 +354,38 @@
     return base.uniquifyArray(collectedResults);
 };
 
-function historicalResultsSummaryURLs(platform, builderName, callback)
+// Callback data is [{ buildNumber:, revision:, url: }]
+function historicalResultsLocations(platform, builderName, callback)
 {
     if (config.kPlatforms[platform].useDirectoryListingForOldBuilds) {
         var listingURL = resultsDirectoryListingURL(platform, builderName);
         net.get(listingURL, function(directoryListing) {
-            var summaryURLs = directoryListing.match(kBuildLinkRegexp).map(function(buildLink) {
+            var historicalResultsData = directoryListing.match(kBuildLinkRegexp).map(function(buildLink) {
                 var buildNumber = parseInt(buildLink.match(kBuildNumberRegexp)[0]);
-                var revision = 0; // FIXME: need revision for Apple.
-                return resultsSummaryURLForBuildNumber(platform, builderName, buildNumber, revision);
+                var revision = 0; // unused for Chromium.
+                var resultsData = {
+                    'buildNumber': buildNumber,
+                    'revision': revision,
+                    'url': resultsSummaryURLForBuildNumber(platform, builderName, buildNumber, revision)
+                };
+                return resultsData;
             }).reverse();
             
-            callback(summaryURLs);
+            callback(historicalResultsData);
         });
     } else {
-        var summaryURLs = [];
+        var historicalResultsData = [];
         builders.cachedBuildInfos(platform, builderName, function(cachedBuildInfos) {
             $.each(cachedBuildInfos, function(buildNumber, buildInfo) {
-                var revision = buildInfo.sourceStamp.revision;
-                var url = "" builderName, buildNumber, revision);
-                summaryURLs.push(url);
+                var resultsData = {
+                    'buildNumber': buildNumber,
+                    'revision': buildInfo.sourceStamp.revision,
+                    'url': resultsSummaryURLForBuildNumber(platform, builderName, buildNumber, buildInfo.sourceStamp.revision),
+                }
+                historicalResultsData.push(resultsData);
             });
             
-            callback(summaryURLs.reverse());
+            callback(historicalResultsData.reverse());
         });
     }
 }
@@ -386,9 +402,9 @@
             return;
         }
 
-        var key = keyList[indexOfNextKeyToFetch];
+        var resultsURL = keyList[indexOfNextKeyToFetch].url;
         ++indexOfNextKeyToFetch;
-        g_resultsCache.get(key, function(resultsTree) {
+        g_resultsCache.get(resultsURL, function(resultsTree) {
             if ($.isEmptyObject(resultsTree)) {
                 continueWalk();
                 return;
@@ -409,8 +425,8 @@
         continueWalk();
     }
 
-    historicalResultsSummaryURLs(platform, builderName, function(summaryURLs) {
-        keyList = summaryURLs;
+    historicalResultsLocations(platform, builderName, function(resultsLocations) {
+        keyList = resultsLocations;
         continueWalk();
     });
 }
@@ -557,15 +573,21 @@
 
 results.fetchResultsURLs = function(failureInfo, callback)
 {
-    var stem = resultsDirectoryURL(config.currentPlatform, failureInfo.builderName);
     var testNameStem = base.trimExtension(failureInfo.testName);
+    var urlStem;
+    
+    if (config.kPlatforms[config.currentPlatform].haveBuilderAccumulatedResults)
+        urlStem = resultsDirectoryURL(config.currentPlatform, failureInfo.builderName);
+    else 
+        urlStem = failureInfo.buildLocation.url.replace(kResultsName, '');
+
     var suffixList = possibleSuffixListFor(failureInfo.failureTypeList);
     var resultURLs = [];
     var tracker = new base.RequestTracker(suffixList.length, function() {
         callback(sortResultURLsBySuffix(resultURLs));
     });
     $.each(suffixList, function(index, suffix) {
-        var url = "" + testNameStem + suffix;
+        var url = "" + testNameStem + suffix;
         net.probe(url, {
             success: function() {
                 resultURLs.push(url);
@@ -593,17 +615,19 @@
 // Look for the most recent completed build that has full results.
 results.fetchResultsForMostRecentCompletedBuildOnBuilder = function(builderName, callback)
 {
-    historicalResultsSummaryURLs(config.currentPlatform, builderName, function(buildURLs) {
+    historicalResultsLocations(config.currentPlatform, builderName, function(buildLocations) {
         var currentIndex = 0;
         var resultsCallback = function(buildResults) {
             if ($.isEmptyObject(buildResults)) {
                 ++currentIndex;
-                net.jsonp(buildURLs[currentIndex], resultsCallback);
+                net.jsonp(buildLocations[currentIndex].url, resultsCallback);
                 return;
             }
+            if (!config.kPlatforms[config.currentPlatform].haveBuilderAccumulatedResults)
+                buildResults._buildLocation = buildLocations[currentIndex];
             callback(buildResults);
         };
-        net.jsonp(buildURLs[currentIndex], resultsCallback);
+        net.jsonp(buildLocations[currentIndex].url, resultsCallback);
     });
 };
 
@@ -627,7 +651,6 @@
                 if (recentBuildInfos[builderName]) {
                     // FIXME: use RequestTracker
                     ++requestsInFlight;
-                    var buildInfo = recentBuildInfos[builderName];
                     results.fetchResultsForMostRecentCompletedBuildOnBuilder(builderName, function(resultsTree) {
                         resultsByBuilder[builderName] = resultsTree;
                         --requestsInFlight;

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js (120554 => 120555)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js	2012-06-17 23:06:12 UTC (rev 120554)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js	2012-06-18 00:20:01 UTC (rev 120555)
@@ -254,7 +254,7 @@
             var header = document.createElement('h3');
             header.appendChild(nonLinkTitle);
             header.appendChild(linkTitle);
-            header.addEventListener('click', this._showResults.bind(this, header));
+            header.addEventListener('click', this._showResults.bind(this, header, false));
             topPanel.appendChild(header);
         }, this);
 
@@ -290,7 +290,7 @@
             document.querySelector('.top-panel').style.maxHeight = percentage + '%';
         }.bind(this))
     },
-    _showResults: function(header)
+    _showResults: function(header, scrollInfoView)
     {
         if (!header)
             return false;
@@ -308,9 +308,11 @@
         bottomPanel.appendChild(this._delegate.contentForTest(testName));
 
         var topPanel = this.querySelector('.top-panel');
-        topPanel.scrollTop = header.offsetTop;
-        if (header.offsetTop - topPanel.scrollTop < header.offsetHeight)
-            topPanel.scrollTop = topPanel.scrollTop - header.offsetHeight;
+        if (scrollInfoView) {
+            topPanel.scrollTop = header.offsetTop;
+            if (header.offsetTop - topPanel.scrollTop < header.offsetHeight)
+                topPanel.scrollTop = topPanel.scrollTop - header.offsetHeight;
+        }
 
         var resultsDetails = this.querySelectorAll('.results-detail');
         if (resultsDetails.length)
@@ -337,18 +339,18 @@
     },
     nextTest: function()
     {
-        return this._showResults(this.querySelector('.active').nextSibling);
+        return this._showResults(this.querySelector('.active').nextSibling, true);
     },
     previousTest: function()
     {
-        var succeeded = this._showResults(this.querySelector('.active').previousSibling);
+        var succeeded = this._showResults(this.querySelector('.active').previousSibling, true);
         if (succeeded)
             this.querySelector('.builder-selector').lastResult();
         return succeeded;
     },
     firstResult: function()
     {
-        this._showResults(this.querySelector('h3'));
+        this._showResults(this.querySelector('h3'), true);
     },
     currentTestName: function()
     {

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


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js	2012-06-17 23:06:12 UTC (rev 120554)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js	2012-06-18 00:20:01 UTC (rev 120555)
@@ -52,7 +52,10 @@
 
 ui.urlForEmbeddedFlakinessDashboard = function(opt_testNameList)
 {
-    return ui.urlForFlakinessDashboard(opt_testNameList) + '&showChrome=false';
+    if (config.kPlatforms[config.currentPlatform].useFlakinessDashboard)
+        return ui.urlForFlakinessDashboard(opt_testNameList) + '&showChrome=false';
+    
+    return 'about:blank';
 }
 
 ui.rolloutReasonForTestNameList = function(testNameList)

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/results.css (120554 => 120555)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/results.css	2012-06-17 23:06:12 UTC (rev 120554)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/results.css	2012-06-18 00:20:01 UTC (rev 120555)
@@ -95,6 +95,7 @@
     max-height: 20%;
     overflow: auto;
     position: relative;
+    border: 1px solid #EEE;
 }
 
 .results-view .resize-handle {
@@ -123,7 +124,8 @@
 }
 
 .results-view h3 {
-    font-size: 16px;
+    font-size: 14px;
+    font-weight: normal;
     border-top: 1px solid #DDD;
     margin: 0;
     cursor: pointer;

Modified: trunk/Tools/ChangeLog (120554 => 120555)


--- trunk/Tools/ChangeLog	2012-06-17 23:06:12 UTC (rev 120554)
+++ trunk/Tools/ChangeLog	2012-06-18 00:20:01 UTC (rev 120555)
@@ -1,3 +1,33 @@
+2012-06-17  Simon Fraser  <[email protected]>
+
+        garden-o-matic 'Results' panel is broken for the Apple platform
+        https://bugs.webkit.org/show_bug.cgi?id=89310
+
+        Reviewed by Adam Barth.
+        
+        For platforms that don't use accumulated build directories on the server,
+        carry along buildLocation data with buildInfo, so that we know where to
+        look for the test results files for a given test.
+        
+        Renamed historicalResultsSummaryURLs to historicalResultsLocations because
+        it now returns an array of objects with buildNumber, revision and url info.
+        
+        Fixed results.fetchResultsURLs() to use this data to find results.
+        
+        Fixed the results display to not scroll when you click on a test to see the results.
+        Made the h3s look less ugly
+        
+        Don't try to show the flakiness dashboard for the Apple platform.
+
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/results.css:
+        (.results-view .top-panel):
+        (.results-view h3):
+
 2012-06-16  Simon Fraser  <[email protected]>
 
         Make garden-o-matic work for the Apple Mac port
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to