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