diff options
Diffstat (limited to 'deps/uv/test')
-rw-r--r-- | deps/uv/test/test-fs-event.c | 1 | ||||
-rw-r--r-- | deps/uv/test/test-fs-poll.c | 1 | ||||
-rw-r--r-- | deps/uv/test/test-getaddrinfo.c | 32 | ||||
-rw-r--r-- | deps/uv/test/test-getnameinfo.c | 18 | ||||
-rw-r--r-- | deps/uv/test/test-list.h | 6 | ||||
-rw-r--r-- | deps/uv/test/test-pipe-getsockname.c | 141 | ||||
-rw-r--r-- | deps/uv/test/test-poll.c | 27 | ||||
-rw-r--r-- | deps/uv/test/test-spawn.c | 3 |
8 files changed, 175 insertions, 54 deletions
diff --git a/deps/uv/test/test-fs-event.c b/deps/uv/test/test-fs-event.c index 5fd8da430b..0a2ba33145 100644 --- a/deps/uv/test/test-fs-event.c +++ b/deps/uv/test/test-fs-event.c @@ -642,6 +642,7 @@ TEST_IMPL(fs_event_getpath) { len = sizeof buf; r = uv_fs_event_getpath(&fs_event, buf, &len); ASSERT(r == 0); + ASSERT(buf[len - 1] != 0); ASSERT(memcmp(buf, "watch_dir", len) == 0); r = uv_fs_event_stop(&fs_event); ASSERT(r == 0); diff --git a/deps/uv/test/test-fs-poll.c b/deps/uv/test/test-fs-poll.c index f4eb08408f..dbc1515b0b 100644 --- a/deps/uv/test/test-fs-poll.c +++ b/deps/uv/test/test-fs-poll.c @@ -172,6 +172,7 @@ TEST_IMPL(fs_poll_getpath) { ASSERT(0 == uv_fs_poll_start(&poll_handle, poll_cb_fail, FIXTURE, 100)); len = sizeof buf; ASSERT(0 == uv_fs_poll_getpath(&poll_handle, buf, &len)); + ASSERT(buf[len - 1] != 0); ASSERT(0 == memcmp(buf, FIXTURE, len)); uv_close((uv_handle_t*) &poll_handle, close_cb); diff --git a/deps/uv/test/test-getaddrinfo.c b/deps/uv/test/test-getaddrinfo.c index 32ca91effa..45813c313a 100644 --- a/deps/uv/test/test-getaddrinfo.c +++ b/deps/uv/test/test-getaddrinfo.c @@ -97,6 +97,22 @@ TEST_IMPL(getaddrinfo_fail) { } +TEST_IMPL(getaddrinfo_fail_sync) { + uv_getaddrinfo_t req; + + ASSERT(0 > uv_getaddrinfo(uv_default_loop(), + &req, + NULL, + "xyzzy.xyzzy.xyzzy", + NULL, + NULL)); + uv_freeaddrinfo(req.addrinfo); + + MAKE_VALGRIND_HAPPY(); + return 0; +} + + TEST_IMPL(getaddrinfo_basic) { int r; getaddrinfo_handle = (uv_getaddrinfo_t*)malloc(sizeof(uv_getaddrinfo_t)); @@ -118,6 +134,22 @@ TEST_IMPL(getaddrinfo_basic) { } +TEST_IMPL(getaddrinfo_basic_sync) { + uv_getaddrinfo_t req; + + ASSERT(0 == uv_getaddrinfo(uv_default_loop(), + &req, + NULL, + name, + NULL, + NULL)); + uv_freeaddrinfo(req.addrinfo); + + MAKE_VALGRIND_HAPPY(); + return 0; +} + + TEST_IMPL(getaddrinfo_concurrent) { int i, r; int* data; diff --git a/deps/uv/test/test-getnameinfo.c b/deps/uv/test/test-getnameinfo.c index 1ea0f3a437..ebe9246699 100644 --- a/deps/uv/test/test-getnameinfo.c +++ b/deps/uv/test/test-getnameinfo.c @@ -44,6 +44,7 @@ static void getnameinfo_req(uv_getnameinfo_t* handle, ASSERT(service != NULL); } + TEST_IMPL(getnameinfo_basic_ip4) { int r; @@ -63,6 +64,23 @@ TEST_IMPL(getnameinfo_basic_ip4) { return 0; } + +TEST_IMPL(getnameinfo_basic_ip4_sync) { + ASSERT(0 == uv_ip4_addr(address_ip4, port, &addr4)); + + ASSERT(0 == uv_getnameinfo(uv_default_loop(), + &req, + NULL, + (const struct sockaddr*)&addr4, + 0)); + ASSERT(req.host != NULL); + ASSERT(req.service != NULL); + + MAKE_VALGRIND_HAPPY(); + return 0; +} + + TEST_IMPL(getnameinfo_basic_ip6) { int r; diff --git a/deps/uv/test/test-list.h b/deps/uv/test/test-list.h index eb78a43cc7..d00d0f2621 100644 --- a/deps/uv/test/test-list.h +++ b/deps/uv/test/test-list.h @@ -180,9 +180,12 @@ TEST_DECLARE (get_memory) TEST_DECLARE (handle_fileno) TEST_DECLARE (hrtime) TEST_DECLARE (getaddrinfo_fail) +TEST_DECLARE (getaddrinfo_fail_sync) TEST_DECLARE (getaddrinfo_basic) +TEST_DECLARE (getaddrinfo_basic_sync) TEST_DECLARE (getaddrinfo_concurrent) TEST_DECLARE (getnameinfo_basic_ip4) +TEST_DECLARE (getnameinfo_basic_ip4_sync) TEST_DECLARE (getnameinfo_basic_ip6) TEST_DECLARE (getsockname_tcp) TEST_DECLARE (getsockname_udp) @@ -524,11 +527,14 @@ TASK_LIST_START TEST_ENTRY (hrtime) TEST_ENTRY_CUSTOM (getaddrinfo_fail, 0, 0, 10000) + TEST_ENTRY (getaddrinfo_fail_sync) TEST_ENTRY (getaddrinfo_basic) + TEST_ENTRY (getaddrinfo_basic_sync) TEST_ENTRY (getaddrinfo_concurrent) TEST_ENTRY (getnameinfo_basic_ip4) + TEST_ENTRY (getnameinfo_basic_ip4_sync) TEST_ENTRY (getnameinfo_basic_ip6) TEST_ENTRY (getsockname_tcp) diff --git a/deps/uv/test/test-pipe-getsockname.c b/deps/uv/test/test-pipe-getsockname.c index d4010f3b50..5e036f9d52 100644 --- a/deps/uv/test/test-pipe-getsockname.c +++ b/deps/uv/test/test-pipe-getsockname.c @@ -36,38 +36,121 @@ # include <fcntl.h> #endif +static uv_pipe_t pipe_client; +static uv_pipe_t pipe_server; +static uv_connect_t connect_req; -static int close_cb_called = 0; +static int pipe_close_cb_called = 0; +static int pipe_client_connect_cb_called = 0; -static void close_cb(uv_handle_t* handle) { - ASSERT(handle != NULL); - close_cb_called++; +static void pipe_close_cb(uv_handle_t* handle) { + ASSERT(handle == (uv_handle_t*) &pipe_client || + handle == (uv_handle_t*) &pipe_server); + pipe_close_cb_called++; +} + + +static void pipe_client_connect_cb(uv_connect_t* req, int status) { + char buf[1024]; + size_t len; + int r; + + ASSERT(req == &connect_req); + ASSERT(status == 0); + + len = sizeof buf; + r = uv_pipe_getpeername(&pipe_client, buf, &len); + ASSERT(r == 0); + + ASSERT(buf[len - 1] != 0); + ASSERT(memcmp(buf, TEST_PIPENAME, len) == 0); + + len = sizeof buf; + r = uv_pipe_getsockname(&pipe_client, buf, &len); + ASSERT(r == 0 && len == 0); + + pipe_client_connect_cb_called++; + + + uv_close((uv_handle_t*) &pipe_client, pipe_close_cb); + uv_close((uv_handle_t*) &pipe_server, pipe_close_cb); +} + + +static void pipe_server_connection_cb(uv_stream_t* handle, int status) { + /* This function *may* be called, depending on whether accept or the + * connection callback is called first. + */ + ASSERT(status == 0); } TEST_IMPL(pipe_getsockname) { - uv_pipe_t server; + uv_loop_t* loop; char buf[1024]; size_t len; int r; - r = uv_pipe_init(uv_default_loop(), &server, 0); + loop = uv_default_loop(); + ASSERT(loop != NULL); + + r = uv_pipe_init(loop, &pipe_server, 0); ASSERT(r == 0); - r = uv_pipe_bind(&server, TEST_PIPENAME); + + len = sizeof buf; + r = uv_pipe_getsockname(&pipe_server, buf, &len); + ASSERT(r == UV_EBADF); + + len = sizeof buf; + r = uv_pipe_getpeername(&pipe_server, buf, &len); + ASSERT(r == UV_EBADF); + + r = uv_pipe_bind(&pipe_server, TEST_PIPENAME); ASSERT(r == 0); len = sizeof buf; - r = uv_pipe_getsockname(&server, buf, &len); + r = uv_pipe_getsockname(&pipe_server, buf, &len); ASSERT(r == 0); + ASSERT(buf[len - 1] != 0); ASSERT(memcmp(buf, TEST_PIPENAME, len) == 0); - uv_close((uv_handle_t*)&server, close_cb); + len = sizeof buf; + r = uv_pipe_getpeername(&pipe_server, buf, &len); + ASSERT(r == UV_ENOTCONN); - uv_run(uv_default_loop(), UV_RUN_DEFAULT); + r = uv_listen((uv_stream_t*) &pipe_server, 0, pipe_server_connection_cb); + ASSERT(r == 0); + + r = uv_pipe_init(loop, &pipe_client, 0); + ASSERT(r == 0); + + len = sizeof buf; + r = uv_pipe_getsockname(&pipe_client, buf, &len); + ASSERT(r == UV_EBADF); - ASSERT(close_cb_called == 1); + len = sizeof buf; + r = uv_pipe_getpeername(&pipe_client, buf, &len); + ASSERT(r == UV_EBADF); + + uv_pipe_connect(&connect_req, &pipe_client, TEST_PIPENAME, pipe_client_connect_cb); + + len = sizeof buf; + r = uv_pipe_getsockname(&pipe_client, buf, &len); + ASSERT(r == 0 && len == 0); + + len = sizeof buf; + r = uv_pipe_getpeername(&pipe_client, buf, &len); + ASSERT(r == 0); + + ASSERT(buf[len - 1] != 0); + ASSERT(memcmp(buf, TEST_PIPENAME, len) == 0); + + r = uv_run(loop, UV_RUN_DEFAULT); + ASSERT(r == 0); + ASSERT(pipe_client_connect_cb_called == 1); + ASSERT(pipe_close_cb_called == 2); MAKE_VALGRIND_HAPPY(); return 0; @@ -76,7 +159,6 @@ TEST_IMPL(pipe_getsockname) { TEST_IMPL(pipe_getsockname_abstract) { #if defined(__linux__) - uv_pipe_t server; char buf[1024]; size_t len; int r; @@ -96,24 +178,24 @@ TEST_IMPL(pipe_getsockname_abstract) { r = bind(sock, (struct sockaddr*)&sun, sun_len); ASSERT(r == 0); - r = uv_pipe_init(uv_default_loop(), &server, 0); + r = uv_pipe_init(uv_default_loop(), &pipe_server, 0); ASSERT(r == 0); - r = uv_pipe_open(&server, sock); + r = uv_pipe_open(&pipe_server, sock); ASSERT(r == 0); len = sizeof buf; - r = uv_pipe_getsockname(&server, buf, &len); + r = uv_pipe_getsockname(&pipe_server, buf, &len); ASSERT(r == 0); ASSERT(memcmp(buf, abstract_pipe, sizeof abstract_pipe) == 0); - uv_close((uv_handle_t*)&server, close_cb); + uv_close((uv_handle_t*)&pipe_server, pipe_close_cb); uv_run(uv_default_loop(), UV_RUN_DEFAULT); close(sock); - ASSERT(close_cb_called == 1); + ASSERT(pipe_close_cb_called == 1); MAKE_VALGRIND_HAPPY(); return 0; #else @@ -124,7 +206,6 @@ TEST_IMPL(pipe_getsockname_abstract) { TEST_IMPL(pipe_getsockname_blocking) { #ifdef _WIN32 - uv_pipe_t reader; HANDLE readh, writeh; int readfd; char buf1[1024], buf2[1024]; @@ -134,42 +215,44 @@ TEST_IMPL(pipe_getsockname_blocking) { r = CreatePipe(&readh, &writeh, NULL, 65536); ASSERT(r != 0); - r = uv_pipe_init(uv_default_loop(), &reader, 0); + r = uv_pipe_init(uv_default_loop(), &pipe_client, 0); ASSERT(r == 0); readfd = _open_osfhandle((intptr_t)readh, _O_RDONLY); ASSERT(r != -1); - r = uv_pipe_open(&reader, readfd); + r = uv_pipe_open(&pipe_client, readfd); ASSERT(r == 0); - r = uv_read_start((uv_stream_t*)&reader, NULL, NULL); + r = uv_read_start((uv_stream_t*)&pipe_client, NULL, NULL); ASSERT(r == 0); Sleep(100); - r = uv_read_stop((uv_stream_t*)&reader); + r = uv_read_stop((uv_stream_t*)&pipe_client); ASSERT(r == 0); len1 = sizeof buf1; - r = uv_pipe_getsockname(&reader, buf1, &len1); + r = uv_pipe_getsockname(&pipe_client, buf1, &len1); ASSERT(r == 0); + ASSERT(buf1[len1 - 1] != 0); - r = uv_read_start((uv_stream_t*)&reader, NULL, NULL); + r = uv_read_start((uv_stream_t*)&pipe_client, NULL, NULL); ASSERT(r == 0); Sleep(100); len2 = sizeof buf2; - r = uv_pipe_getsockname(&reader, buf2, &len2); + r = uv_pipe_getsockname(&pipe_client, buf2, &len2); ASSERT(r == 0); + ASSERT(buf2[len2 - 1] != 0); - r = uv_read_stop((uv_stream_t*)&reader); + r = uv_read_stop((uv_stream_t*)&pipe_client); ASSERT(r == 0); ASSERT(len1 == len2); ASSERT(memcmp(buf1, buf2, len1) == 0); - close_cb_called = 0; - uv_close((uv_handle_t*)&reader, close_cb); + pipe_close_cb_called = 0; + uv_close((uv_handle_t*)&pipe_client, pipe_close_cb); uv_run(uv_default_loop(), UV_RUN_DEFAULT); - ASSERT(close_cb_called == 1); + ASSERT(pipe_close_cb_called == 1); _close(readfd); CloseHandle(writeh); diff --git a/deps/uv/test/test-poll.c b/deps/uv/test/test-poll.c index 4658762379..be8b00c32c 100644 --- a/deps/uv/test/test-poll.c +++ b/deps/uv/test/test-poll.c @@ -22,7 +22,6 @@ #include <errno.h> #ifndef _WIN32 -# include <fcntl.h> # include <sys/socket.h> # include <unistd.h> #endif @@ -86,23 +85,7 @@ static int got_eagain(void) { } -static void set_nonblocking(uv_os_sock_t sock) { - int r; -#ifdef _WIN32 - unsigned long on = 1; - r = ioctlsocket(sock, FIONBIO, &on); - ASSERT(r == 0); -#else - int flags = fcntl(sock, F_GETFL, 0); - ASSERT(flags >= 0); - r = fcntl(sock, F_SETFL, flags | O_NONBLOCK); - ASSERT(r >= 0); -#endif -} - - -static uv_os_sock_t create_nonblocking_bound_socket( - struct sockaddr_in bind_addr) { +static uv_os_sock_t create_bound_socket (struct sockaddr_in bind_addr) { uv_os_sock_t sock; int r; @@ -113,8 +96,6 @@ static uv_os_sock_t create_nonblocking_bound_socket( ASSERT(sock >= 0); #endif - set_nonblocking(sock); - #ifndef _WIN32 { /* Allow reuse of the port. */ @@ -479,8 +460,6 @@ static void server_poll_cb(uv_poll_t* handle, int status, int events) { ASSERT(sock >= 0); #endif - set_nonblocking(sock); - connection_context = create_connection_context(sock, 1); connection_context->events = UV_READABLE | UV_WRITABLE; r = uv_poll_start(&connection_context->poll_handle, @@ -502,7 +481,7 @@ static void start_server(void) { int r; ASSERT(0 == uv_ip4_addr("127.0.0.1", TEST_PORT, &addr)); - sock = create_nonblocking_bound_socket(addr); + sock = create_bound_socket(addr); context = create_server_context(sock); r = listen(sock, 100); @@ -523,7 +502,7 @@ static void start_client(void) { ASSERT(0 == uv_ip4_addr("127.0.0.1", TEST_PORT, &server_addr)); ASSERT(0 == uv_ip4_addr("0.0.0.0", 0, &addr)); - sock = create_nonblocking_bound_socket(addr); + sock = create_bound_socket(addr); context = create_connection_context(sock, 0); context->events = UV_READABLE | UV_WRITABLE; diff --git a/deps/uv/test/test-spawn.c b/deps/uv/test/test-spawn.c index a229d225f1..d3c0693b68 100644 --- a/deps/uv/test/test-spawn.c +++ b/deps/uv/test/test-spawn.c @@ -988,7 +988,8 @@ TEST_IMPL(environment_creation) { } } if (prev) { /* verify sort order -- requires Vista */ -#if _WIN32_WINNT >= 0x0600 +#if _WIN32_WINNT >= 0x0600 && \ + (!defined(__MINGW32__) || defined(__MINGW64_VERSION_MAJOR)) ASSERT(CompareStringOrdinal(prev, -1, str, -1, TRUE) == 1); #endif } |