summaryrefslogtreecommitdiffstats
path: root/library/cpp/messagebus/network_ut.cpp
diff options
context:
space:
mode:
authoraneporada <[email protected]>2026-03-21 08:25:00 +0300
committeraneporada <[email protected]>2026-03-21 08:41:45 +0300
commiteebdd2a68c351422f9182df76378a33d07f7a449 (patch)
treea269722bb9f009de10324d225b68a3ec75ba6454 /library/cpp/messagebus/network_ut.cpp
parent0ced6e47d9d653fc10192fac213220ef1b7c860e (diff)
Support loopback-only binds in messagebus
commit_hash:1acc39366e0b54658fb2847e848a9bc3b7a8b8a6
Diffstat (limited to 'library/cpp/messagebus/network_ut.cpp')
-rw-r--r--library/cpp/messagebus/network_ut.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/library/cpp/messagebus/network_ut.cpp b/library/cpp/messagebus/network_ut.cpp
index f1798419db2..80ac410397c 100644
--- a/library/cpp/messagebus/network_ut.cpp
+++ b/library/cpp/messagebus/network_ut.cpp
@@ -4,6 +4,8 @@
#include <library/cpp/messagebus/test/helper/fixed_port.h>
+#include <util/network/address.h>
+
using namespace NBus;
using namespace NBus::NPrivate;
using namespace NBus::NTest;
@@ -29,6 +31,11 @@ namespace {
throw 1;
}
}
+
+ TString GetLocalAddr(SOCKET sock) {
+ auto addr = NAddr::GetSockAddr(sock);
+ return NAddr::PrintHost(*addr);
+ }
}
Y_UNIT_TEST_SUITE(Network) {
@@ -42,6 +49,21 @@ Y_UNIT_TEST_SUITE(Network) {
for (TVector<TBindResult>::iterator i = r.begin(); i != r.end(); ++i) {
UNIT_ASSERT_VALUES_EQUAL(i->Addr.GetPort(), GetSockPort(i->Socket->operator SOCKET()));
+ UNIT_ASSERT_VALUES_EQUAL(i == r.begin() ? "0.0.0.0" : "::", GetLocalAddr(i->Socket->operator SOCKET()));
+ }
+ }
+
+ Y_UNIT_TEST(BindOnLoopbackPortConcrete) {
+ if (!IsFixedPortTestAllowed()) {
+ return;
+ }
+
+ TVector<TBindResult> r = BindOnLoopbackPort(FixedPort, false).second;
+ UNIT_ASSERT_VALUES_EQUAL(size_t(2), r.size());
+
+ for (TVector<TBindResult>::iterator i = r.begin(); i != r.end(); ++i) {
+ UNIT_ASSERT_VALUES_EQUAL(i->Addr.GetPort(), GetSockPort(i->Socket->operator SOCKET()));
+ UNIT_ASSERT_VALUES_EQUAL(i == r.begin() ? "127.0.0.1" : "::1", GetLocalAddr(i->Socket->operator SOCKET()));
}
}
@@ -52,6 +74,20 @@ Y_UNIT_TEST_SUITE(Network) {
for (TVector<TBindResult>::iterator i = r.begin(); i != r.end(); ++i) {
UNIT_ASSERT_VALUES_EQUAL(i->Addr.GetPort(), GetSockPort(i->Socket->operator SOCKET()));
UNIT_ASSERT(i->Addr.GetPort() > 0);
+ UNIT_ASSERT_VALUES_EQUAL(i == r.begin() ? "0.0.0.0" : "::", GetLocalAddr(i->Socket->operator SOCKET()));
+ }
+
+ UNIT_ASSERT_VALUES_EQUAL(r.at(0).Addr.GetPort(), r.at(1).Addr.GetPort());
+ }
+
+ Y_UNIT_TEST(BindOnLoopbackPortRandom) {
+ TVector<TBindResult> r = BindOnLoopbackPort(0, false).second;
+ UNIT_ASSERT_VALUES_EQUAL(size_t(2), r.size());
+
+ for (TVector<TBindResult>::iterator i = r.begin(); i != r.end(); ++i) {
+ UNIT_ASSERT_VALUES_EQUAL(i->Addr.GetPort(), GetSockPort(i->Socket->operator SOCKET()));
+ UNIT_ASSERT(i->Addr.GetPort() > 0);
+ UNIT_ASSERT_VALUES_EQUAL(i == r.begin() ? "127.0.0.1" : "::1", GetLocalAddr(i->Socket->operator SOCKET()));
}
UNIT_ASSERT_VALUES_EQUAL(r.at(0).Addr.GetPort(), r.at(1).Addr.GetPort());