From be5b6c3704d1c5741e836554d9537529c28cff9a Mon Sep 17 00:00:00 2001 From: Vse Mozhet Byt Date: Sat, 15 Jul 2017 03:30:28 +0300 Subject: [PATCH] doc, lib, test: do not re-require needlessly PR-URL: https://github.com/nodejs/node/pull/14244 Reviewed-By: Alexey Orlenko --- doc/api/child_process.md | 5 ++-- lib/internal/process.js | 14 +++++----- lib/repl.js | 4 +-- test/common/index.js | 16 +++-------- .../test-assert-typedarray-deepequal.js | 6 ++--- test/parallel/test-assert.js | 2 +- .../test-child-process-fork-and-spawn.js | 3 +-- ...test-child-process-send-returns-boolean.js | 3 +-- test/parallel/test-domain-exit-dispose.js | 1 - .../parallel/test-http-invalidheaderfield2.js | 19 +++++++------ test/parallel/test-listen-fd-detached.js | 1 - .../test-net-pause-resume-connecting.js | 10 +++---- test/parallel/test-process-exit-code.js | 27 ++++++++++--------- test/parallel/test-readline-interface.js | 3 +-- test/parallel/test-require-symlink.js | 3 +-- test/parallel/test-tls-session-cache.js | 17 ++++++------ test/pummel/test-vm-memleak.js | 5 ++-- .../sequential/test-child-process-execsync.js | 3 +-- test/sequential/test-module-loading.js | 2 +- 19 files changed, 65 insertions(+), 79 deletions(-) diff --git a/doc/api/child_process.md b/doc/api/child_process.md index 6aab69b7ceb681..1a61e026c4077a 100644 --- a/doc/api/child_process.md +++ b/doc/api/child_process.md @@ -1046,8 +1046,9 @@ socket to the child process. The example below spawns two children that each handle connections with "normal" or "special" priority: ```js -const normal = require('child_process').fork('subprocess.js', ['normal']); -const special = require('child_process').fork('subprocess.js', ['special']); +const { fork } = require('child_process'); +const normal = fork('subprocess.js', ['normal']); +const special = fork('subprocess.js', ['special']); // Open up the server and send sockets to child const server = require('net').createServer(); diff --git a/lib/internal/process.js b/lib/internal/process.js index c8a58504fcf307..76098bb4d8a5b6 100644 --- a/lib/internal/process.js +++ b/lib/internal/process.js @@ -1,5 +1,7 @@ 'use strict'; +const util = require('util'); + var _lazyConstants = null; function lazyConstants() { @@ -185,10 +187,8 @@ function setupKillAndExit() { } } - if (err) { - const errnoException = require('util')._errnoException; - throw errnoException(err, 'kill'); - } + if (err) + throw util._errnoException(err, 'kill'); return true; }; @@ -220,8 +220,7 @@ function setupSignalHandlers() { const err = wrap.start(signum); if (err) { wrap.close(); - const errnoException = require('util')._errnoException; - throw errnoException(err, 'uv_signal_start'); + throw util._errnoException(err, 'uv_signal_start'); } signalWraps[type] = wrap; @@ -261,9 +260,8 @@ function setupChannel() { function setupRawDebug() { - const format = require('util').format; const rawDebug = process._rawDebug; process._rawDebug = function() { - rawDebug(format.apply(null, arguments)); + rawDebug(util.format.apply(null, arguments)); }; } diff --git a/lib/repl.js b/lib/repl.js index eb539cca0ef456..b48242be1bc763 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -61,7 +61,7 @@ try { } // hack for repl require to work properly with node_modules folders -module.paths = require('module')._nodeModulePaths(module.filename); +module.paths = Module._nodeModulePaths(module.filename); // If obj.hasOwnProperty has been overridden, then calling // obj.hasOwnProperty(prop) will break. @@ -869,7 +869,7 @@ function complete(line, callback) { filter = match[1]; var dir, files, f, name, base, ext, abs, subfiles, s; group = []; - var paths = module.paths.concat(require('module').globalPaths); + var paths = module.paths.concat(Module.globalPaths); for (i = 0; i < paths.length; i++) { dir = path.resolve(paths[i], subdir); try { diff --git a/test/common/index.js b/test/common/index.js index 9932a6daf2bda6..df223e051935a8 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -4,7 +4,7 @@ const path = require('path'); const fs = require('fs'); const assert = require('assert'); const os = require('os'); -const child_process = require('child_process'); +const { exec, execSync, spawn, spawnSync } = require('child_process'); const stream = require('stream'); const util = require('util'); const Timer = process.binding('timer_wrap').Timer; @@ -121,7 +121,7 @@ Object.defineProperty(exports, 'inFreeBSDJail', { if (inFreeBSDJail !== null) return inFreeBSDJail; if (exports.isFreeBSD && - child_process.execSync('sysctl -n security.jail.jailed').toString() === + execSync('sysctl -n security.jail.jailed').toString() === '1\n') { inFreeBSDJail = true; } else { @@ -168,7 +168,7 @@ Object.defineProperty(exports, 'opensslCli', {get: function() { if (exports.isWindows) opensslCli += '.exe'; - const opensslCmd = child_process.spawnSync(opensslCli, ['version']); + const opensslCmd = spawnSync(opensslCli, ['version']); if (opensslCmd.status !== 0 || opensslCmd.error !== undefined) { // openssl command cannot be executed opensslCli = false; @@ -219,7 +219,7 @@ exports.childShouldThrowAndAbort = function() { } testCmd += `"${process.argv[0]}" --abort-on-uncaught-exception `; testCmd += `"${process.argv[1]}" child`; - const child = child_process.exec(testCmd); + const child = exec(testCmd); child.on('exit', function onExit(exitCode, signal) { const errMsg = 'Test should have aborted ' + `but instead exited with exit code ${exitCode}` + @@ -239,8 +239,6 @@ exports.ddCommand = function(filename, kilobytes) { exports.spawnCat = function(options) { - const spawn = require('child_process').spawn; - if (exports.isWindows) { return spawn('more', [], options); } else { @@ -250,8 +248,6 @@ exports.spawnCat = function(options) { exports.spawnSyncCat = function(options) { - const spawnSync = require('child_process').spawnSync; - if (exports.isWindows) { return spawnSync('more', [], options); } else { @@ -261,8 +257,6 @@ exports.spawnSyncCat = function(options) { exports.spawnPwd = function(options) { - const spawn = require('child_process').spawn; - if (exports.isWindows) { return spawn('cmd.exe', ['/c', 'cd'], options); } else { @@ -272,8 +266,6 @@ exports.spawnPwd = function(options) { exports.spawnSyncPwd = function(options) { - const spawnSync = require('child_process').spawnSync; - if (exports.isWindows) { return spawnSync('cmd.exe', ['/c', 'cd'], options); } else { diff --git a/test/parallel/test-assert-typedarray-deepequal.js b/test/parallel/test-assert-typedarray-deepequal.js index f5ecb274a86a32..7eed19cc539466 100644 --- a/test/parallel/test-assert-typedarray-deepequal.js +++ b/test/parallel/test-assert-typedarray-deepequal.js @@ -2,7 +2,6 @@ require('../common'); const assert = require('assert'); -const a = require('assert'); function makeBlock(f) { const args = Array.prototype.slice.call(arguments, 1); @@ -51,7 +50,8 @@ equalArrayPairs.forEach((arrayPair) => { notEqualArrayPairs.forEach((arrayPair) => { assert.throws( - makeBlock(a.deepEqual, arrayPair[0], arrayPair[1]), - a.AssertionError + // eslint-disable-next-line no-restricted-properties + makeBlock(assert.deepEqual, arrayPair[0], arrayPair[1]), + assert.AssertionError ); }); diff --git a/test/parallel/test-assert.js b/test/parallel/test-assert.js index 30ab10a1283b82..3579c10f159ad5 100644 --- a/test/parallel/test-assert.js +++ b/test/parallel/test-assert.js @@ -1,7 +1,7 @@ 'use strict'; require('../common'); const assert = require('assert'); -const a = require('assert'); +const a = assert; function makeBlock(f) { const args = Array.prototype.slice.call(arguments, 1); diff --git a/test/parallel/test-child-process-fork-and-spawn.js b/test/parallel/test-child-process-fork-and-spawn.js index 5807147a1c947d..b3e7e29f7d9bd0 100644 --- a/test/parallel/test-child-process-fork-and-spawn.js +++ b/test/parallel/test-child-process-fork-and-spawn.js @@ -1,8 +1,7 @@ 'use strict'; const common = require('../common'); const assert = require('assert'); -const spawn = require('child_process').spawn; -const fork = require('child_process').fork; +const { fork, spawn } = require('child_process'); // Fork, then spawn. The spawned process should not hang. switch (process.argv[2] || '') { diff --git a/test/parallel/test-child-process-send-returns-boolean.js b/test/parallel/test-child-process-send-returns-boolean.js index 379f76a67390b9..d986b633d4140b 100644 --- a/test/parallel/test-child-process-send-returns-boolean.js +++ b/test/parallel/test-child-process-send-returns-boolean.js @@ -3,8 +3,7 @@ const common = require('../common'); const assert = require('assert'); const path = require('path'); const net = require('net'); -const fork = require('child_process').fork; -const spawn = require('child_process').spawn; +const { fork, spawn } = require('child_process'); const emptyFile = path.join(common.fixturesDir, 'empty.js'); diff --git a/test/parallel/test-domain-exit-dispose.js b/test/parallel/test-domain-exit-dispose.js index a9c69ac3396712..686cdb890defb2 100644 --- a/test/parallel/test-domain-exit-dispose.js +++ b/test/parallel/test-domain-exit-dispose.js @@ -1,5 +1,4 @@ 'use strict'; -require('../common'); const common = require('../common'); const assert = require('assert'); const domain = require('domain'); diff --git a/test/parallel/test-http-invalidheaderfield2.js b/test/parallel/test-http-invalidheaderfield2.js index 2267c8565cb634..40415d9c368891 100644 --- a/test/parallel/test-http-invalidheaderfield2.js +++ b/test/parallel/test-http-invalidheaderfield2.js @@ -2,8 +2,7 @@ require('../common'); const assert = require('assert'); const inspect = require('util').inspect; -const checkIsHttpToken = require('_http_common')._checkIsHttpToken; -const checkInvalidHeaderChar = require('_http_common')._checkInvalidHeaderChar; +const { _checkIsHttpToken, _checkInvalidHeaderChar } = require('_http_common'); // Good header field names [ @@ -29,8 +28,8 @@ const checkInvalidHeaderChar = require('_http_common')._checkInvalidHeaderChar; '3.14159265359' ].forEach(function(str) { assert.strictEqual( - checkIsHttpToken(str), true, - `checkIsHttpToken(${inspect(str)}) unexpectedly failed`); + _checkIsHttpToken(str), true, + `_checkIsHttpToken(${inspect(str)}) unexpectedly failed`); }); // Bad header field names [ @@ -55,8 +54,8 @@ const checkInvalidHeaderChar = require('_http_common')._checkInvalidHeaderChar; 'This,That' ].forEach(function(str) { assert.strictEqual( - checkIsHttpToken(str), false, - `checkIsHttpToken(${inspect(str)}) unexpectedly succeeded`); + _checkIsHttpToken(str), false, + `_checkIsHttpToken(${inspect(str)}) unexpectedly succeeded`); }); @@ -68,8 +67,8 @@ const checkInvalidHeaderChar = require('_http_common')._checkInvalidHeaderChar; '!@#$%^&*()-_=+\\;\':"[]{}<>,./?|~`' ].forEach(function(str) { assert.strictEqual( - checkInvalidHeaderChar(str), false, - `checkInvalidHeaderChar(${inspect(str)}) unexpectedly failed`); + _checkInvalidHeaderChar(str), false, + `_checkInvalidHeaderChar(${inspect(str)}) unexpectedly failed`); }); // Bad header field values @@ -84,6 +83,6 @@ const checkInvalidHeaderChar = require('_http_common')._checkInvalidHeaderChar; 'Ding!\x07' ].forEach(function(str) { assert.strictEqual( - checkInvalidHeaderChar(str), true, - `checkInvalidHeaderChar(${inspect(str)}) unexpectedly succeeded`); + _checkInvalidHeaderChar(str), true, + `_checkInvalidHeaderChar(${inspect(str)}) unexpectedly succeeded`); }); diff --git a/test/parallel/test-listen-fd-detached.js b/test/parallel/test-listen-fd-detached.js index 86d866afd13483..c9b840e2d8f04a 100644 --- a/test/parallel/test-listen-fd-detached.js +++ b/test/parallel/test-listen-fd-detached.js @@ -64,7 +64,6 @@ function parent() { }).listen(0, function() { console.error('server listening on %d', this.address().port); - const spawn = require('child_process').spawn; const child = spawn(process.execPath, [__filename, 'child'], { stdio: [ 'ignore', 'ignore', 'ignore', server._handle ], detached: true diff --git a/test/parallel/test-net-pause-resume-connecting.js b/test/parallel/test-net-pause-resume-connecting.js index 1ae51d51fb25f2..602a449359f456 100644 --- a/test/parallel/test-net-pause-resume-connecting.js +++ b/test/parallel/test-net-pause-resume-connecting.js @@ -19,27 +19,27 @@ const server = net.createServer(function(conn) { server.listen(0, function() { // Client 1 - conn = require('net').createConnection(this.address().port, 'localhost'); + conn = net.createConnection(this.address().port, 'localhost'); conn.resume(); conn.on('data', onDataOk); // Client 2 - conn = require('net').createConnection(this.address().port, 'localhost'); + conn = net.createConnection(this.address().port, 'localhost'); conn.pause(); conn.resume(); conn.on('data', onDataOk); // Client 3 - conn = require('net').createConnection(this.address().port, 'localhost'); + conn = net.createConnection(this.address().port, 'localhost'); conn.pause(); conn.on('data', common.mustNotCall()); scheduleTearDown(conn); // Client 4 - conn = require('net').createConnection(this.address().port, 'localhost'); + conn = net.createConnection(this.address().port, 'localhost'); conn.resume(); conn.pause(); conn.resume(); @@ -47,7 +47,7 @@ server.listen(0, function() { // Client 5 - conn = require('net').createConnection(this.address().port, 'localhost'); + conn = net.createConnection(this.address().port, 'localhost'); conn.resume(); conn.resume(); conn.pause(); diff --git a/test/parallel/test-process-exit-code.js b/test/parallel/test-process-exit-code.js index a956ee19310f26..c26a72fcc596d7 100644 --- a/test/parallel/test-process-exit-code.js +++ b/test/parallel/test-process-exit-code.js @@ -62,22 +62,23 @@ function child5() { } function parent() { + const { spawn } = require('child_process'); + const node = process.execPath; + const f = __filename; + const option = { stdio: [ 0, 1, 'ignore' ] }; + + const test = (arg, exit) => { + spawn(node, [f, arg], option).on('exit', (code) => { + assert.strictEqual( + code, exit, + `wrong exit for ${arg}\nexpected:${exit} but got:${code}`); + console.log('ok - %s exited with %d', arg, exit); + }); + }; + test('child1', 42); test('child2', 42); test('child3', 0); test('child4', 1); test('child5', 99); } - -function test(arg, exit) { - const spawn = require('child_process').spawn; - const node = process.execPath; - const f = __filename; - const option = { stdio: [ 0, 1, 'ignore' ] }; - spawn(node, [f, arg], option).on('exit', function(code) { - assert.strictEqual( - code, exit, - `wrong exit for ${arg}\nexpected:${exit} but got:${code}`); - console.log('ok - %s exited with %d', arg, exit); - }); -} diff --git a/test/parallel/test-readline-interface.js b/test/parallel/test-readline-interface.js index d101a4582dfadb..83b9912e471faa 100644 --- a/test/parallel/test-readline-interface.js +++ b/test/parallel/test-readline-interface.js @@ -4,8 +4,7 @@ const assert = require('assert'); const readline = require('readline'); const EventEmitter = require('events').EventEmitter; const inherits = require('util').inherits; -const Writable = require('stream').Writable; -const Readable = require('stream').Readable; +const { Writable, Readable } = require('stream'); function FakeInput() { EventEmitter.call(this); diff --git a/test/parallel/test-require-symlink.js b/test/parallel/test-require-symlink.js index 85fcb2d2d16f9d..f5129e02739ca0 100644 --- a/test/parallel/test-require-symlink.js +++ b/test/parallel/test-require-symlink.js @@ -4,8 +4,7 @@ const common = require('../common'); const assert = require('assert'); const path = require('path'); const fs = require('fs'); -const exec = require('child_process').exec; -const spawn = require('child_process').spawn; +const { exec, spawn } = require('child_process'); common.refreshTmpDir(); diff --git a/test/parallel/test-tls-session-cache.js b/test/parallel/test-tls-session-cache.js index 326e760f495e82..69ad1074e586fa 100644 --- a/test/parallel/test-tls-session-cache.js +++ b/test/parallel/test-tls-session-cache.js @@ -7,6 +7,15 @@ if (!common.opensslCli) if (!common.hasCrypto) common.skip('missing crypto'); +const assert = require('assert'); +const tls = require('tls'); +const fs = require('fs'); +const { join } = require('path'); +const { spawn } = require('child_process'); + +const keyFile = join(common.fixturesDir, 'agent.key'); +const certFile = join(common.fixturesDir, 'agent.crt'); + doTest({ tickets: false }, function() { doTest({ tickets: true }, function() { console.error('all done'); @@ -14,14 +23,6 @@ doTest({ tickets: false }, function() { }); function doTest(testOptions, callback) { - const assert = require('assert'); - const tls = require('tls'); - const fs = require('fs'); - const join = require('path').join; - const spawn = require('child_process').spawn; - - const keyFile = join(common.fixturesDir, 'agent.key'); - const certFile = join(common.fixturesDir, 'agent.crt'); const key = fs.readFileSync(keyFile); const cert = fs.readFileSync(certFile); const options = { diff --git a/test/pummel/test-vm-memleak.js b/test/pummel/test-vm-memleak.js index 8503e2389b44a7..8bcd08b48606af 100644 --- a/test/pummel/test-vm-memleak.js +++ b/test/pummel/test-vm-memleak.js @@ -3,6 +3,7 @@ require('../common'); const assert = require('assert'); +const vm = require('vm'); const start = Date.now(); let maxMem = 0; @@ -14,7 +15,7 @@ assert(ok, 'Run this test with --max_old_space_size=32.'); const interval = setInterval(function() { try { - require('vm').runInNewContext('throw 1;'); + vm.runInNewContext('throw 1;'); } catch (e) { } @@ -31,7 +32,7 @@ const interval = setInterval(function() { function testContextLeak() { for (let i = 0; i < 1000; i++) - require('vm').createContext({}); + vm.createContext({}); } process.on('exit', function() { diff --git a/test/sequential/test-child-process-execsync.js b/test/sequential/test-child-process-execsync.js index 61e3bf60f75b13..cccd3b7e77d6f3 100644 --- a/test/sequential/test-child-process-execsync.js +++ b/test/sequential/test-child-process-execsync.js @@ -2,8 +2,7 @@ const common = require('../common'); const assert = require('assert'); -const execSync = require('child_process').execSync; -const execFileSync = require('child_process').execFileSync; +const { execFileSync, execSync } = require('child_process'); const TIMER = 200; const SLEEP = 2000; diff --git a/test/sequential/test-module-loading.js b/test/sequential/test-module-loading.js index 8fd681cc651be8..73f40890a422f9 100644 --- a/test/sequential/test-module-loading.js +++ b/test/sequential/test-module-loading.js @@ -110,7 +110,7 @@ try { assert.strictEqual('blah', e.message); } -assert.strictEqual(require('path').dirname(__filename), __dirname); +assert.strictEqual(path.dirname(__filename), __dirname); console.error('load custom file types with extensions'); require.extensions['.test'] = function(module, filename) {