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

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

Issue 2700743002: [inspector] extend protocol for code coverage. (Closed)
Patch Set: small 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
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..7415c3061654e52d9b987f2efc0eb178044b3d2e
--- /dev/null
+++ b/test/inspector/runtime/coverage.js
@@ -0,0 +1,83 @@
+// 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((result) => InspectorTest.logMessage(result))
kozy 2017/02/21 17:57:29 .then(InspectorTest.logMessage)
+ .then(() => Protocol.Runtime.takePreciseCoverage())
+ .then((result) => InspectorTest.logMessage(result))
+ .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((result) => InspectorTest.logMessage(result))
+ .then(ClearAndGC)
+ .then(() => Protocol.Runtime.takePreciseCoverage())
+ .then((result) => InspectorTest.logMessage(result))
+ .then(ClearAndGC)
+ .then(() => Protocol.Runtime.disable())
+ .then(() => next());
kozy 2017/02/21 17:57:30 .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((result) => InspectorTest.logMessage(result))
+ .then(ClearAndGC)
+ .then(() => Protocol.Runtime.takeBestEffortCoverage())
+ .then((result) => InspectorTest.logMessage(result))
+ .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((result) => InspectorTest.logMessage(result))
+ .then(ClearAndGC)
+ .then(() => Protocol.Runtime.takeBestEffortCoverage())
+ .then((result) => InspectorTest.logMessage(result))
+ .then(ClearAndGC)
+ .then(() => Protocol.Runtime.stopPreciseCoverage())
+ .then(() => Protocol.Runtime.disable())
+ .then(() => next());
+ },
+]);

Powered by Google App Engine
This is Rietveld 408576698