diff --git a/tests/test_u_async_comprehensive.c b/tests/test_u_async_comprehensive.c index 763d874..025deae 100644 --- a/tests/test_u_async_comprehensive.c +++ b/tests/test_u_async_comprehensive.c @@ -384,7 +384,28 @@ static void test_concurrent_operations(void) { /* Create socket pair for testing */ int sockets[2]; void* socket_ids[2]; +#ifdef _WIN32 + // Windows doesn't have socketpair, use UDP sockets instead + sockets[0] = socket(AF_INET, SOCK_DGRAM, 0); + sockets[1] = socket(AF_INET, SOCK_DGRAM, 0); + ASSERT_TRUE(sockets[0] >= 0 && sockets[1] >= 0, "Failed to create sockets"); + + struct sockaddr_in addr1, addr2; + memset(&addr1, 0, sizeof(addr1)); + addr1.sin_family = AF_INET; + addr1.sin_addr.s_addr = inet_addr("127.0.0.1"); + addr1.sin_port = htons(0); // Let system choose port + + memset(&addr2, 0, sizeof(addr2)); + addr2.sin_family = AF_INET; + addr2.sin_addr.s_addr = inet_addr("127.0.0.1"); + addr2.sin_port = htons(0); + + ASSERT_EQ(bind(sockets[0], (struct sockaddr*)&addr1, sizeof(addr1)), 0, "Failed to bind socket 0"); + ASSERT_EQ(bind(sockets[1], (struct sockaddr*)&addr2, sizeof(addr2)), 0, "Failed to bind socket 1"); +#else ASSERT_EQ(socketpair(AF_UNIX, SOCK_DGRAM, 0, sockets), 0, "Failed to create socket pair"); +#endif /* Make non-blocking */ for (int i = 0; i < 2; i++) {