src: add --pending-deprecation and NODE_PENDING_DEPRECATION · nodejs/node@a16b570
1+'use strict';
2+3+// Tests that --pending-deprecation and NODE_PENDING_DEPRECATION both
4+// set the process.binding('config').pendingDeprecation flag that is
5+// used to determine if pending deprecation messages should be shown.
6+// The test is performed by launching two child processes that run
7+// this same test script with different arguments. If those exit with
8+// code 0, then the test passes. If they don't, it fails.
9+10+const common = require('../common');
11+12+const assert = require('assert');
13+const config = process.binding('config');
14+const fork = require('child_process').fork;
15+16+function message(name) {
17+return `${name} did not set the process.binding('config').` +
18+'pendingDeprecation flag.';
19+}
20+21+switch (process.argv[2]) {
22+case 'env':
23+case 'switch':
24+assert.strictEqual(config.pendingDeprecation, true);
25+break;
26+default:
27+// Verify that the flag is off by default.
28+assert.strictEqual(config.pendingDeprecation, undefined);
29+30+// Test the --pending-deprecation command line switch.
31+fork(__filename, ['switch'], {
32+execArgv: ['--pending-deprecation'],
33+silent: true
34+}).on('exit', common.mustCall((code) => {
35+assert.strictEqual(code, 0, message('--pending-deprecation'));
36+}));
37+38+// Test the NODE_PENDING_DEPRECATION environment var.
39+fork(__filename, ['env'], {
40+env: {NODE_PENDING_DEPRECATION: 1},
41+silent: true
42+}).on('exit', common.mustCall((code) => {
43+assert.strictEqual(code, 0, message('NODE_PENDING_DEPRECATION'));
44+}));
45+}