test: remove usage of process.binding()

Prefer `internalBinding` or other equivalents over `process.binding()`
(except in tests checking `process.binding()` itself).

PR-URL: https://github.com/nodejs/node/pull/26304
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Minwoo Jung <minwoo@nodesource.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
Anna Henningsen 2019-02-25 22:27:55 +01:00
parent 1133e0bf8b
commit aec34473a7
No known key found for this signature in database
GPG Key ID: 9C63F3A6CD2AD8F9
12 changed files with 37 additions and 34 deletions

View File

@ -5,10 +5,12 @@ const os = require('os');
const cp = require('child_process');
if (process.argv[2] === 'child') {
const { internalBinding } = require('internal/test/binding');
// This is the heart of the test.
new (process.binding('zlib').Zlib)(0).init(1, 2, 3, 4, 5);
new (internalBinding('zlib').Zlib)(0).init(1, 2, 3, 4, 5);
} else {
const child = cp.spawnSync(`${process.execPath}`, [`${__filename}`, 'child']);
const child = cp.spawnSync(
`${process.execPath}`, ['--expose-internals', `${__filename}`, 'child']);
assert.strictEqual(child.stdout.toString(), '');
assert.ok(child.stderr.includes(

View File

@ -11,7 +11,7 @@ const hooks = initHooks();
hooks.enable();
const { internalBinding } = require('internal/test/binding');
const { Zlib } = internalBinding('zlib');
const constants = internalBinding('constants').zlib;
const constants = require('zlib').constants;
const handle = new Zlib(constants.DEFLATE);

View File

@ -29,10 +29,9 @@ const os = require('os');
const { exec, execSync, spawnSync } = require('child_process');
const util = require('util');
const tmpdir = require('./tmpdir');
const {
bits,
hasIntl
} = process.binding('config');
const bits = ['arm64', 'mips', 'mipsel', 'ppc64', 's390x', 'x64']
.includes(process.arch) ? 64 : 32;
const hasIntl = !!process.config.variables.v8_enable_i18n_support;
const { isMainThread } = require('worker_threads');
// Some tests assume a umask of 0o022 so set that up front. Tests that need a

View File

@ -314,7 +314,7 @@ class InspectorSession {
}
class NodeInstance extends EventEmitter {
constructor(inspectorFlags = ['--inspect-brk=0'],
constructor(inspectorFlags = ['--inspect-brk=0', '--expose-internals'],
scriptContents = '',
scriptFile = _MAINSCRIPT) {
super();
@ -348,7 +348,8 @@ class NodeInstance extends EventEmitter {
static async startViaSignal(scriptContents) {
const instance = new NodeInstance(
[], `${scriptContents}\nprocess._rawDebug('started');`, undefined);
['--expose-internals'],
`${scriptContents}\nprocess._rawDebug('started');`, undefined);
const msg = 'Timed out waiting for process to start';
while (await fires(instance.nextStderrString(), msg, TIMEOUT) !==
'started') {}

View File

@ -1,10 +1,5 @@
import module from 'module';
const builtins = new Set(
Object.keys(process.binding('natives')).filter(str =>
/^(?!(?:internal|node|v8)\/)/.test(str))
);
export function dynamicInstantiate(url) {
const builtinInstance = module._load(url.substr(5));
const builtinExports = ['default', ...Object.keys(builtinInstance)];
@ -19,7 +14,7 @@ export function dynamicInstantiate(url) {
}
export function resolve(specifier, base, defaultResolver) {
if (builtins.has(specifier)) {
if (module.builtinModules.includes(specifier)) {
return {
url: `node:${specifier}`,
format: 'dynamic'

View File

@ -1,18 +1,15 @@
import url from 'url';
import path from 'path';
import process from 'process';
import { builtinModules } from 'module';
const builtins = new Set(
Object.keys(process.binding('natives')).filter((str) =>
/^(?!(?:internal|node|v8)\/)/.test(str))
);
const JS_EXTENSIONS = new Set(['.js', '.mjs']);
const baseURL = new url.URL('file://');
baseURL.pathname = process.cwd() + '/';
export function resolve(specifier, parentModuleURL = baseURL /*, defaultResolve */) {
if (builtins.has(specifier)) {
if (builtinModules.includes(specifier)) {
return {
url: specifier,
format: 'builtin'

View File

@ -1,15 +1,11 @@
import { URL } from 'url';
const builtins = new Set(
Object.keys(process.binding('natives')).filter(str =>
/^(?!(?:internal|node|v8)\/)/.test(str))
)
import { builtinModules } from 'module';
const baseURL = new URL('file://');
baseURL.pathname = process.cwd() + '/';
export function resolve (specifier, base = baseURL) {
if (builtins.has(specifier)) {
if (builtinModules.includes(specifier)) {
return {
url: specifier,
format: 'builtin'

View File

@ -3,8 +3,12 @@
const common = require('../common');
if (!process.binding('config').hasTracing)
try {
require('trace_events');
} catch {
common.skip('missing trace events');
}
common.skipIfWorker(); // https://github.com/nodejs/node/issues/22767
const assert = require('assert');

View File

@ -1,8 +1,11 @@
'use strict';
const common = require('../common');
if (!process.binding('config').hasTracing)
try {
require('trace_events');
} catch {
common.skip('missing trace events');
}
const assert = require('assert');
const cp = require('child_process');

View File

@ -1,8 +1,11 @@
'use strict';
const common = require('../common');
if (!process.binding('config').hasTracing)
try {
require('trace_events');
} catch {
common.skip('missing trace events');
}
const assert = require('assert');
const cp = require('child_process');

View File

@ -12,7 +12,8 @@ if (process.argv[2] === 'child') {
common.disableCrashOnUnhandledRejection();
const { Session } = require('inspector');
const { promisify } = require('util');
const { registerAsyncHook } = process.binding('inspector');
const { internalBinding } = require('internal/test/binding');
const { registerAsyncHook } = internalBinding('inspector');
(async () => {
let enabled = 0;
registerAsyncHook(() => ++enabled, () => {});
@ -28,7 +29,8 @@ if (process.argv[2] === 'child') {
} else {
const { spawnSync } = require('child_process');
const options = { encoding: 'utf8' };
const proc = spawnSync(process.execPath, [__filename, 'child'], options);
const proc = spawnSync(
process.execPath, ['--expose-internals', __filename, 'child'], options);
strictEqual(proc.status, 0);
strictEqual(proc.signal, null);
strictEqual(proc.stderr.includes(eyecatcher), true);

View File

@ -13,7 +13,8 @@ process._rawDebug('Waiting until a signal enables the inspector...');
let waiting = setInterval(waitUntilDebugged, 50);
function waitUntilDebugged() {
if (!process.binding('inspector').isEnabled()) return;
const { internalBinding } = require('internal/test/binding');
if (!internalBinding('inspector').isEnabled()) return;
clearInterval(waiting);
// At this point, even though the Inspector is enabled, the default async
// call stack depth is 0. We need a chance to call
@ -36,7 +37,7 @@ function setupTimeoutWithBreak() {
async function waitForInitialSetup(session) {
console.error('[test]', 'Waiting for initial setup');
await session.waitForBreakOnLine(15, '[eval]');
await session.waitForBreakOnLine(16, '[eval]');
}
async function setupTimeoutForStackTrace(session) {
@ -50,7 +51,7 @@ async function setupTimeoutForStackTrace(session) {
async function checkAsyncStackTrace(session) {
console.error('[test]', 'Verify basic properties of asyncStackTrace');
const paused = await session.waitForBreakOnLine(22, '[eval]');
const paused = await session.waitForBreakOnLine(23, '[eval]');
assert(paused.params.asyncStackTrace,
`${Object.keys(paused.params)} contains "asyncStackTrace" property`);
assert(paused.params.asyncStackTrace.description, 'Timeout');