aboutsummaryrefslogtreecommitdiff
path: root/test/parallel/test-ttywrap-invalid-fd.js
diff options
context:
space:
mode:
authorTrevor Norris <trev.norris@gmail.com>2017-04-11 16:29:39 -0600
committerAnna Henningsen <anna@addaleax.net>2017-05-10 22:21:53 +0200
commit4b9d84df51f7c1d879e27f651cd84de4cb46e229 (patch)
treeb83ff35d2e68163ee018d5794713a67b5816e66b /test/parallel/test-ttywrap-invalid-fd.js
parentdd6e3f69a795a0ab1a27c5709869d00460f12a0d (diff)
downloadandroid-node-v8-4b9d84df51f7c1d879e27f651cd84de4cb46e229.tar.gz
android-node-v8-4b9d84df51f7c1d879e27f651cd84de4cb46e229.tar.bz2
android-node-v8-4b9d84df51f7c1d879e27f651cd84de4cb46e229.zip
tty_wrap: throw when uv_tty_init() returns error
Also add checks in lib/tty.js and tests. PR-URL: https://github.com/nodejs/node/pull/12892 Ref: https://github.com/nodejs/node/pull/11883 Ref: https://github.com/nodejs/node/pull/8531 Reviewed-By: Andreas Madsen <amwebdk@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Diffstat (limited to 'test/parallel/test-ttywrap-invalid-fd.js')
-rw-r--r--test/parallel/test-ttywrap-invalid-fd.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/parallel/test-ttywrap-invalid-fd.js b/test/parallel/test-ttywrap-invalid-fd.js
new file mode 100644
index 0000000000..b78bc689b2
--- /dev/null
+++ b/test/parallel/test-ttywrap-invalid-fd.js
@@ -0,0 +1,36 @@
+'use strict';
+
+const common = require('../common');
+const assert = require('assert');
+const fs = require('fs');
+const tty = require('tty');
+
+
+assert.throws(() => {
+ new tty.WriteStream(-1);
+}, /fd must be positive integer:/);
+
+const err_regex = common.isWindows ?
+ /^Error: EBADF: bad file descriptor, uv_tty_init$/ :
+ /^Error: EINVAL: invalid argument, uv_tty_init$/;
+assert.throws(() => {
+ let fd = 2;
+ // Get first known bad file descriptor.
+ try {
+ while (fs.fstatSync(++fd));
+ } catch (e) { }
+ new tty.WriteStream(fd);
+}, err_regex);
+
+assert.throws(() => {
+ new tty.ReadStream(-1);
+}, /fd must be positive integer:/);
+
+assert.throws(() => {
+ let fd = 2;
+ // Get first known bad file descriptor.
+ try {
+ while (fs.fstatSync(++fd));
+ } catch (e) { }
+ new tty.ReadStream(fd);
+}, err_regex);