Skip to content

Commit 9674595

Browse files
authored
issue #160 fix src/util/network tests (#233)
1 parent 25add43 commit 9674595

File tree

7 files changed

+90
-51
lines changed

7 files changed

+90
-51
lines changed

src/util/network/ut/ya.make

Lines changed: 0 additions & 22 deletions
This file was deleted.

tests/util/network/CMakeLists.txt

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,54 @@ add_ydb_test(NAME util-network-socket_ut
1717
yutil
1818
cpp-testing-unittest_main
1919
)
20+
21+
add_ydb_test(NAME util-network-address_ut
22+
SOURCES
23+
address_ut.cpp
24+
INCLUDE_DIRS
25+
${YDB_SDK_SOURCE_DIR}/src/util/network
26+
LINK_LIBRARIES
27+
yutil
28+
cpp-testing-unittest_main
29+
)
30+
31+
add_ydb_test(NAME util-network-endpoint_ut
32+
SOURCES
33+
endpoint_ut.cpp
34+
INCLUDE_DIRS
35+
${YDB_SDK_SOURCE_DIR}/src/util/network
36+
LINK_LIBRARIES
37+
yutil
38+
cpp-testing-unittest_main
39+
)
40+
41+
add_ydb_test(NAME util-network-ip_ut
42+
SOURCES
43+
ip_ut.cpp
44+
INCLUDE_DIRS
45+
${YDB_SDK_SOURCE_DIR}/src/util/network
46+
LINK_LIBRARIES
47+
yutil
48+
cpp-testing-unittest_main
49+
)
50+
51+
add_ydb_test(NAME util-network-poller_ut
52+
SOURCES
53+
poller_ut.cpp
54+
INCLUDE_DIRS
55+
${YDB_SDK_SOURCE_DIR}/src/util/network
56+
LINK_LIBRARIES
57+
yutil
58+
cpp-testing-unittest_main
59+
)
60+
61+
add_ydb_test(NAME util-network-sock_ut
62+
SOURCES
63+
sock_ut.cpp
64+
INCLUDE_DIRS
65+
${YDB_SDK_SOURCE_DIR}/src/util/network
66+
LINK_LIBRARIES
67+
yutil
68+
cpp-threading-future
69+
cpp-testing-unittest_main
70+
)

src/util/network/address_ut.cpp renamed to tests/util/network/address_ut.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#include <src/library/testing/unittest/registar.h>
1+
#include <ydb-cpp-sdk/util/network/address.h>
22

3-
#include "address.h"
3+
#include <src/library/testing/unittest/registar.h>
44

55
using namespace NAddr;
66

@@ -16,16 +16,16 @@ Y_UNIT_TEST_SUITE(IRemoteAddr_ToString) {
1616

1717
std::string t = ToString(*addr);
1818

19-
UNIT_ASSERT_C(t.StartsWith("(raw 0 0"), t);
20-
UNIT_ASSERT_C(t.EndsWith(')'), t);
19+
UNIT_ASSERT_C(t.starts_with("(raw 0 0"), t);
20+
UNIT_ASSERT_C(t.ends_with(')'), t);
2121
}
2222

2323
Y_UNIT_TEST(Ipv6) {
2424
TNetworkAddress address("::1", 22);
2525
TNetworkAddress::TIterator it = address.Begin();
2626
UNIT_ASSERT(it != address.End());
2727
UNIT_ASSERT(it->ai_family == AF_INET6);
28-
std::string toString = ToString((const IRemoteAddr&)TAddrInfo(&*it));
28+
std::string toString = ToString(static_cast<const IRemoteAddr&>(TAddrInfo(&*it)));
2929
UNIT_ASSERT_VALUES_EQUAL(std::string("[::1]:22"), toString);
3030
}
3131

