| 'use strict'; |
| const common = require('../common'); |
| const assert = require('assert'); |
| const child_process = require('child_process'); |
| const fixtures = require('../common/fixtures'); |
| const { getSystemErrorName } = require('util'); |
| |
| const testScript = fixtures.path('catch-stdout-error.js'); |
| |
| const child = child_process.exec( |
| ...common.escapePOSIXShell`"${process.execPath}" "${testScript}" | "${process.execPath}" -pe "process.stdin.on('data' , () => process.exit(1))"` |
| ); |
| let output = ''; |
| |
| child.stderr.on('data', function(c) { |
| output += c; |
| }); |
| |
| |
| child.on('close', common.mustCall(function(code) { |
| output = JSON.parse(output); |
| |
| assert.strictEqual(output.code, 'EPIPE'); |
| assert.strictEqual(getSystemErrorName(output.errno), 'EPIPE'); |
| assert.strictEqual(output.syscall, 'write'); |
| console.log('ok'); |
| })); |