+2012-04-03 Ojan Vafai <ojan@chromium.org>
+
+ Give more human friendly error message when builders fail to load or have stale data.
+ https://bugs.webkit.org/show_bug.cgi?id=83058
+
+ Reviewed by Eric Seidel.
+
+ * TestResultServer/static-dashboards/dashboard_base.js:
+ (addError):
+ (addBuilderLoadErrors):
+ (handleLocationChange):
+ * TestResultServer/static-dashboards/flakiness_dashboard_tests.js:
+
2012-04-03 Ryosuke Niwa <rniwa@webkit.org>
Again, a build fix after r113067. Don't call r113067 twice on the configuration build directory.
var TIMESTAMPS_KEY = 'secondsSinceEpoch';
var BUILD_NUMBERS_KEY = 'buildNumbers';
var TESTS_KEY = 'tests';
-var ONE_WEEK_SECONDS = 60 * 60 * 24 * 7;
+var ONE_DAY_SECONDS = 60 * 60 * 24;
+var ONE_WEEK_SECONDS = ONE_DAY_SECONDS * 7;
// These should match the testtype uploaded to test-results.appspot.com.
// See http://test-results.appspot.com/testfile.
currentBuilderGroup().setup();
}
-// Append JSON script elements.
var g_resultsByBuilder = {};
var g_expectations;
+var g_staleBuilders = [];
+var g_buildersThatFailedToLoad = [];
+
function ADD_RESULTS(builds)
{
var json_version = builds['version'];
if ((Date.now() / 1000) - lastRunSeconds > ONE_WEEK_SECONDS)
continue;
+ if ((Date.now() / 1000) - lastRunSeconds > ONE_DAY_SECONDS)
+ g_staleBuilders.push(builderName);
+
if (json_version >= 4)
builds[builderName][TESTS_KEY] = flattenTrie(builds[builderName][TESTS_KEY]);
g_resultsByBuilder[builderName] = builds[builderName];
if (isLayoutTestResults()) {
console.error(error);
- addError(error);
+ g_buildersThatFailedToLoad.push(builderName);
} else {
// Avoid to show error/warning messages for non-layout tests. We may be
// checking the builders that are not running the tests.
// @param {string} errorMsg The message to show to the user.
function addError(errorMsg)
{
- g_errorMessages += errorMsg + '<br />';
+ g_errorMessages += errorMsg + '<br>';
}
// Clear out error and warning messages.
return true;
}
+function addBuilderLoadErrors()
+{
+ if (g_hasDoneInitialPageGeneration)
+ return;
+
+ if (g_buildersThatFailedToLoad.length)
+ addError('ERROR: Failed to get data from ' + g_buildersThatFailedToLoad.toString() + '.');
+
+ if (g_staleBuilders.length)
+ addError('ERROR: Data from ' + g_staleBuilders.toString() + ' is more than 1 day stale.');
+}
+
function handleLocationChange()
{
if(!haveJsonFilesLoaded())
return;
+ addBuilderLoadErrors();
g_hasDoneInitialPageGeneration = true;
var params = parseParameters();
assertObjectsDeepEqual(diffStates(oldState, newState), {a: 1, b: 2});
}
+function testAddBuilderLoadErrors()
+{
+ clearErrors();
+ g_hasDoneInitialPageGeneration = false;
+ g_buildersThatFailedToLoad = ['builder1', 'builder2'];
+ g_staleBuilders = ['staleBuilder1'];
+ addBuilderLoadErrors();
+ console.log(g_errorMessages);
+ assertEquals(g_errorMessages, 'ERROR: Failed to get data from builder1,builder2.<br>ERROR: Data from staleBuilder1 is more than 1 day stale.<br>');
+}
+
function runTests()
{
document.body.innerHTML = '<pre id=unittest-results></pre>';