summaryrefslogtreecommitdiff
path: root/deps/v8/test/inspector/debugger/session-stop.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/inspector/debugger/session-stop.js')
-rw-r--r--deps/v8/test/inspector/debugger/session-stop.js86
1 files changed, 86 insertions, 0 deletions
diff --git a/deps/v8/test/inspector/debugger/session-stop.js b/deps/v8/test/inspector/debugger/session-stop.js
new file mode 100644
index 0000000000..5c667ee93d
--- /dev/null
+++ b/deps/v8/test/inspector/debugger/session-stop.js
@@ -0,0 +1,86 @@
+// Copyright 2022 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('Checks V8InspectorSession::stop');
+
+InspectorTest.runAsyncTestSuite([
+ async function testSessionStopResumesPause() {
+ let contextGroup = new InspectorTest.ContextGroup();
+ let session = contextGroup.connect();
+ let Protocol = session.Protocol;
+
+ Protocol.Debugger.enable();
+ await Protocol.Debugger.pause();
+ const result = Protocol.Runtime.evaluate({expression: '42'});
+ session.stop();
+ InspectorTest.log(
+ `Evaluation returned: ${(await result).result.result.value}`);
+ },
+ async function testSessionStopResumesInstrumentationPause() {
+ let contextGroup = new InspectorTest.ContextGroup();
+ let session = contextGroup.connect();
+ let Protocol = session.Protocol;
+
+ Protocol.Debugger.enable();
+ await Protocol.Debugger.setInstrumentationBreakpoint(
+ {instrumentation: 'beforeScriptExecution'});
+ const paused = Protocol.Debugger.oncePaused();
+ const result = Protocol.Runtime.evaluate({expression: '42'});
+ InspectorTest.log(`Paused: ${(await paused).params.reason}`);
+ session.stop();
+ InspectorTest.log(
+ `Evaluation returned: ${(await result).result.result.value}`);
+ },
+ async function testSessionStopDisablesDebugger() {
+ let contextGroup = new InspectorTest.ContextGroup();
+ let session = contextGroup.connect();
+ let Protocol = session.Protocol;
+
+ await Protocol.Debugger.enable();
+ session.stop();
+ const pauseResult = await Protocol.Debugger.pause();
+ InspectorTest.log(`Pause error(?): ${pauseResult?.error?.message}`);
+ },
+ async function testSessionStopDisallowsReenabling() {
+ let contextGroup = new InspectorTest.ContextGroup();
+ let session = contextGroup.connect();
+ let Protocol = session.Protocol;
+
+ await Protocol.Debugger.enable();
+ session.stop();
+ const pauseResultAfterStop = await Protocol.Debugger.pause();
+ InspectorTest.log(
+ `Pause error(?) after stop: ${pauseResultAfterStop?.error?.message}`);
+ await Protocol.Debugger.enable();
+ const pauseResult = await Protocol.Debugger.pause();
+ InspectorTest.log(
+ `Pause error(?) after re-enable: ${pauseResult?.error?.message}`);
+ },
+ async function testSessionStopDoesNotDisableOtherSessions() {
+ let contextGroup = new InspectorTest.ContextGroup();
+
+ let session1 = contextGroup.connect();
+ let Protocol1 = session1.Protocol;
+ await Protocol1.Debugger.enable();
+
+ let session2 = contextGroup.connect();
+ let Protocol2 = session2.Protocol;
+ await Protocol2.Debugger.enable();
+
+ session1.stop();
+ const pauseResult1 = await Protocol1.Debugger.pause();
+ InspectorTest.log(
+ `Session 1 pause error after stop: ${pauseResult1?.error?.message}`);
+
+ await Protocol2.Debugger.pause();
+
+ const paused = Protocol2.Debugger.oncePaused();
+ const result = Protocol2.Runtime.evaluate({expression: '42'});
+ InspectorTest.log(`Session 2 paused: ${(await paused).params.reason}`);
+ await Protocol2.Debugger.resume();
+
+ InspectorTest.log(
+ `Session 2 evaluation: ${(await result).result.result.value}`);
+ },
+]);