| Index: test/inspector-protocol/cpu-profiler/console-profile.js
|
| diff --git a/test/inspector-protocol/cpu-profiler/console-profile.js b/test/inspector-protocol/cpu-profiler/console-profile.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..aeba4e395e1937c7f80d8824921be23d930f3509
|
| --- /dev/null
|
| +++ b/test/inspector-protocol/cpu-profiler/console-profile.js
|
| @@ -0,0 +1,59 @@
|
| +// Copyright 2016 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.
|
| +
|
| +print("Tests that console.profile/profileEnd will record CPU profile when inspector front-end is connected.");
|
| +
|
| +InspectorTest.evaluateInPage(`
|
| +function collectProfiles()
|
| +{
|
| + console.profile("outer");
|
| + console.profile(42);
|
| + console.profileEnd("outer");
|
| + console.profileEnd(42);
|
| +}`);
|
| +
|
| +InspectorTest.fail = function(message)
|
| +{
|
| + InspectorTest.log("FAIL: " + message);
|
| + InspectorTest.completeTest();
|
| +}
|
| +
|
| +InspectorTest.sendCommand("Profiler.enable", {});
|
| +InspectorTest.sendCommand("Runtime.evaluate", { expression: "collectProfiles()"}, didCollectProfiles);
|
| +
|
| +var headers = [];
|
| +InspectorTest.eventHandler["Profiler.consoleProfileFinished"] = function(messageObject)
|
| +{
|
| + headers.push({
|
| + profile: messageObject["params"]["profile"],
|
| + title: messageObject["params"]["title"]
|
| + });
|
| +}
|
| +
|
| +function didCollectProfiles(messageObject)
|
| +{
|
| + if (headers.length !== 2)
|
| + return InspectorTest.fail("Cannot retrive headers: " + JSON.stringify(messageObject, null, 4));
|
| + for (var i = 0; i < headers.length; i++) {
|
| + if (headers[i].title === "42") {
|
| + checkInnerProfile(headers[i].profile);
|
| + return;
|
| + }
|
| + }
|
| + InspectorTest.fail("Cannot find '42' profile header");
|
| +}
|
| +
|
| +function checkInnerProfile(profile)
|
| +{
|
| + InspectorTest.log("SUCCESS: retrieved '42' profile");
|
| + if (!findFunctionInProfile(profile.nodes, "collectProfiles"))
|
| + return InspectorTest.fail("collectProfiles function not found in the profile: " + JSON.stringify(profile, null, 4));
|
| + InspectorTest.log("SUCCESS: found 'collectProfiles' function in the profile");
|
| + InspectorTest.completeTest();
|
| +}
|
| +
|
| +function findFunctionInProfile(nodes, functionName)
|
| +{
|
| + return nodes.some(n => n.callFrame.functionName === functionName);
|
| +}
|
|
|