From: Daniel P. Berrange Date: Tue, 8 Mar 2016 15:27:30 +0000 (+0000) Subject: io: bind to socket before creating QIOChannelSocket X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=abc981bf292fb361f8a509c3611ddf2ba2c43360;p=qemu.git io: bind to socket before creating QIOChannelSocket In the QIOChannelSocket test we create a socket file descriptor and then try to create a QIOChannelSocket. This works on Linux, but fails on Win32 because it is not valid to call getsockname() on an unbound socket. Reviewed-by: Paolo Bonzini Signed-off-by: Daniel P. Berrange --- diff --git a/tests/test-io-channel-socket.c b/tests/test-io-channel-socket.c index f226e475c6..4c16da1add 100644 --- a/tests/test-io-channel-socket.c +++ b/tests/test-io-channel-socket.c @@ -470,10 +470,20 @@ static void test_io_channel_ipv4_fd(void) { QIOChannel *ioc; int fd = -1; + struct sockaddr_in sa = { + .sin_family = AF_INET, + .sin_addr = { + .s_addr = htonl(INADDR_LOOPBACK), + } + /* Leave port unset for auto-assign */ + }; + socklen_t salen = sizeof(sa); fd = socket(AF_INET, SOCK_STREAM, 0); g_assert_cmpint(fd, >, -1); + g_assert_cmpint(bind(fd, (struct sockaddr *)&sa, salen), ==, 0); + ioc = qio_channel_new_fd(fd, &error_abort); g_assert_cmpstr(object_get_typename(OBJECT(ioc)),