Diff
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js (116598 => 116599)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js 2012-05-10 02:48:02 UTC (rev 116598)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js 2012-05-10 03:08:02 UTC (rev 116599)
@@ -41,32 +41,18 @@
return kChromiumBuildBotURL + '/json/builders/' + encodeURIComponent(builderName) + '/builds/' + encodeURIComponent(buildNumber);
}
-function isStepRequredForTestCoverage(step)
-{
- switch(step.name) {
- case kUpdateStepName:
- case kUpdateScriptsStepName:
- case kCompileStepName:
- case kWebKitTestsStepName:
- return true;
- default:
- return false;
- }
-}
-
function didFail(step)
{
if (step.name == kWebKitTestsStepName) {
// run-webkit-tests fails to generate test coverage when it crashes or hangs.
return step.text.indexOf(kCrashedOrHungOutputMarker) != -1;
}
- // FIXME: Is this the correct way to test for failure?
return step.results[0] > 0;
}
-function didFailStepRequredForTestCoverage(buildInfo)
+function failingSteps(buildInfo)
{
- return buildInfo.steps.filter(isStepRequredForTestCoverage).filter(didFail).length > 0;
+ return buildInfo.steps.filter(didFail);
}
function mostRecentCompletedBuildNumber(individualBuilderStatus)
@@ -90,11 +76,19 @@
function fetchMostRecentBuildInfoByBuilder(callback)
{
- var buildInfoByBuilder = {};
- var builderNames = Object.keys(config.kBuilders);
- var requestTracker = new base.RequestTracker(builderNames.length, callback, [buildInfoByBuilder]);
net.get(kChromiumBuildBotURL + '/json/builders', function(builderStatus) {
- $.each(builderNames, function(index, builderName) {
+ var buildInfoByBuilder = {};
+ var builderNames = Object.keys(builderStatus);
+ var requestTracker = new base.RequestTracker(builderNames.length, callback, [buildInfoByBuilder]);
+ builderNames.forEach(function(builderName) {
+ // FIXME: Should garden-o-matic show these? I can imagine showing the deps bots being useful at least so
+ // that the gardener only need to look at garden-o-matic and never at the waterfall. Not really sure who
+ // watches the GPU bots.
+ if (builderName.indexOf('GPU') != -1 || builderName.indexOf('deps') != -1) {
+ requestTracker.requestComplete();
+ return;
+ }
+
var buildNumber = mostRecentCompletedBuildNumber(builderStatus[builderName]);
if (!buildNumber) {
buildInfoByBuilder[builderName] = null;
@@ -110,17 +104,18 @@
});
}
-builders.buildersFailingStepRequredForTestCoverage = function(callback)
+builders.buildersFailingNonLayoutTests = function(callback)
{
fetchMostRecentBuildInfoByBuilder(function(buildInfoByBuilder) {
- var builderNameList = [];
+ var failureList = {};
$.each(buildInfoByBuilder, function(builderName, buildInfo) {
if (!buildInfo)
return;
- if (didFailStepRequredForTestCoverage(buildInfo))
- builderNameList.push(builderName);
+ var failures = failingSteps(buildInfo);
+ if (failures.length)
+ failureList[builderName] = failures.map(function(failure) { return failure.name; });
});
- callback(builderNameList);
+ callback(failureList);
});
};
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js (116598 => 116599)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js 2012-05-10 02:48:02 UTC (rev 116598)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js 2012-05-10 03:08:02 UTC (rev 116599)
@@ -582,7 +582,7 @@
"times": [1318364210.066524, 1318366408.0732119]
};
-test("buildersFailingStepRequredForTestCoverage", 3, function() {
+test("buildersFailing", 3, function() {
var simulator = new NetworkSimulator();
var failingBuildInfoJSON = JSON.parse(JSON.stringify(kExampleBuildInfoJSON));
@@ -608,8 +608,16 @@
};
simulator.runTest(function() {
- builders.buildersFailingStepRequredForTestCoverage(function(builderNameList) {
- deepEqual(builderNameList, ["Webkit Mac10.6"]);
+ builders.buildersFailingNonLayoutTests(function(builderNameList) {
+ deepEqual(builderNameList, {
+ "Webkit Linux": [
+ "webkit_gpu_tests"
+ ],
+ "Webkit Mac10.6": [
+ "compile",
+ "webkit_gpu_tests"
+ ]
+ });
});
});
@@ -620,7 +628,7 @@
]);
});
-test("buildersFailingStepRequredForTestCoverage (run-webkit-tests crash)", 3, function() {
+test("buildersFailing (run-webkit-tests crash)", 3, function() {
var simulator = new NetworkSimulator();
var builderStatusJSON = JSON.parse(JSON.stringify(kExampleBuilderStatusJSON));
@@ -648,8 +656,16 @@
};
simulator.runTest(function() {
- builders.buildersFailingStepRequredForTestCoverage(function(builderNameList) {
- deepEqual(builderNameList, ["Webkit Linux"]);
+ builders.buildersFailingNonLayoutTests(function(builderNameList) {
+ deepEqual(builderNameList, {
+ "Webkit Linux": [
+ "extract_build",
+ "webkit_tests",
+ "archive_webkit_tests_results",
+ "webkit_gpu_tests",
+ "archive_webkit_tests_gpu_results"
+ ]
+ });
});
});
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js (116598 => 116599)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js 2012-05-10 02:48:02 UTC (rev 116598)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js 2012-05-10 03:08:02 UTC (rev 116599)
@@ -44,15 +44,6 @@
'Webkit Mac10.7': {version: 'lion'},
};
-config.kBuildersThatOnlyCompile = [
- 'Webkit Win Builder',
- 'Webkit Win Builder (dbg)',
- // FIXME: Where is the Linux Builder?
- 'Webkit Mac Builder',
- 'Webkit Mac Builder (dbg)',
- 'Win Builder',
-];
-
config.kTracURL = 'http://trac.webkit.org';
config.kBugzillaURL = 'https://bugs.webkit.org';
config.kLocalServerURL = 'http://127.0.0.1:8127';
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js (116598 => 116599)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js 2012-05-10 02:48:02 UTC (rev 116598)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js 2012-05-10 03:08:02 UTC (rev 116599)
@@ -287,9 +287,9 @@
this._message = message;
this._notification = null;
},
- update: function(builderNameList)
+ update: function(failuresList)
{
- if (builderNameList.length == 0) {
+ if (Object.keys(failuresList).length == 0) {
if (this._notification) {
this._notification.dismiss();
this._notification = null;
@@ -302,7 +302,7 @@
}
// FIXME: We should provide regression ranges for the failing builders.
// This doesn't seem to happen often enough to worry too much about that, however.
- this._notification.setFailingBuilders(builderNameList);
+ this._notification.setFailingBuilders(failuresList);
}
});
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/garden-o-matic.js (116598 => 116599)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/garden-o-matic.js 2012-05-10 02:48:02 UTC (rev 116598)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/garden-o-matic.js 2012-05-10 03:08:02 UTC (rev 116599)
@@ -34,7 +34,7 @@
var g_unexpectedFailuresController = null;
var g_failuresController = null;
-var g_losingTestCoverageBuilders = null;
+var g_nonLayoutTestFailureBuilders = null;
function update()
{
@@ -51,7 +51,7 @@
g_info.add(updating);
- builders.buildersFailingStepRequredForTestCoverage(g_losingTestCoverageBuilders.update.bind(g_losingTestCoverageBuilders));
+ builders.buildersFailingNonLayoutTests(g_nonLayoutTestFailureBuilders.update.bind(g_nonLayoutTestFailureBuilders));
base.callInParallel([model.updateRecentCommits, model.updateResultsByBuilder], function() {
if (g_failuresController)
@@ -90,7 +90,6 @@
showResults: function(resultsView)
{
var resultsContainer = onebar.results();
- console.log(resultsContainer);
$(resultsContainer).empty().append(resultsView);
onebar.select('results');
}
@@ -100,7 +99,7 @@
g_unexpectedFailuresController = new controllers.UnexpectedFailures(model.state, unexpectedFailuresView, onebarController);
g_info = new ui.notifications.Stream();
- g_losingTestCoverageBuilders = new controllers.FailingBuilders(g_info, 'Losing test coverage');
+ g_nonLayoutTestFailureBuilders = new controllers.FailingBuilders(g_info, 'Non-layout test failures');
// FIXME: This should be an Action object.
var updateButton = document.body.insertBefore(document.createElement('button'), document.body.firstChild);
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures.js (116598 => 116599)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures.js 2012-05-10 02:48:02 UTC (rev 116598)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures.js 2012-05-10 03:08:02 UTC (rev 116599)
@@ -31,17 +31,23 @@
var kBuildingResult = 'BUILDING';
ui.failures.Builder = base.extends('a', {
- init: function(builderName)
+ init: function(builderName, failures)
{
var configuration = config.kBuilders[builderName];
- if (configuration.version)
- this._addSpan('version', configuration.version);
- if (configuration.is64bit)
- this._addSpan('architecture', '64-bit');
- this._configuration = configuration;
+ if (configuration) {
+ if (configuration.version)
+ this._addSpan('version', configuration.version);
+ if (configuration.is64bit)
+ this._addSpan('architecture', '64-bit');
+ this._configuration = configuration;
+ } else
+ this._addSpan('version', builderName);
+
this.className = 'failing-builder';
this.target = '_blank';
this.href = ""
+ if (failures)
+ this._addSpan('failures', ' ' + failures.join(', '));
},
_addSpan: function(className, text)
{
@@ -51,7 +57,7 @@
},
equals: function(configuration)
{
- return this._configuration.is64bit == configuration.is64bit && this._configuration.version == configuration.version;
+ return this._configuration && this._configuration.is64bit == configuration.is64bit && this._configuration.version == configuration.version;
}
});
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures_unittests.js (116598 => 116599)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures_unittests.js 2012-05-10 02:48:02 UTC (rev 116598)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures_unittests.js 2012-05-10 03:08:02 UTC (rev 116599)
@@ -27,19 +27,15 @@
module('ui.failures');
-test('Builder', 7, function() {
- raises(function() {
- new ui.failures.Builder();
- });
-
+test('Builder', 6, function() {
var configuration;
- configuration = new ui.failures.Builder("Webkit Linux");
+ configuration = new ui.failures.Builder("Webkit Linux", ["update", "webkit_tests"]);
deepEqual(Object.getOwnPropertyNames(configuration.__proto__).sort(), [
'_addSpan',
'equals',
'init',
]);
- equal(configuration.outerHTML, '<a class="failing-builder" target="_blank" href="" class="version">lucid</span><span class="architecture">64-bit</span></a>');
+ equal(configuration.outerHTML, '<a class="failing-builder" target="_blank" href="" class="version">lucid</span><span class="architecture">64-bit</span><span class="failures"> update, webkit_tests</span></a>');
configuration = new ui.failures.Builder("Webkit Win");
equal(configuration.outerHTML, '<a class="failing-builder" target="_blank" href="" class="version">xp</span></a>');
configuration._addSpan('foo', 'bar');
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js (116598 => 116599)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js 2012-05-10 02:48:02 UTC (rev 116598)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js 2012-05-10 03:08:02 UTC (rev 116599)
@@ -243,12 +243,12 @@
{
this._problem.insertBefore(document.createTextNode(message + ':'), this._problem.firstChild);
},
- setFailingBuilders: function(builderNameList)
+ setFailingBuilders: function(failuresList)
{
- $(this._effects).empty().append(builderNameList.map(function(builderName) {
+ $(this._effects).empty().append(Object.keys(failuresList).map(function(builderName) {
var effect = document.createElement('li');
effect.className = 'builder';
- effect.appendChild(new ui.failures.Builder(builderName));
+ effect.appendChild(new ui.failures.Builder(builderName, failuresList[builderName]));
return effect;
}));
}
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js (116598 => 116599)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js 2012-05-10 02:48:02 UTC (rev 116598)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js 2012-05-10 03:08:02 UTC (rev 116599)
@@ -318,7 +318,7 @@
test('BuildersFailing', 1, function() {
var builderFailing = new ui.notifications.BuildersFailing('Disasterifying');
- builderFailing.setFailingBuilders(['Webkit Linux', 'Webkit Vista']);
+ builderFailing.setFailingBuilders({'Webkit Linux': ['compile'], 'Webkit Vista': ['webkit_tests', 'update']);
equal(builderFailing.innerHTML,
'<div class="how">' +
'<time class="relative"></time>' +
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js (116598 => 116599)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js 2012-05-10 02:48:02 UTC (rev 116598)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js 2012-05-10 03:08:02 UTC (rev 116599)
@@ -55,23 +55,6 @@
return ui.urlForFlakinessDashboard(opt_testNameList) + '&showChrome=false';
}
-ui.urlForChromiumGtestSummary = function()
-{
- return 'http://build.chromium.org/p/chromium.webkit/horizontal_one_box_per_builder?' +
- 'builder=Win%20Builder' +
- '&builder=Win%20Reliability%20Builder' +
- '&builder=Vista%20Tests&builder=Win%20Reliability' +
- '&builder=Win+(dbg)' +
- '&builder=Win%20Shared%20Builder%20%28dbg%29' +
- '&builder=Mac10.6%20Tests' +
- '&builder=Mac+Builder+(dbg)' +
- '&builder=Linux%20Tests' +
- '&builder=Linux%20Valgrind' +
- '&builder=Vista%20Perf' +
- '&builder=Linux%20Perf' +
- '&builder=Mac10.6%20Perf';
-}
-
ui.rolloutReasonForTestNameList = function(testNameList)
{
return 'Broke:\n' + testNameList.map(function(testName) {
@@ -91,15 +74,13 @@
'</ul>' +
'<div id="unexpected"></div>' +
'<div id="expected"></div>' +
- '<div id="results"></div>' +
- '<div id="chromium-gtests"><span id="gtest-label">Chromium gtest bots:</span>' +
- '<iframe scrolling="no" src="" + ui.urlForChromiumGtestSummary() + '"></iframe>' +
- '</div>';
+ '<div id="results"></div>';
this._tabNames = [
'unexpected',
'expected',
'results',
]
+
this._tabIndexToSavedScrollOffset = {};
this._tabs = $(this).tabs({
disabled: [2],
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js (116598 => 116599)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js 2012-05-10 02:48:02 UTC (rev 116598)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js 2012-05-10 03:08:02 UTC (rev 116599)
@@ -61,23 +61,7 @@
'</ul>' +
'<div id="unexpected" class="ui-tabs-panel ui-widget-content ui-corner-bottom"></div>' +
'<div id="expected" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"></div>' +
- '<div id="results" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"></div>' +
- '<div id="chromium-gtests"><span id="gtest-label">Chromium gtest bots:</span>' +
- '<iframe scrolling="no" src="" +
- 'builder=Win%20Builder' +
- '&builder=Win%20Reliability%20Builder' +
- '&builder=Vista%20Tests' +
- '&builder=Win%20Reliability' +
- '&builder=Win+(dbg)' +
- '&builder=Win%20Shared%20Builder%20%28dbg%29' +
- '&builder=Mac10.6%20Tests' +
- '&builder=Mac+Builder+(dbg)' +
- '&builder=Linux%20Tests' +
- '&builder=Linux%20Valgrind' +
- '&builder=Vista%20Perf' +
- '&builder=Linux%20Perf' +
- '&builder=Mac10.6%20Perf"></iframe>' +
- '</div>');
+ '<div id="results" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"></div>');
onebar.select('expected');
equal(window.location.hash, '#expected');
Modified: trunk/Tools/ChangeLog (116598 => 116599)
--- trunk/Tools/ChangeLog 2012-05-10 02:48:02 UTC (rev 116598)
+++ trunk/Tools/ChangeLog 2012-05-10 03:08:02 UTC (rev 116599)
@@ -1,3 +1,29 @@
+2012-05-09 Ojan Vafai <[email protected]>
+
+ Change "losing test coverage" to cover all non-layout test problems in garden-o-matic
+ https://bugs.webkit.org/show_bug.cgi?id=86043
+
+ Reviewed by Adam Barth.
+
+ -Get rid of the gtest iframe.
+ -Cover all non-layout test problems. Before we wouldn't catch compile failures
+ or gtest failures since they were not on the webkit testing bots.
+ -Include the list of failing steps next to the builder name. This is a lot less
+ cluttered than you'd expect and already helped me find a compile failure early.
+
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js:
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js:
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js:
+ Delete unused map.
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/garden-o-matic.js:
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js:
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures.js:
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures_unittests.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/scripts/ui_unittests.js:
+
2012-05-09 Jessie Berlin <[email protected]>
Crash using the new WKBundleDOMWindowExtensions APIs.