diff --git a/Tools/ChangeLog b/Tools/ChangeLog index 342bc62052ef57762a9332f194b83379ea813ef9..47d931e34fa9f6e26ce942c0d98beb0016e280cc 100644 --- a/Tools/ChangeLog +++ b/Tools/ChangeLog @@ -1,3 +1,15 @@ +2011-11-19 Alice Boxhall + + 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 Stop storing results files as jsonp in the test results server diff --git a/Tools/TestResultServer/static-dashboards/dashboard_base.js b/Tools/TestResultServer/static-dashboards/dashboard_base.js index 52043441e26746a59a5727104b54e2dcaf10707b..0fa9c4991f9861c0f9c0dc6c7ba6472900fd2926 100644 --- a/Tools/TestResultServer/static-dashboards/dashboard_base.js +++ b/Tools/TestResultServer/static-dashboards/dashboard_base.js @@ -469,6 +469,7 @@ var g_resultsByBuilder = {}; var g_expectations; function ADD_RESULTS(builds) { + var json_version = builds['version']; for (var builderName in builds) { if (builderName == 'version') continue; @@ -481,12 +482,34 @@ function ADD_RESULTS(builds) 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 + diff --git a/Tools/TestResultServer/static-dashboards/flakiness_dashboard_tests.js b/Tools/TestResultServer/static-dashboards/flakiness_dashboard_tests.js index a82c1700da922cc30f377af252f35dd135f5b54d..0bcc2b782fba74e832e35f01c5fb14b9b07b41e5 100644 --- a/Tools/TestResultServer/static-dashboards/flakiness_dashboard_tests.js +++ b/Tools/TestResultServer/static-dashboards/flakiness_dashboard_tests.js @@ -95,7 +95,22 @@ function assertEquals(actual, expected, message) } } -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() {