Browse Source

Fix test_u_async_comprehensive: add Windows socketpair replacement using UDP sockets

nodeinfo-routing-update
Evgeny 2 months ago
parent
commit
28ff3a4776
  1. 21
      tests/test_u_async_comprehensive.c

21
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++) {

Loading…
Cancel
Save