Index: third_party/WebKit/PerformanceTests/resources/runner.js |
diff --git a/third_party/WebKit/PerformanceTests/resources/runner.js b/third_party/WebKit/PerformanceTests/resources/runner.js |
index 22a5e8eadcce6f54b3ce7bc6bde46b2d979af781..7ce98b7a6e066a234b59009ba97269ae7de1c4cf 100644 |
--- a/third_party/WebKit/PerformanceTests/resources/runner.js |
+++ b/third_party/WebKit/PerformanceTests/resources/runner.js |
@@ -157,8 +157,16 @@ if (window.testRunner) { |
PerfTestRunner.log("Running " + iterationCount + " times"); |
if (test.doNotIgnoreInitialRun) |
completedIterations++; |
- if (runner) |
+ |
+ if (runner && test.tracingCategories && window.testRunner && |
+ window.testRunner.supportTracing) { |
+ window.testRunner.traceEventsToMeasure = test.traceEventsToMeasure; |
+ window.testRunner.startTracing(test.tracingCategories, function() { |
+ scheduleNextRun(scheduler, runner); |
+ }); |
+ } else if (runner) { |
scheduleNextRun(scheduler, runner); |
+ } |
} |
function scheduleNextRun(scheduler, runner) { |
@@ -225,8 +233,17 @@ if (window.testRunner) { |
logInDocument("Got an exception while finalizing the test with name=" + exception.name + ", message=" + exception.message); |
} |
- if (window.testRunner) |
- testRunner.notifyDone(); |
+ if (window.testRunner) { |
+ if (currentTest.traceEventsToMeasure && |
+ testRunner.supportTracing) { |
+ testRunner.stopTracingAndMeasure( |
+ currentTest.traceEventsToMeasure, function() { |
+ testRunner.notifyDone(); |
+ }); |
+ } else { |
+ testRunner.notifyDone(); |
+ } |
+ } |
} |
PerfTestRunner.prepareToMeasureValuesAsync = function (test) { |
@@ -248,6 +265,25 @@ if (window.testRunner) { |
finish(); |
} |
+ function addRunTestStartMarker() { |
+ if (!window.testRunner || !window.testRunner.supportTracing) |
+ return; |
+ if (completedIterations < 0) |
+ console.time('blink_perf.runTest.warmup'); |
+ else |
+ console.time('blink_perf.runTest'); |
+ } |
+ |
+ function addRunTestEndMarker() { |
+ if (!window.testRunner || !window.testRunner.supportTracing) |
+ return; |
+ if (completedIterations < 0) |
+ console.timeEnd('blink_perf.runTest.warmup'); |
+ else |
+ console.timeEnd('blink_perf.runTest'); |
+ } |
+ |
+ |
PerfTestRunner.measureFrameTime = function (test) { |
PerfTestRunner.unit = "ms"; |
PerfTestRunner.bufferedLog = true; |
@@ -261,9 +297,12 @@ if (window.testRunner) { |
var lastFrameTime = -1; |
function measureFrameTimeOnce() { |
+ if (lastFrameTime != -1) |
+ addRunTestEndMarker(); |
var now = PerfTestRunner.now(); |
var result = lastFrameTime == -1 ? -1 : now - lastFrameTime; |
lastFrameTime = now; |
+ addRunTestStartMarker(); |
var returnValue = currentTest.run(); |
if (returnValue - 0 === returnValue) { |
@@ -290,7 +329,9 @@ if (window.testRunner) { |
PerfTestRunner.gc(); |
var start = PerfTestRunner.now(); |
+ addRunTestStartMarker(); |
var returnValue = currentTest.run(); |
+ addRunTestEndMarker(); |
var end = PerfTestRunner.now(); |
if (returnValue - 0 === returnValue) { |