| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #include "gate/tests.hpp" | ||
| 2 | #include "gate/net/sockets.hpp" | ||
| 3 | #include "gate/net/sockettools.hpp" | ||
| 4 | #include "gate/synchronization.hpp" | ||
| 5 | |||
| 6 | using namespace gate; | ||
| 7 | using namespace gate::net; | ||
| 8 | |||
| 9 |
2/7✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
6 | GATEXX_TEST_UNIT(IpParser) |
| 10 | { | ||
| 11 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Socket::Ip4Address a4; |
| 12 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(a4 = Socket::parseIp4("127.0.0.3")); |
| 13 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(a4.item[0], 127); |
| 14 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(a4.item[1], 0); |
| 15 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(a4.item[2], 0); |
| 16 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(a4.item[3], 3); |
| 17 | |||
| 18 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Socket::Ip6Address a6; |
| 19 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(a6 = Socket::parseIp6("::1")); |
| 20 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(a6.item[0], 0); |
| 21 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(a6.item[1], 0); |
| 22 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(a6.item[2], 0); |
| 23 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(a6.item[3], 0); |
| 24 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(a6.item[4], 0); |
| 25 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(a6.item[5], 0); |
| 26 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(a6.item[6], 0); |
| 27 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(a6.item[7], 1); |
| 28 | 2 | } | |
| 29 | |||
| 30 | 2 | static void testUdpCommunication(Socket& s1, Socket& s2, String const& addr1, String const& addr2) | |
| 31 | { | ||
| 32 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | Socket::Endpoint ep1 = Socket::parseAddress(addr1); |
| 33 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | Socket::Endpoint ep2 = Socket::parseAddress(addr2); |
| 34 | |||
| 35 |
5/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK(ep1.getFamily() != Socket::Family_None); |
| 36 |
5/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK(ep2.getFamily() != Socket::Family_None); |
| 37 | |||
| 38 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
2 | GATEXX_TEST_REQUIRE_NOTHROW(s1.bind(ep1)); |
| 39 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
2 | GATEXX_TEST_REQUIRE_NOTHROW(s2.bind(addr2)); |
| 40 | |||
| 41 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
2 | GATEXX_TEST_REQUIRE_NOTHROW(s2.setOption(Socket::Option_ReceiveTimeout, 5000)); |
| 42 | |||
| 43 | static char const* sendText = "Hello"; | ||
| 44 | static gate::size_t sendTextLen = 5; | ||
| 45 | |||
| 46 | 2 | gate::size_t bytes_sent = 0; | |
| 47 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(bytes_sent = s1.sendTo(ep2, sendText, sendTextLen)); |
| 48 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(bytes_sent, sendTextLen); |
| 49 | |||
| 50 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | Socket::Endpoint remoteEp; |
| 51 | char buffer[32]; | ||
| 52 | 2 | gate::size_t bytes_received = 0; | |
| 53 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(bytes_received = s2.receiveFrom(remoteEp, buffer, sizeof(buffer))); |
| 54 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(bytes_received, sendTextLen); |
| 55 |
5/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK(gate_str_compare(buffer, bytes_received, sendText, sendTextLen) == 0); |
| 56 | |||
| 57 |
3/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(s1.close()); |
| 58 |
3/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(s2.close()); |
| 59 | 2 | } | |
| 60 | |||
| 61 |
2/7✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
6 | GATEXX_TEST_UNIT(Udp4Sockets) |
| 62 | { | ||
| 63 | 4 | String addr1; | |
| 64 | { | ||
| 65 |
3/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
2 | static const Socket::Ip4Address ip1(127, 0, 0, 1); |
| 66 |
3/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
2 | static const Socket::Ip4Address ip1n(0x7f000001); |
| 67 |
3/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
2 | static const Socket::Endpoint ep1(ip1, 34567); |
| 68 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(addr1 = Socket::printAddress(ep1)); |
| 69 | } | ||
| 70 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
|
2 | static StaticString const addr2 = "127.0.0.1:45678"; |
| 71 | |||
| 72 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Socket s1(Socket::SocketType_Udp4); |
| 73 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Socket s2(Socket::Family_Inet4, Socket::MsgType_Datagram, Socket::Protocol_Udp); |
| 74 | |||
| 75 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | testUdpCommunication(s1, s2, addr1, addr2); |
| 76 | 2 | } | |
| 77 | |||
| 78 |
2/7✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
6 | GATEXX_TEST_UNIT(Udp6Sockets) |
| 79 | { | ||
| 80 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
|
2 | if (!Socket::hasSupportFor(Socket::Family_Inet6)) |
| 81 | { | ||
| 82 | ✗ | return; | |
| 83 | } | ||
| 84 | |||
| 85 | 4 | String addr1; | |
| 86 | { | ||
| 87 |
3/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
2 | static const Socket::Ip6Address ip1(0, 0, 0, 0, 0, 0, 0, 1); |
| 88 |
3/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
2 | static const Socket::Endpoint ep1(ip1, 34567); |
| 89 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(addr1 = Socket::printAddress(ep1)); |
| 90 | } | ||
| 91 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
|
2 | static StaticString const addr2 = "[::1]:45678"; |
| 92 | |||
| 93 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Socket s1(Socket::SocketType_Udp6); |
| 94 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Socket s2(Socket::Family_Inet6, Socket::MsgType_Datagram, Socket::Protocol_Udp); |
| 95 | |||
| 96 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | testUdpCommunication(s1, s2, addr1, addr2); |
| 97 | } | ||
| 98 | |||
| 99 | |||
| 100 | 2 | static void testSendReceive(Socket& sender, Socket& receiver, char const* text, gate::size_t textlen, bool_t noExceptions = false) | |
| 101 | { | ||
| 102 | char buffer[4096]; | ||
| 103 | 2 | gate::size_t offset_in = 0; | |
| 104 | 2 | gate::size_t offset_out = 0; | |
| 105 | |||
| 106 |
3/4✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
|
4 | while ((offset_in < textlen) || (offset_out < textlen)) |
| 107 | { | ||
| 108 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
2 | if (offset_in < textlen) |
| 109 | { | ||
| 110 | 2 | gate::size_t sent = 0; | |
| 111 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
|
2 | if (noExceptions) |
| 112 | { | ||
| 113 | 2 | gate::Result<gate::size_t> result = sender.trySend(&text[offset_in], textlen - offset_in); | |
| 114 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(sent = result.valueOrExcept()); |
| 115 | } | ||
| 116 | else | ||
| 117 | { | ||
| 118 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(sent = sender.send(&text[offset_in], textlen - offset_in)); |
| 119 | } | ||
| 120 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_REQUIRE(sent > 0); |
| 121 | 2 | offset_in += sent; | |
| 122 | } | ||
| 123 | |||
| 124 | 2 | gate::size_t received = 0; | |
| 125 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
|
2 | if (noExceptions) |
| 126 | { | ||
| 127 | 2 | Result<gate::size_t> result = receiver.tryReceive(&buffer[offset_out], textlen - offset_out); | |
| 128 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(received = result.valueOrExcept()); |
| 129 | } | ||
| 130 | else | ||
| 131 | { | ||
| 132 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(received = receiver.receive(&buffer[offset_out], textlen - offset_out)); |
| 133 | } | ||
| 134 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_REQUIRE(received > 0); |
| 135 | 2 | offset_out += received; | |
| 136 | } | ||
| 137 | |||
| 138 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
2 | GATEXX_TEST_CHECK(Mem::compare(text, buffer, textlen) == 0); |
| 139 | 2 | } | |
| 140 | |||
| 141 | 2 | static void testTcpServerClient(Socket& server, Socket& client, String const& server_address, bool_t noExceptions = false) | |
| 142 | { | ||
| 143 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
|
2 | if (noExceptions) |
| 144 | { | ||
| 145 | 2 | VoidResult result = server.tryBind(server_address); | |
| 146 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
1 | GATEXX_TEST_CHECK(!result.hasError()); |
| 147 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | result = server.tryListen(); |
| 148 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
1 | GATEXX_TEST_CHECK(!result.hasError()); |
| 149 | } | ||
| 150 | else | ||
| 151 | { | ||
| 152 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(server.bind(server_address)); |
| 153 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(server.listen()); |
| 154 | } | ||
| 155 | |||
| 156 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(client.setOption(Socket::Option_Blocking, 0)); |
| 157 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(client.setOption(Socket::Option_ReceiveTimeout, 5000)); |
| 158 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(client.setOption(Socket::Option_SendTimeout, 5000)); |
| 159 | |||
| 160 | 2 | bool_t canRead = true, canWrite = true, hasError = true; | |
| 161 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
|
2 | if (noExceptions) |
| 162 | { | ||
| 163 | 2 | VoidResult result = client.tryConnect(server_address); | |
| 164 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
1 | GATEXX_TEST_CHECK(!result.hasError()); |
| 165 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | result = server.trySelect(&canRead, &canWrite, &hasError, 1000); |
| 166 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
1 | GATEXX_TEST_CHECK(!result.hasError()); |
| 167 | } | ||
| 168 | else | ||
| 169 | { | ||
| 170 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(client.connect(server_address)); |
| 171 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(server.select(&canRead, &canWrite, &hasError, 1000)); |
| 172 | } | ||
| 173 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(canRead, true); |
| 174 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(canWrite, false); |
| 175 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(hasError, false); |
| 176 | |||
| 177 | 2 | canRead = canWrite = hasError = true; | |
| 178 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | Socket serverside; |
| 179 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
2 | GATEXX_TEST_CHECK(!serverside.valid()); |
| 180 | |||
| 181 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
|
2 | if (noExceptions) |
| 182 | { | ||
| 183 | 2 | VoidResult result = server.tryAccept(serverside); | |
| 184 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
1 | GATEXX_TEST_CHECK(!result.hasError()); |
| 185 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | result = client.trySelect(&canRead, &canWrite, &hasError, 1000); |
| 186 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
1 | GATEXX_TEST_CHECK(!result.hasError()); |
| 187 | } | ||
| 188 | else | ||
| 189 | { | ||
| 190 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(server.accept(serverside)); |
| 191 | 1 | gate_uint8_t statusFlags = GATE_SOCKET_SELECT_FLAG_RECEIVE | GATE_SOCKET_SELECT_FLAG_SEND | GATE_SOCKET_SELECT_FLAG_ERROR; | |
| 192 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(Socket::select(&serverside, 1, &statusFlags, 1000)); |
| 193 | 1 | canRead = GATE_FLAG_ENABLED(statusFlags, GATE_SOCKET_SELECT_FLAG_RECEIVE); | |
| 194 | 1 | canWrite = GATE_FLAG_ENABLED(statusFlags, GATE_SOCKET_SELECT_FLAG_SEND); | |
| 195 | 1 | hasError = GATE_FLAG_ENABLED(statusFlags, GATE_SOCKET_SELECT_FLAG_ERROR); | |
| 196 | } | ||
| 197 | |||
| 198 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(canRead, false); |
| 199 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(canWrite, true); |
| 200 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(hasError, false); |
| 201 | |||
| 202 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(client.setOption(Socket::Option_Blocking, 1)); |
| 203 | |||
| 204 | 4 | String localAddr; | |
| 205 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(localAddr = client.getLocalAddress()); |
| 206 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
2 | GATEXX_TEST_CHECK(!localAddr.empty()); |
| 207 | |||
| 208 | 4 | String removeAddr; | |
| 209 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(removeAddr = client.getRemoteAddress()); |
| 210 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
2 | GATEXX_TEST_CHECK(!removeAddr.empty()); |
| 211 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(client.getRemoteEndpoint()); |
| 212 | |||
| 213 |
3/4✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
|
2 | static const StaticString testMessage = "Hello world, world of hellos"; |
| 214 |
1/2✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | testSendReceive(client, serverside, testMessage.c_str(), testMessage.length(), noExceptions); |
| 215 | |||
| 216 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
|
2 | if (noExceptions) |
| 217 | { | ||
| 218 | 2 | VoidResult result = client.tryShutdown(false, true); | |
| 219 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
1 | GATEXX_TEST_CHECK(!result.hasError()); |
| 220 | } | ||
| 221 | else | ||
| 222 | { | ||
| 223 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(client.shutdown(false, true)); |
| 224 | } | ||
| 225 | 2 | char dummy = 0; | |
| 226 | 2 | gate::size_t zeroReceived = 0; | |
| 227 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(zeroReceived = serverside.receive(&dummy, 1)); |
| 228 |
4/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(zeroReceived, 0); |
| 229 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(serverside.shutdown(false, true)); |
| 230 | |||
| 231 |
3/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(client.close()); |
| 232 |
3/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(serverside.close()); |
| 233 |
3/12✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(server.close()); |
| 234 | 2 | } | |
| 235 | |||
| 236 |
2/7✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
6 | GATEXX_TEST_UNIT(Tcp4Sockets) |
| 237 | { | ||
| 238 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
|
2 | static const StaticString server_addr("127.0.0.1:56789"); |
| 239 | |||
| 240 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Socket server(Socket::SocketType_Tcp4); |
| 241 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Socket client(Socket::Family_Inet4, Socket::MsgType_Stream, Socket::Protocol_Tcp); |
| 242 | |||
| 243 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
2 | GATEXX_TEST_CHECK(server.valid()); |
| 244 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
2 | GATEXX_TEST_CHECK(client.valid()); |
| 245 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK(server.c_impl() != NULL); |
| 246 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK(client.c_impl() != NULL); |
| 247 | |||
| 248 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | testTcpServerClient(server, client, server_addr, false); |
| 249 | 2 | } | |
| 250 | |||
| 251 |
2/7✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
6 | GATEXX_TEST_UNIT(Tcp6Sockets) |
| 252 | { | ||
| 253 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
|
2 | if (!Socket::hasSupportFor(Socket::Family_Inet6)) |
| 254 | { | ||
| 255 | ✗ | return; | |
| 256 | } | ||
| 257 | |||
| 258 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
|
2 | static const StaticString server_addr("[::1]:56789"); |
| 259 | |||
| 260 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Socket server(Socket::SocketType_Tcp6); |
| 261 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Socket client(Socket::Family_Inet6, Socket::MsgType_Stream, Socket::Protocol_Tcp); |
| 262 | |||
| 263 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | testTcpServerClient(server, client, server_addr, true); |
| 264 | } | ||
| 265 | |||
| 266 | |||
| 267 | class GATE_API_LOCAL TestQueueHandler : public DataQueueSink | ||
| 268 | { | ||
| 269 | public: | ||
| 270 | SocketQueue queue; | ||
| 271 | SocketQueue::channel_id_t idServer; | ||
| 272 | SocketQueue::channel_id_t idServerConnection; | ||
| 273 | SocketQueue::channel_id_t idIncorrect; | ||
| 274 | SocketQueue::channel_id_t idClient; | ||
| 275 | SyncEvent tasksCompleted; | ||
| 276 | AtomicInt taskCounter; | ||
| 277 | |||
| 278 | 1 | explicit TestQueueHandler(SocketQueue socketQueue) | |
| 279 | 1 | : queue(socketQueue), | |
| 280 | idServer(0), idServerConnection(0), idIncorrect(0), idClient(0), | ||
| 281 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | tasksCompleted(false) |
| 282 | { | ||
| 283 | 1 | } | |
| 284 | |||
| 285 | 2 | virtual ~TestQueueHandler() noexcept | |
| 286 | 2 | { | |
| 287 | 2 | } | |
| 288 | |||
| 289 | private: | ||
| 290 | |||
| 291 | 5 | void notifyTaskCompleted() | |
| 292 | { | ||
| 293 | 5 | int32_t const completedTasks = ++this->taskCounter; | |
| 294 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 4 times.
|
5 | if (completedTasks == 5) |
| 295 | { | ||
| 296 | 1 | tasksCompleted.set(); | |
| 297 | } | ||
| 298 | 5 | } | |
| 299 | |||
| 300 | 1 | void onOpen(channel_id_t channel_id, char const* address, gate::size_t addressLength, void* userParam) override | |
| 301 | { | ||
| 302 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | if(userParam == &this->idClient) |
| 303 | { | ||
| 304 | 1 | this->notifyTaskCompleted(); | |
| 305 |
2/8✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(this->queue.beginWrite(this->idClient, "Hello", 5, &this->idClient)); |
| 306 | } | ||
| 307 | 1 | } | |
| 308 | |||
| 309 | 1 | void onOpenFailed(channel_id_t channel_id, result_t result, char const* errorMsg, gate::size_t errorMsgLength, void* userParam) override | |
| 310 | { | ||
| 311 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | if(userParam == &this->idIncorrect) |
| 312 | { | ||
| 313 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | GATEXX_TEST_CHECK_EQUAL(channel_id, this->idIncorrect); |
| 314 | 1 | this->notifyTaskCompleted(); | |
| 315 | } | ||
| 316 | 1 | } | |
| 317 | |||
| 318 | 1 | void onOpenNew(channel_id_t channel_id, char const* address, gate::size_t addressLength, void* userParam) override | |
| 319 | { | ||
| 320 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | if(userParam == &this->idServer) |
| 321 | { | ||
| 322 | 1 | this->idServerConnection = channel_id; | |
| 323 | 1 | this->notifyTaskCompleted(); | |
| 324 |
2/8✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(this->queue.beginRead(channel_id, 1024, &this->idServerConnection)); |
| 325 | } | ||
| 326 | 1 | } | |
| 327 | |||
| 328 | 1 | void onReadCompleted(channel_id_t channel_id, char const* buffer, gate::size_t bufferLength, void* userParam) override | |
| 329 | { | ||
| 330 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | if(userParam == &this->idServerConnection) |
| 331 | { | ||
| 332 | 1 | this->notifyTaskCompleted(); | |
| 333 | } | ||
| 334 | 1 | } | |
| 335 | 1 | void onWriteCompleted(channel_id_t channel_id, char const* buffer, gate::size_t bufferLength, void* userParam) override | |
| 336 | { | ||
| 337 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | if(userParam == &this->idClient) |
| 338 | { | ||
| 339 | 1 | this->notifyTaskCompleted(); | |
| 340 | } | ||
| 341 | 1 | } | |
| 342 | }; | ||
| 343 | |||
| 344 |
2/7✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
6 | GATEXX_TEST_UNIT(SocketQueue) |
| 345 | { | ||
| 346 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
|
2 | static StaticString serverAddress("127.0.0.1:9876"); |
| 347 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
|
2 | static StaticString serverAddressIncorrect("127.0.0.1:9877"); |
| 348 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
4 | TestQueueHandler handler(SocketQueue::create(1000)); |
| 349 | { | ||
| 350 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | SocketQueue queue = SocketQueue::create(1000); |
| 351 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK(!queue.getInterfaceName().empty()); |
| 352 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(queue.getStatus()); |
| 353 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | handler.queue = queue; |
| 354 | } | ||
| 355 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | handler.queue.setCallback(handler); |
| 356 | |||
| 357 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(handler.idServer = handler.queue.open(serverAddress, SocketQueue::Flag_OpenServer, &handler.idServer)); |
| 358 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(handler.idIncorrect = handler.queue.open(serverAddressIncorrect, SocketQueue::Flag_OpenClient, &handler.idIncorrect)); |
| 359 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(handler.idClient = handler.queue.open(serverAddress, SocketQueue::Flag_OpenClient, &handler.idClient)); |
| 360 | |||
| 361 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(handler.queue.start()); |
| 362 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | bool completionSignalReceived = handler.tasksCompleted.waitFor(gate::time::Seconds(5)); |
| 363 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(handler.queue.close(handler.idServer)); |
| 364 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(handler.queue.closeAll()); |
| 365 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(handler.queue.stop()); |
| 366 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK(completionSignalReceived); |
| 367 | |||
| 368 | { | ||
| 369 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | DataQueueSink sink; |
| 370 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | sink.onStatus(0, 0, 0, NULL, 0, NULL); |
| 371 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | sink.onOpen(0, NULL, 0, NULL); |
| 372 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | sink.onOpenFailed(0, 0, NULL, 0, NULL); |
| 373 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | sink.onOpenNew(0, NULL, 0, NULL); |
| 374 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | sink.onOpenNewFailed(0, 0, NULL, 0, NULL); |
| 375 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | sink.onReadCompleted(0, NULL, 0, NULL); |
| 376 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | sink.onWriteCompleted(0, NULL, 0, NULL); |
| 377 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | sink.onReadError(0, 0, NULL); |
| 378 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | sink.onWriteError(0, 0, NULL); |
| 379 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | sink.onError(0, 0, NULL, 0); |
| 380 | } | ||
| 381 | 2 | } | |
| 382 | |||
| 383 | |||
| 384 | |||
| 385 | class GATE_API_LOCAL MySocketGroupCallbacks : public SocketGroupSink | ||
| 386 | { | ||
| 387 | public: | ||
| 388 | SocketGroup& sockGroup; | ||
| 389 | |||
| 390 | 1 | MySocketGroupCallbacks(SocketGroup& sg) | |
| 391 | 1 | : sockGroup(sg) | |
| 392 | { | ||
| 393 | 1 | } | |
| 394 | |||
| 395 | 2 | virtual ~MySocketGroupCallbacks() noexcept | |
| 396 | 2 | { | |
| 397 | 2 | } | |
| 398 | |||
| 399 | 3 | virtual void onPrepare(gate_socket_t sock, result_t result, void* userParam) override | |
| 400 | { | ||
| 401 | 3 | SocketGroupSink::onPrepare(sock, result, userParam); | |
| 402 |
1/2✓ Branch 2 taken 3 times.
✗ Branch 3 not taken.
|
3 | GATEXX_TEST_CHECK_OK(result); |
| 403 | 3 | } | |
| 404 | 1 | virtual void onConnect(gate_socket_t sock, result_t result, void* userParam) override | |
| 405 | { | ||
| 406 | 1 | SocketGroupSink::onConnect(sock, result, userParam); | |
| 407 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | GATEXX_TEST_CHECK_OK(result); |
| 408 | 1 | } | |
| 409 | 1 | virtual void onAccept(gate_socket_t sock, result_t result, void* userParam) override | |
| 410 | { | ||
| 411 | 1 | SocketGroupSink::onAccept(sock, result, userParam); | |
| 412 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | GATEXX_TEST_CHECK_OK(result); |
| 413 | 1 | } | |
| 414 | ✗ | virtual void onRead(gate_socket_t sock, result_t result, char const* data, gate::size_t dataLength, void* userParam) override | |
| 415 | { | ||
| 416 | ✗ | SocketGroupSink::onRead(sock, result, data, dataLength, userParam); | |
| 417 | ✗ | GATEXX_TEST_CHECK_OK(result); | |
| 418 | ✗ | } | |
| 419 | 1 | virtual void onWrite(gate_socket_t sock, result_t result, char const* data, gate::size_t dataLength, void* userParam) override | |
| 420 | { | ||
| 421 | 1 | SocketGroupSink::onWrite(sock, result, data, dataLength, userParam); | |
| 422 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | GATEXX_TEST_CHECK_OK(result); |
| 423 | 1 | } | |
| 424 | 1 | virtual void onShutdown(gate_socket_t sock, result_t result, void* userParam) override | |
| 425 | { | ||
| 426 | 1 | SocketGroupSink::onShutdown(sock, result, userParam); | |
| 427 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | GATEXX_TEST_CHECK_OK(result); |
| 428 | 1 | this->sockGroup.quit(); | |
| 429 | 1 | } | |
| 430 | ✗ | virtual void onError(gate_socket_t sock, result_t result, void* userParam) override | |
| 431 | { | ||
| 432 | ✗ | SocketGroupSink::onError(sock, result, userParam); | |
| 433 | ✗ | GATEXX_TEST_CHECK_OK(result); | |
| 434 | ✗ | this->sockGroup.quit(); | |
| 435 | ✗ | } | |
| 436 | }; | ||
| 437 | |||
| 438 |
2/7✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
6 | GATEXX_TEST_UNIT(SocketSelector) |
| 439 | { | ||
| 440 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | SocketSelector selector; |
| 441 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Socket sock(Socket::SocketType_Tcp4); |
| 442 | 2 | uint8_t flags = Socket::SelectStatus_Receive; | |
| 443 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(selector.select(sock.c_impl(), 1, &flags, 1)); |
| 444 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(selector.intercept()); |
| 445 | 2 | } | |
| 446 | |||
| 447 |
2/7✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
6 | GATEXX_TEST_UNIT(SocketGroup) |
| 448 | { | ||
| 449 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
|
2 | static StaticString const serverAddress("127.0.0.1:9988"); |
| 450 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Socket::Endpoint const ep = Socket::parseAddress(serverAddress); |
| 451 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Socket server((Socket::SocketType_Tcp4)); |
| 452 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Socket client((Socket::SocketType_Tcp4)); |
| 453 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(server.bind(ep)); |
| 454 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(server.setOption(Socket::Option_Blocking, 0)); |
| 455 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(client.setOption(Socket::Option_Blocking, 0)); |
| 456 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(server.getLocalEndpoint()); |
| 457 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(server.hasError(), false); |
| 458 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(client.hasError(), false); |
| 459 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK(server.c_impl() != NULL); |
| 460 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK(client.c_impl() != NULL); |
| 461 | 2 | bool_t can_read = false, can_write = false, has_error = false; | |
| 462 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(server.select(&can_read, &can_write, &has_error)); |
| 463 | |||
| 464 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | SocketGroup sg; |
| 465 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK(sg.c_impl() != NULL); |
| 466 | |||
| 467 | 4 | MySocketGroupCallbacks cb(sg); | |
| 468 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(server.listen()); |
| 469 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(sg.accept(server)); |
| 470 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(sg.connect(client, ep)); |
| 471 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(sg.read(server, 1024)); |
| 472 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(sg.write(client, "Hello", 5)); |
| 473 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(sg.write(server, "World", 5)); |
| 474 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(sg.read(client, 1024)); |
| 475 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(sg.shutdown(server)); |
| 476 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(sg.shutdown(client)); |
| 477 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(sg.run(&cb)); |
| 478 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(sg.remove(server)); |
| 479 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(sg.clear()); |
| 480 | 2 | } | |
| 481 |