src/util/network/endpoint_ut.cpp renamed to tests/util/network/endpoint_ut.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ Y_UNIT_TEST_SUITE(TEndpointTest) {
5252
TEndpoint ep3(new NAddr::TAddrInfo(&*na3.Begin()));
5353

5454
UNIT_ASSERT(ep3.IsIpV6());
55-
UNIT_ASSERT(ep3.IpToString().StartsWith(std::string_view("2a02:6b8:0:1410:")));
56-
UNIT_ASSERT(ep3.IpToString().EndsWith(std::string_view(":5f6c:f3c2")));
55+
UNIT_ASSERT(ep3.IpToString().starts_with(std::string_view("2a02:6b8:0:1410:")));
56+
UNIT_ASSERT(ep3.IpToString().ends_with(std::string_view(":5f6c:f3c2")));
5757
UNIT_ASSERT_VALUES_EQUAL(54321, ep3.Port());
5858

5959
TNetworkAddress na4("2a02:6b8:0:1410:0::5f6c:f3c2", 1);
@@ -63,7 +63,7 @@ Y_UNIT_TEST_SUITE(TEndpointTest) {
6363

6464
ep3_.SetPort(54321);
6565

66-
std::unordered_set<TEndpoint> he;
66+
std::unordered_set<TEndpoint, THash<TEndpoint>> he;
6767

6868
he.insert(ep0);
6969
he.insert(ep1);

src/util/network/ip_ut.cpp renamed to tests/util/network/ip_ut.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
#include "ip.h"
1+
#include <ydb-cpp-sdk/util/network/ip.h>
22

33
#include <src/library/testing/unittest/registar.h>
44

55
#include <ydb-cpp-sdk/util/generic/yexception.h>
66

7+
#include <bit>
8+
79
class TSysIpTest: public TTestBase {
810
UNIT_TEST_SUITE(TSysIpTest);
911
UNIT_TEST(TestIpFromString);
@@ -58,6 +60,6 @@ void TSysIpTest::TestIpToString() {
5860
const char* ipStr[] = {"192.168.0.1", "87.255.18.167", "255.255.0.31", "188.225.124.255"};
5961

6062
for (size_t i = 0; i < Y_ARRAY_SIZE(ipStr); ++i) {
61-
UNIT_ASSERT(IpToString(*reinterpret_cast<TIpHost*>(&(ipArr[i]))) == ipStr[i]);
63+
UNIT_ASSERT(IpToString(std::bit_cast<TIpHost>(ipArr[i])) == ipStr[i]);
6264
}
6365
}

src/util/network/poller_ut.cpp renamed to tests/util/network/poller_ut.cpp

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
1-
#include <src/library/testing/unittest/registar.h>
2-
#include <ydb-cpp-sdk/util/system/error.h>
3-
41
#include "pair.h"
52
#include "poller.h"
63
#include "pollerimpl.h"
74

5+
#include <src/library/testing/unittest/registar.h>
6+
7+
#include <ydb-cpp-sdk/util/system/error.h>
8+
9+
810
Y_UNIT_TEST_SUITE(TSocketPollerTest) {
11+
// We need to pass a pointer to any data to the tested poller methods.
12+
// It doesn't matter what kind of data it actually is.
13+
static int mock_data = 42;
14+
915
Y_UNIT_TEST(TestSimple) {
1016
SOCKET sockets[2];
1117
UNIT_ASSERT(SocketPair(sockets) == 0);
@@ -14,7 +20,7 @@ Y_UNIT_TEST_SUITE(TSocketPollerTest) {
1420
TSocketHolder s2(sockets[1]);
1521

1622
TSocketPoller poller;
17-
poller.WaitRead(sockets[1], (void*)17);
23+
poller.WaitRead(sockets[1], &mock_data);
1824

1925
UNIT_ASSERT_VALUES_EQUAL(nullptr, poller.WaitT(TDuration::Zero()));
2026
UNIT_ASSERT_VALUES_EQUAL(nullptr, poller.WaitT(TDuration::Zero()));
@@ -23,7 +29,7 @@ Y_UNIT_TEST_SUITE(TSocketPollerTest) {
2329
char buf[] = {18};
2430
UNIT_ASSERT_VALUES_EQUAL(1, send(sockets[0], buf, 1, 0));
2531

26-
UNIT_ASSERT_VALUES_EQUAL((void*)17, poller.WaitT(TDuration::Zero()));
32+
UNIT_ASSERT_VALUES_EQUAL(&mock_data, poller.WaitT(TDuration::Zero()));
2733

2834
UNIT_ASSERT_VALUES_EQUAL(1, recv(sockets[1], buf, 1, 0));
2935
UNIT_ASSERT_VALUES_EQUAL(18, buf[0]);
@@ -46,15 +52,15 @@ Y_UNIT_TEST_SUITE(TSocketPollerTest) {
4652
UNIT_ASSERT_VALUES_EQUAL(nullptr, poller.WaitT(TDuration::Zero()));
4753

4854
for (ui32 i = 0; i < 3; ++i) {
49-
poller.WaitReadOneShot(sockets[1], (void*)17);
55+
poller.WaitReadOneShot(sockets[1], &mock_data);
5056

5157
char buf[1];
5258

5359
buf[0] = i + 20;
5460

5561
UNIT_ASSERT_VALUES_EQUAL(1, send(sockets[0], buf, 1, 0));
5662

57-
UNIT_ASSERT_VALUES_EQUAL((void*)17, poller.WaitT(TDuration::Zero()));
63+
UNIT_ASSERT_VALUES_EQUAL(&mock_data, poller.WaitT(TDuration::Zero()));
5864

5965
UNIT_ASSERT_VALUES_EQUAL(1, recv(sockets[1], buf, 1, 0));
6066
UNIT_ASSERT_VALUES_EQUAL(char(i + 20), buf[0]);
@@ -116,10 +122,10 @@ Y_UNIT_TEST_SUITE(TSocketPollerTest) {
116122
UNIT_ASSERT_VALUES_EQUAL(nullptr, poller.WaitT(TDuration::Zero()));
117123

118124
for (ui32 i = 0; i < 3; ++i) {
119-
poller.WaitReadWriteEdgeTriggered(sockets[1], (void*)17);
125+
poller.WaitReadWriteEdgeTriggered(sockets[1], &mock_data);
120126

121127
// notify about writeble
122-
UNIT_ASSERT_VALUES_EQUAL((void*)17, poller.WaitT(TDuration::Zero()));
128+
UNIT_ASSERT_VALUES_EQUAL(&mock_data, poller.WaitT(TDuration::Zero()));
123129
UNIT_ASSERT_VALUES_EQUAL(nullptr, poller.WaitT(TDuration::Zero()));
124130

125131
char buf[2];
@@ -130,19 +136,19 @@ Y_UNIT_TEST_SUITE(TSocketPollerTest) {
130136
// send one byte
131137
UNIT_ASSERT_VALUES_EQUAL(1, send(sockets[0], buf, 1, 0));
132138

133-
UNIT_ASSERT_VALUES_EQUAL((void*)17, poller.WaitT(TDuration::Zero()));
139+
UNIT_ASSERT_VALUES_EQUAL(&mock_data, poller.WaitT(TDuration::Zero()));
134140
UNIT_ASSERT_VALUES_EQUAL(nullptr, poller.WaitT(TDuration::Zero()));
135141

136142
// restart without reading
137-
poller.RestartReadWriteEdgeTriggered(sockets[1], (void*)17, false);
143+
poller.RestartReadWriteEdgeTriggered(sockets[1], &mock_data, false);
138144

139145
// after restart read and write might generate separate events
140146
{
141147
void* events[3];
142148
size_t count = poller.WaitT(events, 3, TDuration::Zero());
143149
UNIT_ASSERT_GE(count, 1);
144150
UNIT_ASSERT_LE(count, 2);
145-
UNIT_ASSERT_VALUES_EQUAL(events[0], (void*)17);
151+
UNIT_ASSERT_VALUES_EQUAL(events[0], &mock_data);
146152
}
147153

148154
UNIT_ASSERT_VALUES_EQUAL(nullptr, poller.WaitT(TDuration::Zero()));
@@ -176,12 +182,12 @@ Y_UNIT_TEST_SUITE(TSocketPollerTest) {
176182
UNIT_ASSERT_VALUES_EQUAL(EAGAIN, LastSystemError());
177183

178184
// restart after end (noop for epoll)
179-
poller.RestartReadWriteEdgeTriggered(sockets[1], (void*)17, true);
185+
poller.RestartReadWriteEdgeTriggered(sockets[1], &mock_data, true);
180186

181187
// send and recv byte
182188
UNIT_ASSERT_VALUES_EQUAL(1, send(sockets[0], buf, 1, 0));
183189

184-
UNIT_ASSERT_VALUES_EQUAL((void*)17, poller.WaitT(TDuration::Zero()));
190+
UNIT_ASSERT_VALUES_EQUAL(&mock_data, poller.WaitT(TDuration::Zero()));
185191
UNIT_ASSERT_VALUES_EQUAL(nullptr, poller.WaitT(TDuration::Zero()));
186192

187193
// recv and see end
@@ -195,9 +201,9 @@ Y_UNIT_TEST_SUITE(TSocketPollerTest) {
195201
UNIT_ASSERT_VALUES_EQUAL(1, send(sockets[0], buf, 1, 0));
196202

197203
// restart after end (noop for epoll)
198-
poller.RestartReadWriteEdgeTriggered(sockets[1], (void*)17, true);
204+
poller.RestartReadWriteEdgeTriggered(sockets[1], &mock_data, true);
199205

200-
UNIT_ASSERT_VALUES_EQUAL((void*)17, poller.WaitT(TDuration::Zero()));
206+
UNIT_ASSERT_VALUES_EQUAL(&mock_data, poller.WaitT(TDuration::Zero()));
201207
UNIT_ASSERT_VALUES_EQUAL(nullptr, poller.WaitT(TDuration::Zero()));
202208

203209
UNIT_ASSERT_VALUES_EQUAL(1, recv(sockets[1], buf, 2, 0));
@@ -224,13 +230,13 @@ Y_UNIT_TEST_SUITE(TSocketPollerTest) {
224230

225231
using TPoller = TGenericPoller<TEpollPoller<TWithoutLocking>>;
226232
TPoller poller;
227-
poller.Set((void*)17, s2, CONT_POLL_RDHUP);
233+
poller.Set(&mock_data, s2, CONT_POLL_RDHUP);
228234

229235
TPoller::TEvent e;
230236
UNIT_ASSERT_VALUES_EQUAL(poller.WaitD(&e, 1, TDuration::Zero().ToDeadLine()), 1);
231237
UNIT_ASSERT_EQUAL(TPoller::ExtractStatus(&e), 0);
232238
UNIT_ASSERT_EQUAL(TPoller::ExtractFilter(&e), CONT_POLL_RDHUP);
233-
UNIT_ASSERT_EQUAL(TPoller::ExtractEvent(&e), (void*)17);
239+
UNIT_ASSERT_EQUAL(TPoller::ExtractEvent(&e), &mock_data);
234240
}
235241

236242
Y_UNIT_TEST(TestSetSocketErrors) {

src/util/network/sock_ut.cpp renamed to tests/util/network/sock_ut.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
#include "sock.h"
1+
#include <ydb-cpp-sdk/util/network/sock.h>
22

33
#include <src/library/testing/unittest/registar.h>
4+
5+
#include <ydb-cpp-sdk/library/threading/future/fwd.h>
46
#include <src/library/threading/future/legacy_future.h>
57

68
#include <src/util/string/split.h>

0 commit comments

Comments
 (0)