diff options
| author | aneporada <[email protected]> | 2026-03-21 08:25:00 +0300 |
|---|---|---|
| committer | aneporada <[email protected]> | 2026-03-21 08:41:45 +0300 |
| commit | eebdd2a68c351422f9182df76378a33d07f7a449 (patch) | |
| tree | a269722bb9f009de10324d225b68a3ec75ba6454 /library/cpp/messagebus/network_ut.cpp | |
| parent | 0ced6e47d9d653fc10192fac213220ef1b7c860e (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.cpp | 36 |
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()); |
