Files
bun.sh/test/js/node/test/parallel/test-internal-module-require.js
2024-12-22 20:39:42 -08:00

115 lines
2.9 KiB
JavaScript

'use strict';
// // Flags: --expose-internals
// // This verifies that
// // 1. We do not leak internal modules unless the --require-internals option
// // is on.
// // 2. We do not accidentally leak any modules to the public global scope.
// // 3. Deprecated modules are properly deprecated.
const common = require('../common');
common.skip("This test is not going to be implemented in Bun. We do not support --expose-internals.")
// if (!common.isMainThread) {
// common.skip('Cannot test the existence of --expose-internals from worker');
// }
// const assert = require('assert');
// const fork = require('child_process').fork;
// const expectedPublicModules = new Set([
// '_http_agent',
// '_http_client',
// '_http_common',
// '_http_incoming',
// '_http_outgoing',
// '_http_server',
// '_stream_duplex',
// '_stream_passthrough',
// '_stream_readable',
// '_stream_transform',
// '_stream_wrap',
// '_stream_writable',
// '_tls_common',
// '_tls_wrap',
// 'assert',
// 'async_hooks',
// 'buffer',
// 'child_process',
// 'cluster',
// 'console',
// 'constants',
// 'crypto',
// 'dgram',
// 'dns',
// 'domain',
// 'events',
// 'fs',
// 'http',
// 'http2',
// 'https',
// 'inspector',
// 'module',
// 'net',
// 'os',
// 'path',
// 'perf_hooks',
// 'process',
// 'punycode',
// 'querystring',
// 'readline',
// 'repl',
// 'stream',
// 'string_decoder',
// 'sys',
// 'timers',
// 'tls',
// 'trace_events',
// 'tty',
// 'url',
// 'util',
// 'v8',
// 'vm',
// 'worker_threads',
// 'zlib',
// ]);
// if (process.argv[2] === 'child') {
// assert(!process.execArgv.includes('--expose-internals'));
// process.once('message', ({ allBuiltins }) => {
// const publicModules = new Set();
// for (const id of allBuiltins) {
// if (id.startsWith('internal/')) {
// assert.throws(() => {
// require(id);
// }, {
// code: 'MODULE_NOT_FOUND',
// message: `Cannot find module '${id}'`
// });
// } else {
// require(id);
// publicModules.add(id);
// }
// }
// assert(allBuiltins.length > publicModules.size);
// // Make sure all the public modules are available through
// // require('module').builtinModules
// assert.deepStrictEqual(
// publicModules,
// new Set(require('module').builtinModules)
// );
// assert.deepStrictEqual(publicModules, expectedPublicModules);
// });
// } else {
// assert(process.execArgv.includes('--expose-internals'));
// const child = fork(__filename, ['child'], {
// execArgv: []
// });
// const { builtinModules } = require('module');
// // When --expose-internals is on, require('module').builtinModules
// // contains internal modules.
// const message = { allBuiltins: builtinModules };
// child.send(message);
// }