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

Unified Diff: test/inspector/debugger/continue-to-location-target-call-frames.js

Issue 2879923003: [inspector] added targetCallFrames for continueToLocation (Closed)
Patch Set: ac Created 3 years, 7 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/debugger/continue-to-location-target-call-frames.js
diff --git a/test/inspector/debugger/continue-to-location-target-call-frames.js b/test/inspector/debugger/continue-to-location-target-call-frames.js
new file mode 100644
index 0000000000000000000000000000000000000000..6f5d8b5f00ed0b464357e09f34d68b9339694ec7
--- /dev/null
+++ b/test/inspector/debugger/continue-to-location-target-call-frames.js
@@ -0,0 +1,139 @@
+// 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.
+
+InspectorTest.log('Check that continue-to-location works with different strategies.');
+
+InspectorTest.addScript(`
+async function asyncFact(n) {
+ if (n == 0) return 1;
+ let r = n * await asyncFact(n - 1);
+ console.log(r);
+ return r;
+}
+
+function fact(n) {
+ if (n == 0) return 1;
+ let r = n * fact(n - 1);
+ console.log(r);
+ return r;
+}
+
+function topLevel() {
+ eval(` + '`' + `
+ var a = 1;
+ var b = 2;
+ fact(3);
+ console.log(a + b);
+ ` + '`' + `);
+}
+
+//# sourceURL=test.js`, 7, 26);
+
+InspectorTest.setupScriptMap();
+InspectorTest.runAsyncTestSuite([
+ async function testAwaitAny() {
+ Protocol.Debugger.enable();
+ Protocol.Debugger.setAsyncCallStackDepth({ maxDepth: 128 });
+ Protocol.Debugger.pause();
+ Protocol.Runtime.evaluate({expression: 'asyncFact(4)//# sourceURL=expr.js'});
+ await pausedAndDumpStack();
+ Protocol.Debugger.stepInto();
+ let message = await pausedAndDumpStack();
+ let location = message.params.callFrames[0].location;
+ location.lineNumber = 11;
+ Protocol.Debugger.continueToLocation({location, targetCallFrames: 'any'});
+ await pausedAndDumpStack();
+ Protocol.Debugger.disable();
+ },
+
+ async function testAwaitCurrent() {
+ Protocol.Debugger.enable();
+ Protocol.Debugger.setAsyncCallStackDepth({ maxDepth: 128 });
+ Protocol.Debugger.pause();
+ Protocol.Runtime.evaluate({expression: 'asyncFact(4)//# sourceURL=expr.js'});
+ await pausedAndDumpStack();
+ Protocol.Debugger.stepInto();
+ let message = await pausedAndDumpStack();
+ let location = message.params.callFrames[0].location;
+ location.lineNumber = 11;
+ Protocol.Debugger.continueToLocation({location, targetCallFrames: 'current'});
+ await pausedAndDumpStack();
+ await Protocol.Debugger.resume();
+ Protocol.Debugger.disable();
+ },
+
+ async function testAny() {
+ Protocol.Debugger.enable();
+ Protocol.Debugger.setAsyncCallStackDepth({ maxDepth: 128 });
+ Protocol.Debugger.pause();
+ Protocol.Runtime.evaluate({expression: 'fact(4)//# sourceURL=expr.js'});
+ await pausedAndDumpStack();
+ Protocol.Debugger.stepInto();
+ let message = await pausedAndDumpStack();
+ let location = message.params.callFrames[0].location;
+ location.lineNumber = 18;
+ Protocol.Debugger.continueToLocation({location, targetCallFrames: 'any'});
+ await pausedAndDumpStack();
+ Protocol.Debugger.disable();
+ },
+
+ async function testCurrent() {
+ Protocol.Debugger.enable();
+ Protocol.Debugger.setAsyncCallStackDepth({ maxDepth: 128 });
+ Protocol.Debugger.pause();
+ Protocol.Runtime.evaluate({expression: 'fact(4)//# sourceURL=expr.js'});
+ await pausedAndDumpStack();
+ Protocol.Debugger.stepInto();
+ let message = await pausedAndDumpStack();
+ let location = message.params.callFrames[0].location;
+ location.lineNumber = 18;
+ Protocol.Debugger.continueToLocation({location, targetCallFrames: 'current'});
+ await pausedAndDumpStack();
+ await Protocol.Debugger.resume();
+ Protocol.Debugger.disable();
+ },
+
+ async function testTopLevelAny() {
+ Protocol.Debugger.enable();
+ Protocol.Debugger.setAsyncCallStackDepth({ maxDepth: 128 });
+ Protocol.Debugger.pause();
+ Protocol.Runtime.evaluate({expression: 'topLevel()//# sourceURL=expr.js'});
+ await pausedAndDumpStack();
+ Protocol.Debugger.stepInto();
+ await pausedAndDumpStack();
+ Protocol.Debugger.stepInto();
+ let message = await pausedAndDumpStack();
+ let location = message.params.callFrames[0].location;
+ location.lineNumber = 4;
+ Protocol.Debugger.continueToLocation({location, targetCallFrames: 'any'});
+ await pausedAndDumpStack();
+ Protocol.Debugger.disable();
+ },
+
+ async function testTopLevelCurrent() {
+ Protocol.Debugger.enable();
+ Protocol.Debugger.setAsyncCallStackDepth({ maxDepth: 128 });
+ Protocol.Debugger.pause();
+ Protocol.Runtime.evaluate({expression: 'topLevel()//# sourceURL=expr.js'});
+ await pausedAndDumpStack();
+ Protocol.Debugger.stepInto();
+ await pausedAndDumpStack();
+ Protocol.Debugger.stepInto();
+ let message = await pausedAndDumpStack();
+ let location = message.params.callFrames[0].location;
+ location.lineNumber = 4;
+ Protocol.Debugger.continueToLocation({location, targetCallFrames: 'current'});
+ await pausedAndDumpStack();
+ await Protocol.Debugger.resume();
+ Protocol.Debugger.disable();
+ }
+]);
+
+async function pausedAndDumpStack() {
+ let message = await Protocol.Debugger.oncePaused();
+ InspectorTest.logCallFrames(message.params.callFrames);
+ InspectorTest.logAsyncStackTrace(message.params.asyncStackTrace);
+ InspectorTest.log('');
+ return message;
+}
« no previous file with comments | « src/inspector/v8-stack-trace-impl.cc ('k') | test/inspector/debugger/continue-to-location-target-call-frames-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698