MCPcopy Create free account
hub / github.com/ddnet/ddnet / TEST

Function TEST

src/test/net_test.cpp:11–56  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9using namespace std::chrono_literals;
10
11TEST(Net, Ipv4AndIpv6Work)
12{
13 NETADDR Bindaddr = {};
14 NETSOCKET Socket1;
15 NETSOCKET Socket2;
16
17 Bindaddr.type = NETTYPE_IPV4 | NETTYPE_IPV6;
18 Socket2 = net_udp_create(Bindaddr);
19 do
20 {
21 Bindaddr.port = secure_rand_below(65535 - 1024) + 1024;
22 } while(!(Socket1 = net_udp_create(Bindaddr)));
23
24 NETADDR LocalhostV4;
25 NETADDR LocalhostV6;
26 NETADDR TargetV4;
27 NETADDR TargetV6;
28 ASSERT_FALSE(net_addr_from_str(&LocalhostV4, "127.0.0.1"));
29 ASSERT_FALSE(net_addr_from_str(&LocalhostV6, "[::1]"));
30 TargetV4 = LocalhostV4;
31 TargetV6 = LocalhostV6;
32 TargetV4.port = Bindaddr.port;
33 TargetV6.port = Bindaddr.port;
34
35 NETADDR Addr;
36 unsigned char *pData;
37
38 EXPECT_EQ(net_udp_send(Socket2, &TargetV4, "abc", 3), 3);
39
40 EXPECT_EQ(net_socket_read_wait(Socket1, 10s), 1);
41 ASSERT_EQ(net_udp_recv(Socket1, &Addr, &pData), 3);
42 Addr.port = 0;
43 EXPECT_EQ(Addr, LocalhostV4);
44 EXPECT_EQ(mem_comp(pData, "abc", 3), 0);
45
46 EXPECT_EQ(net_udp_send(Socket2, &TargetV6, "def", 3), 3);
47
48 EXPECT_EQ(net_socket_read_wait(Socket1, 10s), 1);
49 ASSERT_EQ(net_udp_recv(Socket1, &Addr, &pData), 3);
50 Addr.port = 0;
51 EXPECT_EQ(Addr, LocalhostV6);
52 EXPECT_EQ(mem_comp(pData, "def", 3), 0);
53
54 net_udp_close(Socket1);
55 net_udp_close(Socket2);
56}

Callers

nothing calls this directly

Calls 8

net_udp_createFunction · 0.85
secure_rand_belowFunction · 0.85
net_addr_from_strFunction · 0.85
net_udp_sendFunction · 0.85
net_socket_read_waitFunction · 0.85
net_udp_recvFunction · 0.85
mem_compFunction · 0.85
net_udp_closeFunction · 0.85

Tested by

no test coverage detected