Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
test: fix scriptParsed event expectations
As per Node.js docs, vm.Script instance is not bound to any context.

However, this test was expecting otherwise and depended on
implementation details which are going to change.

Refs: https://chromium-review.googlesource.com/c/v8/v8/+/1013581
  • Loading branch information
RReverser authored and targos committed Jul 25, 2018
commit ee334a1d9518fb08e87bb071cd41da3ebf774767
34 changes: 7 additions & 27 deletions test/sequential/test-inspector-scriptparsed-context.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,17 @@ const script = `
'use strict';
const assert = require('assert');
const vm = require('vm');
const { kParsingContext } = process.binding('contextify');
global.outer = true;
global.inner = false;
const context = vm.createContext({
outer: false,
inner: true
});
const script = new vm.Script("outer");
debugger;

const scriptMain = new vm.Script("outer");
debugger;

const scriptContext = new vm.Script("inner", {
[kParsingContext]: context
});
debugger;

assert.strictEqual(scriptMain.runInThisContext(), true);
assert.strictEqual(scriptMain.runInContext(context), false);
assert.strictEqual(scriptContext.runInThisContext(), false);
assert.strictEqual(scriptContext.runInContext(context), true);
assert.strictEqual(script.runInThisContext(), true);
assert.strictEqual(script.runInContext(context), false);
debugger;

vm.runInContext('inner', context);
Expand Down Expand Up @@ -64,35 +54,25 @@ async function runTests() {
await session.waitForBreakOnLine(0, '[eval]');

await session.send({ 'method': 'Runtime.enable' });
const topContext = await getContext(session);
await getContext(session);
await session.send({ 'method': 'Debugger.resume' });
const childContext = await getContext(session);
await session.waitForBreakOnLine(13, '[eval]');

console.error('[test]', 'Script associated with current context by default');
await session.send({ 'method': 'Debugger.resume' });
await checkScriptContext(session, topContext);
await session.waitForBreakOnLine(16, '[eval]');

console.error('[test]', 'Script associated with selected context');
await session.send({ 'method': 'Debugger.resume' });
await checkScriptContext(session, childContext);
await session.waitForBreakOnLine(21, '[eval]');

console.error('[test]', 'Script is unbound');
await session.send({ 'method': 'Debugger.resume' });
await session.waitForBreakOnLine(27, '[eval]');
await session.waitForBreakOnLine(17, '[eval]');

console.error('[test]', 'vm.runInContext associates script with context');
await session.send({ 'method': 'Debugger.resume' });
await checkScriptContext(session, childContext);
await session.waitForBreakOnLine(30, '[eval]');
await session.waitForBreakOnLine(20, '[eval]');

console.error('[test]', 'vm.runInNewContext associates script with context');
await session.send({ 'method': 'Debugger.resume' });
const thirdContext = await getContext(session);
await checkScriptContext(session, thirdContext);
await session.waitForBreakOnLine(33, '[eval]');
await session.waitForBreakOnLine(23, '[eval]');

console.error('[test]', 'vm.runInNewContext can contain debugger statements');
await session.send({ 'method': 'Debugger.resume' });
Expand Down