'use strict'; const common = require('../common'); if (process.config.variables.node_without_node_options) common.skip('missing NODE_OPTIONS support'); if (!common.isMainThread) common.skip('process.chdir is not available in Workers'); // Test options specified by env variable. const assert = require('assert'); const exec = require('child_process').execFile; const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); process.chdir(tmpdir.path); 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, { env }, common.mustCall(function(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); })); }