1 // This file can be customized to report results as needed.
4 if (!window.testRunner && location.search != '?webkit' && location.hash != '#webkit')
8 testRunner.waitUntilDone();
10 var scriptElement = document.createElement('script');
11 scriptElement.src = '../resources/runner.js';
12 document.head.appendChild(scriptElement);
14 var styleElement = document.createElement('style');
15 styleElement.textContent = 'pre { padding-top: 600px; }';
16 document.head.appendChild(styleElement);
19 var valuesByIteration = new Array;
21 window.onload = function () {
22 document.body.removeChild(document.querySelector('main'));
26 window.benchmarkClient = {
27 iterationCount: 5, // Use 4 different instances of DRT/WTR to run 5 iterations.
28 willStartFirstIteration: function (iterationCount) {
29 createTest = function (name, aggregator, isLastTest) {
31 customIterationCount: iterationCount,
32 doNotIgnoreInitialRun: true,
33 doNotMeasureMemoryUsage: true,
34 continueTesting: !isLastTest,
37 aggregator: aggregator};
39 PerfTestRunner.prepareToMeasureValuesAsync(createTest(null, 'Total'));
41 didRunSuites: function (measuredValues) {
42 PerfTestRunner.measureValueAsync(measuredValues.total);
43 valuesByIteration.push(measuredValues.tests);
45 didFinishLastIteration: function () {
46 document.head.removeChild(document.querySelector('style'));
48 var measuredValuesByFullName = {};
49 function addToMeasuredValue(value, fullName, aggregator) {
50 var values = measuredValuesByFullName[fullName] || new Array;
51 measuredValuesByFullName[fullName] = values;
53 values.aggregator = aggregator;
56 valuesByIteration.forEach(function (measuredValues) {
57 for (var suiteName in measuredValues) {
58 var suite = measuredValues[suiteName];
59 for (var testName in suite.tests) {
60 var test = suite.tests[testName];
61 for (var subtestName in test.tests)
62 addToMeasuredValue(test.tests[subtestName], suiteName + '/' + testName + '/' + subtestName);
63 addToMeasuredValue(test.total, suiteName + '/' + testName, 'Total');
65 addToMeasuredValue(suite.total, suiteName, 'Total');
69 var fullNames = new Array;
70 for (var fullName in measuredValuesByFullName)
71 fullNames.push(fullName);
73 for (var i = 0; i < fullNames.length; i++) {
74 var values = measuredValuesByFullName[fullNames[i]];
75 PerfTestRunner.reportValues(createTest(fullNames[i], values.aggregator, i + 1 == fullNames.length), values);