summaryrefslogtreecommitdiff
path: root/deps/uv/test/test-tty.c
diff options
context:
space:
mode:
authorcjihrig <cjihrig@gmail.com>2017-01-09 17:10:37 -0500
committercjihrig <cjihrig@gmail.com>2017-01-12 10:26:43 -0500
commit74fb8a29485e47a9a37d357a1c8a149b414bef9f (patch)
tree46dbe42071fa227653ab0b240ed259b800deba51 /deps/uv/test/test-tty.c
parentd3eca025763584462203d53d92a9eda2278c7810 (diff)
downloadnode-new-74fb8a29485e47a9a37d357a1c8a149b414bef9f.tar.gz
deps: upgrade libuv to 1.10.2
Refs: https://github.com/nodejs/node/issues/9439 Fixes: https://github.com/nodejs/node/issues/9464 Fixes: https://github.com/nodejs/node/issues/9690 PR-URL: https://github.com/nodejs/node/pull/10717 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Diffstat (limited to 'deps/uv/test/test-tty.c')
-rw-r--r--deps/uv/test/test-tty.c87
1 files changed, 87 insertions, 0 deletions
diff --git a/deps/uv/test/test-tty.c b/deps/uv/test/test-tty.c
index d03f07a441..d1f7deb231 100644
--- a/deps/uv/test/test-tty.c
+++ b/deps/uv/test/test-tty.c
@@ -212,6 +212,93 @@ TEST_IMPL(tty_raw) {
MAKE_VALGRIND_HAPPY();
return 0;
}
+
+TEST_IMPL(tty_empty_write) {
+ int r;
+ int ttyout_fd;
+ uv_tty_t tty_out;
+ char dummy[1];
+ uv_buf_t bufs[1];
+ uv_loop_t* loop;
+
+ /* Make sure we have an FD that refers to a tty */
+ HANDLE handle;
+
+ loop = uv_default_loop();
+
+ handle = CreateFileA("conout$",
+ GENERIC_READ | GENERIC_WRITE,
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
+ NULL,
+ OPEN_EXISTING,
+ FILE_ATTRIBUTE_NORMAL,
+ NULL);
+ ASSERT(handle != INVALID_HANDLE_VALUE);
+ ttyout_fd = _open_osfhandle((intptr_t) handle, 0);
+
+ ASSERT(ttyout_fd >= 0);
+
+ ASSERT(UV_TTY == uv_guess_handle(ttyout_fd));
+
+ r = uv_tty_init(uv_default_loop(), &tty_out, ttyout_fd, 0); /* Writable. */
+ ASSERT(r == 0);
+
+ bufs[0].len = 0;
+ bufs[0].base = &dummy;
+
+ r = uv_try_write((uv_stream_t*) &tty_out, bufs, 1);
+ ASSERT(r == 0);
+
+ uv_close((uv_handle_t*) &tty_out, NULL);
+
+ uv_run(loop, UV_RUN_DEFAULT);
+
+ MAKE_VALGRIND_HAPPY();
+ return 0;
+}
+
+TEST_IMPL(tty_large_write) {
+ int r;
+ int ttyout_fd;
+ uv_tty_t tty_out;
+ char dummy[10000];
+ uv_buf_t bufs[1];
+ uv_loop_t* loop;
+
+ /* Make sure we have an FD that refers to a tty */
+ HANDLE handle;
+
+ loop = uv_default_loop();
+
+ handle = CreateFileA("conout$",
+ GENERIC_READ | GENERIC_WRITE,
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
+ NULL,
+ OPEN_EXISTING,
+ FILE_ATTRIBUTE_NORMAL,
+ NULL);
+ ASSERT(handle != INVALID_HANDLE_VALUE);
+ ttyout_fd = _open_osfhandle((intptr_t) handle, 0);
+
+ ASSERT(ttyout_fd >= 0);
+
+ ASSERT(UV_TTY == uv_guess_handle(ttyout_fd));
+
+ r = uv_tty_init(uv_default_loop(), &tty_out, ttyout_fd, 0); /* Writable. */
+ ASSERT(r == 0);
+
+ bufs[0] = uv_buf_init(dummy, sizeof(dummy));
+
+ r = uv_try_write((uv_stream_t*) &tty_out, bufs, 1);
+ ASSERT(r == 10000);
+
+ uv_close((uv_handle_t*) &tty_out, NULL);
+
+ uv_run(loop, UV_RUN_DEFAULT);
+
+ MAKE_VALGRIND_HAPPY();
+ return 0;
+}
#endif