Skip to content

Commit

Permalink
test: remove common.globalCheck
Browse files Browse the repository at this point in the history
This flag is partially used in tests where it was not necessary and
it is always possible to replace this flag with
`common.allowGlobals`. This makes sure all globals are truly tested
for.

PR-URL: nodejs#20717
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
  • Loading branch information
BridgeAR committed May 19, 2018
1 parent f954aba commit becc3ec
Show file tree
Hide file tree
Showing 17 changed files with 33 additions and 44 deletions.
5 changes: 0 additions & 5 deletions test/common/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,11 +150,6 @@ Attempts to get a valid TTY file descriptor. Returns `-1` if it fails.

The TTY file descriptor is assumed to be capable of being writable.

### globalCheck
* [&lt;boolean>]

Set to `false` if the test should not check for global leaks.

### hasCrypto
* [&lt;boolean>]

Expand Down
6 changes: 0 additions & 6 deletions test/common/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -366,21 +366,15 @@ function leakedGlobals() {
}
exports.leakedGlobals = leakedGlobals;

// Turn this off if the test should not check for global leaks.
exports.globalCheck = true;

process.on('exit', function() {
if (!exports.globalCheck) return;
const leaked = leakedGlobals();
if (leaked.length > 0) {
assert.fail(`Unexpected global(s) found: ${leaked.join(', ')}`);
}
});


const mustCallChecks = [];


function runCallChecks(exitCode) {
if (exitCode !== 0) return;

Expand Down
4 changes: 0 additions & 4 deletions test/common/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,7 @@ export function leakedGlobals() {
}
}

// Turn this off if the test should not check for global leaks.
export let globalCheck = true; // eslint-disable-line

