OLD | NEW |
(Empty) | |
| 1 // CanvasRunner is a wrapper of PerformanceTests/resources/runner.js for canvas
tests. |
| 2 (function () { |
| 3 var MEASURE_DRAW_TIMES = 50; |
| 4 var MAX_MEASURE_DRAW_TIMES = 1000; |
| 5 var MAX_MEASURE_TIME_PER_FRAME = 1000; // 1 sec |
| 6 var currentTest = null; |
| 7 |
| 8 var CanvasRunner = {}; |
| 9 |
| 10 CanvasRunner.start = function (test) { |
| 11 PerfTestRunner.prepareToMeasureValuesAsync({unit: 'runs/s', |
| 12 description: test.description}); |
| 13 if (!test.doRun) { |
| 14 CanvasRunner.logFatalError("\ndoRun must be set.\n"); |
| 15 return; |
| 16 } |
| 17 currentTest = test; |
| 18 runTest(); |
| 19 } |
| 20 |
| 21 function runTest() { |
| 22 if (currentTest.preRun) |
| 23 currentTest.preRun(); |
| 24 |
| 25 var start = PerfTestRunner.now(); |
| 26 var count = 0; |
| 27 while ((PerfTestRunner.now() - start <= MAX_MEASURE_TIME_PER_FRAME) && (
count * MEASURE_DRAW_TIMES < MAX_MEASURE_DRAW_TIMES)) { |
| 28 for (var i = 0; i < MEASURE_DRAW_TIMES; i++) { |
| 29 currentTest.doRun(); |
| 30 } |
| 31 count++; |
| 32 } |
| 33 if (currentTest.ensureComplete) |
| 34 currentTest.ensureComplete(); |
| 35 var elapsedTime = PerfTestRunner.now() - start; |
| 36 if (currentTest.postRun) |
| 37 currentTest.postRun(); |
| 38 |
| 39 PerfTestRunner.measureValueAsync(MEASURE_DRAW_TIMES * count * 1000 / ela
psedTime); |
| 40 |
| 41 requestAnimationFrame(runTest); |
| 42 } |
| 43 |
| 44 CanvasRunner.logFatalError = function (text) { |
| 45 PerfTestRunner.logFatalError(text); |
| 46 } |
| 47 |
| 48 window.CanvasRunner = CanvasRunner; |
| 49 })(); |
OLD | NEW |