Skip to content

Commit f55869c

Browse files
committed
Add test for FromBoundNativeSocket
1 parent 710bf40 commit f55869c

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

lldb/unittests/Host/SocketTest.cpp

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
#include "gmock/gmock.h"
1616
#include "gtest/gtest.h"
1717
#include <chrono>
18+
#if __linux__
19+
#include <lldb/Host/linux/AbstractSocket.h>
20+
#endif
1821

1922
using namespace lldb_private;
2023

@@ -339,6 +342,48 @@ TEST_F(SocketTest, DomainGetConnectURI) {
339342
}
340343
#endif
341344

345+
#if LLDB_ENABLE_POSIX
346+
TEST_F(SocketTest, DomainSocketFromBoundNativeSocket) {
347+
// Generate a name for the domain socket.
348+
llvm::SmallString<64> name;
349+
std::error_code EC = llvm::sys::fs::createUniqueDirectory(
350+
"DomainSocketFromBoundNativeSocket", name);
351+
ASSERT_FALSE(EC);
352+
llvm::sys::path::append(name, "test");
353+
354+
DomainSocket socket(true);
355+
Status error = socket.Listen(name, /*backlog=*/10);
356+
ASSERT_FALSE(error.ToError());
357+
NativeSocket native_socket = socket.GetNativeSocket();
358+
359+
llvm::Expected<std::unique_ptr<DomainSocket>> sock =
360+
DomainSocket::FromBoundNativeSocket(native_socket, /*should_close=*/true);
361+
ASSERT_THAT_EXPECTED(sock, llvm::Succeeded());
362+
ASSERT_EQ(Socket::ProtocolUnixDomain, sock->get()->GetSocketProtocol());
363+
}
364+
#endif
365+
366+
#if __linux__
367+
TEST_F(SocketTest, AbstractSocketFromBoundNativeSocket) {
368+
// Generate a name for the abstract socket.
369+
llvm::SmallString<64> name;
370+
std::error_code EC = llvm::sys::fs::createUniqueDirectory(
371+
"AbstractSocketFromBoundNativeSocket", name);
372+
ASSERT_FALSE(EC);
373+
llvm::sys::path::append(name, "test");
374+
375+
AbstractSocket socket;
376+
Status error = socket.Listen(name, /*backlog=*/10);
377+
ASSERT_FALSE(error.ToError());
378+
NativeSocket native_socket = socket.GetNativeSocket();
379+
380+
llvm::Expected<std::unique_ptr<DomainSocket>> sock =
381+
DomainSocket::FromBoundNativeSocket(native_socket, /*should_close=*/true);
382+
ASSERT_THAT_EXPECTED(sock, llvm::Succeeded());
383+
ASSERT_EQ(Socket::ProtocolUnixAbstract, sock->get()->GetSocketProtocol());
384+
}
385+
#endif
386+
342387
INSTANTIATE_TEST_SUITE_P(
343388
SocketTests, SocketTest,
344389
testing::Values(SocketTestParams{/*is_ipv6=*/false,

0 commit comments

Comments
 (0)