Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1550)

Unified Diff: test/inspector/runtime/coverage.js

Issue 2700743002: [inspector] extend protocol for code coverage. (Closed)
Patch Set: fix Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/cctest/test-debug.cc ('k') | test/inspector/runtime/coverage-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/inspector/runtime/coverage.js
diff --git a/test/inspector/runtime/coverage.js b/test/inspector/runtime/coverage.js
new file mode 100644
index 0000000000000000000000000000000000000000..dff7eca3893aba64916735700fa68dbb4e96efda
--- /dev/null
+++ b/test/inspector/runtime/coverage.js
@@ -0,0 +1,89 @@
+// 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.
+
+var source =
+`
+function fib(x) {
+ if (x < 2) return 1;
+ return fib(x-1) + fib(x-2);
+}
+(function iife() {
+ return 1;
+})();
+fib(5);
+`;
+
+print("Test collecting code coverage data with Runtime.collectCoverage.");
+
+function ClearAndGC() {
+ return Protocol.Runtime.evaluate({ expression: "fib = null;" })
+ .then(() => Protocol.HeapProfiler.enable())
+ .then(() => Protocol.HeapProfiler.collectGarbage())
+ .then(() => Protocol.HeapProfiler.disable());
+}
+
+InspectorTest.runTestSuite([
+ function testPreciseCoverage(next)
+ {
+ Protocol.Runtime.enable()
+ .then(Protocol.Runtime.startPreciseCoverage)
+ .then(() => Protocol.Runtime.compileScript({ expression: source, sourceURL: "1", persistScript: true }))
+ .then((result) => Protocol.Runtime.runScript({ scriptId: result.result.scriptId }))
+ .then(ClearAndGC)
+ .then(InspectorTest.logMessage)
+ .then(Protocol.Runtime.takePreciseCoverage)
+ .then(InspectorTest.logMessage)
+ .then(Protocol.Runtime.takePreciseCoverage)
+ .then(InspectorTest.logMessage)
+ .then(ClearAndGC)
+ .then(Protocol.Runtime.stopPreciseCoverage)
+ .then(Protocol.Runtime.disable)
+ .then(next);
+ },
+ function testPreciseCoverageFail(next)
+ {
+ Protocol.Runtime.enable()
+ .then(() => Protocol.Runtime.compileScript({ expression: source, sourceURL: "2", persistScript: true }))
+ .then((result) => Protocol.Runtime.runScript({ scriptId: result.result.scriptId }))
+ .then(InspectorTest.logMessage)
+ .then(ClearAndGC)
+ .then(Protocol.Runtime.takePreciseCoverage)
+ .then(InspectorTest.logMessage)
+ .then(ClearAndGC)
+ .then(Protocol.Runtime.disable)
+ .then(next);
+ },
+ function testBestEffortCoverage(next)
+ {
+ Protocol.Runtime.enable()
+ .then(() => Protocol.Runtime.compileScript({ expression: source, sourceURL: "3", persistScript: true }))
+ .then((result) => Protocol.Runtime.runScript({ scriptId: result.result.scriptId }))
+ .then(InspectorTest.logMessage)
+ .then(ClearAndGC)
+ .then(Protocol.Runtime.getBestEffortCoverage)
+ .then(InspectorTest.logMessage)
+ .then(Protocol.Runtime.getBestEffortCoverage)
+ .then(InspectorTest.logMessage)
+ .then(ClearAndGC)
+ .then(Protocol.Runtime.disable)
+ .then(next);
+ },
+ function testBestEffortCoveragePrecise(next)
+ {
+ Protocol.Runtime.enable()
+ .then(Protocol.Runtime.startPreciseCoverage)
+ .then(() => Protocol.Runtime.compileScript({ expression: source, sourceURL: "4", persistScript: true }))
+ .then((result) => Protocol.Runtime.runScript({ scriptId: result.result.scriptId }))
+ .then(InspectorTest.logMessage)
+ .then(ClearAndGC)
+ .then(Protocol.Runtime.getBestEffortCoverage)
+ .then(InspectorTest.logMessage)
+ .then(Protocol.Runtime.getBestEffortCoverage)
+ .then(InspectorTest.logMessage)
+ .then(ClearAndGC)
+ .then(Protocol.Runtime.stopPreciseCoverage)
+ .then(Protocol.Runtime.disable)
+ .then(next);
+ },
+]);
« no previous file with comments | « test/cctest/test-debug.cc ('k') | test/inspector/runtime/coverage-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698