'use strict'; const common = require('../common'); if (process.config.variables.node_without_node_options) common.skip('missing NODE_OPTIONS support'); // Test options specified by env variable. const assert = require('assert'); const exec = require('child_process').execFile; const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); disallow('--version'); disallow('-v'); disallow('--help'); disallow('-h'); disallow('--eval'); disallow('-e'); disallow('--print'); disallow('-p'); disallow('-pe'); disallow('--check'); disallow('-c'); disallow('--interactive'); disallow('-i'); disallow('--v8-options'); disallow('--'); function disallow(opt) { const env = Object.assign({}, process.env, { NODE_OPTIONS: opt }); exec(process.execPath, { cwd: tmpdir.path, env }, common.mustCall((err) => { const message = err.message.split(/\r?\n/)[1]; const expect = `${process.execPath}: ${opt} is not allowed in NODE_OPTIONS`; assert.strictEqual(err.code, 9); assert.strictEqual(message, expect); })); }