summaryrefslogtreecommitdiff
path: root/test/pseudo-tty/test-set-raw-mode-reset-signal.js
blob: f953a01331c050c34965dbe9b565cfd719200a0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
'use strict';
const common = require('../common');
const child_process = require('child_process');

// Tests that exiting through a catchable signal resets the TTY mode.

const proc = child_process.spawn(process.execPath, [
  '-e', 'process.stdin.setRawMode(true); console.log("Y"); while(true) {}'
], { stdio: ['inherit', 'pipe', 'inherit'] });

proc.stdout.on('data', common.mustCall(() => {
  proc.kill('SIGINT');
}));

proc.on('exit', common.mustCall(() => {
  const { stdout } = child_process.spawnSync('stty', {
    stdio: ['inherit', 'pipe', 'inherit'],
    encoding: 'utf8'
  });

  if (stdout.match(/-echo\b/)) {
    console.log(stdout);
  }
}));