| // Copyright 2017 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| let {session, contextGroup, Protocol} = InspectorTest.start('Checks format of console.timeEnd output'); |
| |
| Protocol.Runtime.enable(); |
| Protocol.Runtime.onConsoleAPICalled(message => { |
| InspectorTest.log(message.params.args[0].value); |
| }); |
| |
| InspectorTest.runAsyncTestSuite([ |
| function zero() { |
| return checkInterval(0.0); |
| }, |
| function verySmall() { |
| return checkInterval(1e-15); |
| }, |
| function small() { |
| return checkInterval(0.001); |
| }, |
| function regular() { |
| return checkInterval(1.2345); |
| }, |
| function big() { |
| return checkInterval(10000.2345); |
| }, |
| function veryBig() { |
| return checkInterval(1e+15 + 0.2345); |
| }, |
| function huge() { |
| return checkInterval(1e+42); |
| }, |
| function undefinedAsLabel() { |
| return checkInterval(1.0, 'undefined'); |
| }, |
| function emptyAsLabel() { |
| return checkInterval(1.0, ''); |
| } |
| ]); |
| |
| async function checkInterval(time, label) { |
| label = label === undefined ? '\'timeEnd\'' : label; |
| utils.setCurrentTimeMSForTest(0.0); |
| Protocol.Runtime.evaluate({ |
| expression: `console.log('js: ' + ${time} + 'ms')` |
| }); |
| await Protocol.Runtime.evaluate({expression: `console.time(${label})`}); |
| utils.setCurrentTimeMSForTest(time); |
| await Protocol.Runtime.evaluate({expression: `console.timeEnd(${label})`}); |
| } |