test: fix buggy getTTYfd() implementation
PR-URL: https://github.com/nodejs/node/pull/17781 Ref: https://github.com/nodejs/node/pull/17781#discussion_r158030728 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Timothy Gu <timothygu99@gmail.com> Reviewed-By: Jon Moss <me@jonathanmoss.me> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
parent
40bab30067
commit
1af82f3d0e
@ -249,28 +249,25 @@ if (common.hasCrypto) { // eslint-disable-line crypto-check
|
||||
// Do our best to grab a tty fd.
|
||||
function getTTYfd() {
|
||||
const tty = require('tty');
|
||||
let tty_fd = 0;
|
||||
if (!tty.isatty(tty_fd)) tty_fd++;
|
||||
else if (!tty.isatty(tty_fd)) tty_fd++;
|
||||
else if (!tty.isatty(tty_fd)) tty_fd++;
|
||||
else {
|
||||
let ttyFd = [0, 1, 2].find(tty.isatty);
|
||||
if (ttyFd === undefined) {
|
||||
try {
|
||||
tty_fd = fs.openSync('/dev/tty');
|
||||
ttyFd = fs.openSync('/dev/tty');
|
||||
} catch (e) {
|
||||
// There aren't any tty fd's available to use.
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
return tty_fd;
|
||||
return ttyFd;
|
||||
}
|
||||
|
||||
const tty_fd = getTTYfd();
|
||||
if (tty_fd >= 0) {
|
||||
const ttyFd = getTTYfd();
|
||||
if (ttyFd >= 0) {
|
||||
const tty_wrap = process.binding('tty_wrap');
|
||||
// fd may still be invalid, so guard against it.
|
||||
const handle = (() => {
|
||||
try {
|
||||
return new tty_wrap.TTY(tty_fd, false);
|
||||
return new tty_wrap.TTY(ttyFd, false);
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user