'use strict'; // This tests that process.argv is the same in the preloaded module // and the user module. require('../common'); const tmpdir = require('../common/tmpdir'); const assert = require('assert'); const { join } = require('path'); const { spawnSync } = require('child_process'); const fs = require('fs'); tmpdir.refresh(); fs.writeFileSync( join(tmpdir.path, 'preload.js'), 'console.log(JSON.stringify(process.argv));', 'utf-8'); fs.writeFileSync( join(tmpdir.path, 'main.js'), 'console.log(JSON.stringify(process.argv));', 'utf-8'); const child = spawnSync(process.execPath, ['-r', './preload.js', 'main.js'], { cwd: tmpdir.path }); if (child.status !== 0) { console.log(child.stderr.toString()); assert.strictEqual(child.status, 0); } const lines = child.stdout.toString().trim().split('\n'); assert.deepStrictEqual(JSON.parse(lines[0]), JSON.parse(lines[1]));