Patch by Alice Boxhall <aboxhall@chromium.org> on 2011-11-19
Reviewed by Ojan Vafai.
* TestResultServer/static-dashboards/dashboard_base.js:
(ADD_RESULTS):
(flattenTrie):
* TestResultServer/static-dashboards/flakiness_dashboard_tests.js:
(testFlattenTrie):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@100864
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2011-11-19 Alice Boxhall <aboxhall@chromium.org>
+
+ Modify dashboard_base.js to optionally accept version 4 results json.
+
+ Reviewed by Ojan Vafai.
+
+ * TestResultServer/static-dashboards/dashboard_base.js:
+ (ADD_RESULTS):
+ (flattenTrie):
+ * TestResultServer/static-dashboards/flakiness_dashboard_tests.js:
+ (testFlattenTrie):
+
2011-11-19 Ojan Vafai <ojan@chromium.org>
Stop storing results files as jsonp in the test results server
var g_expectations;
function ADD_RESULTS(builds)
{
+ var json_version = builds['version'];
for (var builderName in builds) {
if (builderName == 'version')
continue;
if ((Date.now() / 1000) - lastRunSeconds > TWO_WEEKS_SECONDS)
continue;
+ if (json_version >= 4)
+ builds[builderName][TESTS_KEY] = flattenTrie(builds[builderName][TESTS_KEY]);
g_resultsByBuilder[builderName] = builds[builderName];
}
handleResourceLoad();
}
+// TODO(aboxhall): figure out whether this is a performance bottleneck and
+// change calling code to understand the trie structure instead if necessary.
+function flattenTrie(trie, prefix)
+{
+ var result = {};
+ for (var name in trie) {
+ var fullName = prefix ? prefix + "/" + name : name;
+ var data = trie[name];
+ if ("results" in data)
+ result[fullName] = data;
+ else {
+ var partialResult = flattenTrie(data, fullName);
+ for (var key in partialResult) {
+ result[key] = partialResult[key];
+ }
+ }
+ }
+ return result;
+}
+
function pathToBuilderResultsFile(builderName)
{
return TEST_RESULTS_SERVER + 'testfile?builder=' + builderName +
}
}
-function throwError(resultsForTests, actual, expected) {}
+function testFlattenTrie()
+{
+ var tests = {
+ 'bar.html': {'results': [[100, 'F']], 'times': [[100, 0]]},
+ 'foo': {
+ 'bar': {
+ 'baz.html': {'results': [[100, 'F']], 'times': [[100, 0]]},
+ }
+ }
+ };
+ var expectedFlattenedTests = {
+ 'bar.html': {'results': [[100, 'F']], 'times': [[100, 0]]},
+ 'foo/bar/baz.html': {'results': [[100, 'F']], 'times': [[100, 0]]},
+ };
+ assertEquals(JSON.stringify(flattenTrie(tests)), JSON.stringify(expectedFlattenedTests))
+}
function testReleaseFail()
{