Give more human friendly error message when builders fail to load or have stale data.
authorojan@chromium.org <ojan@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 Apr 2012 20:53:41 +0000 (20:53 +0000)
committerojan@chromium.org <ojan@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 Apr 2012 20:53:41 +0000 (20:53 +0000)
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:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113084 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/TestResultServer/static-dashboards/dashboard_base.js
Tools/TestResultServer/static-dashboards/flakiness_dashboard_tests.js

index 84c43b7..938543e 100644 (file)
@@ -1,3 +1,16 @@
+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.
index e34d43c..1cd8bd0 100644 (file)
@@ -107,7 +107,8 @@ var WEBKIT_REVISIONS_KEY = 'webkitRevision';
 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.
@@ -482,9 +483,11 @@ function initBuilders()
         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'];
@@ -500,6 +503,9 @@ function ADD_RESULTS(builds)
         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];
@@ -626,7 +632,7 @@ function handleResourceLoadError(builderName, e)
 
     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.
@@ -661,7 +667,7 @@ function handleResourceLoadError(builderName, e)
 // @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.
@@ -710,11 +716,24 @@ function haveJsonFilesLoaded()
     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();
index ffb4418..8494701 100644 (file)
@@ -546,6 +546,17 @@ function testDiffStates()
     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>';