process.on('exit', function() {
if (!globalCheck) return;
const leaked = leakedGlobals();
if (leaked.length > 0) {
assert.fail(`Unexpected global(s) found: ${leaked.join(', ')}`);
Expand Down
2 changes: 1 addition & 1 deletion test/parallel/test-domain-crypto.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ if (!common.hasCrypto)
const crypto = require('crypto');

// Pollution of global is intentional as part of test.
common.globalCheck = false;
common.allowGlobals(require('domain'));
// See https://github.com/nodejs/node/commit/d1eff9ab
global.domain = require('domain');

Expand Down
2 changes: 1 addition & 1 deletion test/parallel/test-global.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ const fixtures = require('../common/fixtures');

const assert = require('assert');

common.globalCheck = false;
common.allowGlobals('bar', 'foo');

baseFoo = 'foo'; // eslint-disable-line no-undef
global.baseBar = 'bar';
Expand Down
4 changes: 1 addition & 3 deletions test/parallel/test-repl-autolibs.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@ const assert = require('assert');
const util = require('util');
const repl = require('repl');

// This test adds global variables
common.globalCheck = false;

const putIn = new common.ArrayStream();
repl.start('', putIn, null, true);

Expand Down Expand Up @@ -65,6 +62,7 @@ function test2() {
};
const val = {};
global.url = val;
common.allowGlobals(val);
assert(!gotWrite);
putIn.run(['url']);
assert(gotWrite);
Expand Down
5 changes: 1 addition & 4 deletions test/parallel/test-repl-envvars.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

// Flags: --expose-internals

const common = require('../common');
require('../common');
const stream = require('stream');
const REPL = require('internal/repl');
const assert = require('assert');
Expand Down Expand Up @@ -47,9 +47,6 @@ function run(test) {
REPL.createInternalRepl(env, opts, function(err, repl) {
assert.ifError(err);

// The REPL registers 'module' and 'require' globals
common.allowGlobals(repl.context.module, repl.context.require);

assert.strictEqual(expected.terminal, repl.terminal,
`Expected ${inspect(expected)} with ${inspect(env)}`);
assert.strictEqual(expected.useColors, repl.useColors,
Expand Down
3 changes: 0 additions & 3 deletions test/parallel/test-repl-history-perm.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,6 @@ const replHistoryPath = path.join(tmpdir.path, '.node_repl_history');
const checkResults = common.mustCall(function(err, r) {
assert.ifError(err);

// The REPL registers 'module' and 'require' globals
common.allowGlobals(r.context.module, r.context.require);

r.input.end();
const stat = fs.statSync(replHistoryPath);
const fileMode = stat.mode & 0o777;
Expand Down
3 changes: 0 additions & 3 deletions test/parallel/test-repl-persistent-history.js
Original file line number Diff line number Diff line change
Expand Up @@ -216,9 +216,6 @@ function runTest(assertCleaned) {
throw err;
}

// The REPL registers 'module' and 'require' globals
common.allowGlobals(repl.context.module, repl.context.require);

repl.once('close', () => {
if (repl._flushing) {
repl.once('flushHistory', onClose);
Expand Down
2 changes: 2 additions & 0 deletions test/parallel/test-repl-reset-event.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ const assert = require('assert');
const repl = require('repl');
const util = require('util');

common.allowGlobals(42);

// Create a dummy stream that does nothing
const dummy = new common.ArrayStream();

Expand Down
3 changes: 0 additions & 3 deletions test/parallel/test-repl-use-global.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@ const globalTest = (useGlobal, cb, output) => (err, repl) => {
if (err)
return cb(err);

// The REPL registers 'module' and 'require' globals
common.allowGlobals(repl.context.module, repl.context.require);

let str = '';
output.on('data', (data) => (str += data));
global.lunch = 'tacos';
Expand Down
3 changes: 1 addition & 2 deletions test/parallel/test-repl.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ const assert = require('assert');
const net = require('net');
const repl = require('repl');

common.globalCheck = false;
common.crashOnUnhandledRejection();

const message = 'Read, Eval, Print Loop';
Expand All @@ -41,7 +40,6 @@ global.invoke_me = function(arg) {
return `invoked ${arg}`;
};


// Helpers for describing the expected output:
const kArrow = /^ *\^+ *$/; // Arrow of ^ pointing to syntax error location
const kSource = Symbol('kSource'); // Placeholder standing for input readback
Expand Down Expand Up @@ -779,6 +777,7 @@ const tcpTests = [

socket.end();
}
common.allowGlobals(...Object.values(global));
})();

function startTCPRepl() {
Expand Down
5 changes: 3 additions & 2 deletions test/parallel/test-require-deps-deprecation.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

const common = require('../common');
const assert = require('assert');
// The v8 modules when imported leak globals. Disable global check.
common.globalCheck = false;

const deprecatedModules = [
'node-inspect/lib/_inspect',
Expand Down Expand Up @@ -53,3 +51,6 @@ for (const m of deps) {
}
assert.notStrictEqual(path, m);
}

// The V8 modules add the WebInspector to the globals.
common.allowGlobals(global.WebInspector);
2 changes: 1 addition & 1 deletion test/parallel/test-timer-immediate.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict';
const common = require('../common');
common.globalCheck = false;
global.process = {}; // Boom!
common.allowGlobals(global.process);
setImmediate(common.mustCall());
10 changes: 8 additions & 2 deletions test/parallel/test-vm-new-script-this-context.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ const common = require('../common');
const assert = require('assert');
const Script = require('vm').Script;

common.globalCheck = false;

// Run a string
let script = new Script('\'passed\';');
const result = script.runInThisContext(script);
Expand Down Expand Up @@ -60,3 +58,11 @@ global.f = function() { global.foo = 100; };
script = new Script('f()');
script.runInThisContext(script);
assert.strictEqual(100, global.foo);

common.allowGlobals(
global.hello,
global.code,
global.foo,
global.obj,
global.f
);
9 changes: 7 additions & 2 deletions test/parallel/test-vm-run-in-new-context.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@ const vm = require('vm');
assert.strictEqual(typeof global.gc, 'function',
'Run this test with --expose-gc');

common.globalCheck = false;

// Run a string
const result = vm.runInNewContext('\'passed\';');
assert.strictEqual(result, 'passed');
Expand Down Expand Up @@ -93,3 +91,10 @@ fn();
return true;
});
}

common.allowGlobals(
global.hello,
global.code,
global.foo,
global.obj
);
9 changes: 7 additions & 2 deletions test/parallel/test-vm-static-this.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ const common = require('../common');
const assert = require('assert');
const vm = require('vm');

common.globalCheck = false;

// Run a string
const result = vm.runInThisContext('\'passed\';');
assert.strictEqual('passed', result);
Expand Down Expand Up @@ -58,3 +56,10 @@ assert.strictEqual(1, global.foo);
global.f = function() { global.foo = 100; };
vm.runInThisContext('f()');
assert.strictEqual(100, global.foo);

common.allowGlobals(
global.hello,
global.foo,
global.obj,
global.f
);

0 comments on commit becc3ec

Please sign in to comment.