1'use strict'; 2 3const common = require('../common'); 4 5if (common.isWindows || common.isAIX || common.isIBMi) 6 common.skip(`No /dev/stdin on ${process.platform}.`); 7 8const assert = require('assert'); 9 10const { spawnSync } = require('child_process'); 11 12for (const code of [ 13 `require('fs').realpath('/dev/stdin', (err, resolvedPath) => { 14 if (err) { 15 console.error(err); 16 process.exit(1); 17 } 18 if (resolvedPath) { 19 process.exit(2); 20 } 21 });`, 22 `try { 23 if (require('fs').realpathSync('/dev/stdin')) { 24 process.exit(2); 25 } 26 } catch (e) { 27 console.error(e); 28 process.exit(1); 29 }`, 30]) { 31 const child = spawnSync(process.execPath, ['-e', code], { 32 stdio: 'pipe' 33 }); 34 if (child.status !== 2) { 35 console.log(code); 36 console.log(child.stderr.toString()); 37 } 38 assert.strictEqual(child.status, 2); 39} 40