================ @@ -339,6 +342,48 @@ TEST_F(SocketTest, DomainGetConnectURI) { } #endif +#if LLDB_ENABLE_POSIX +TEST_F(SocketTest, DomainSocketFromBoundNativeSocket) { + // Generate a name for the domain socket. + llvm::SmallString<64> name; + std::error_code EC = llvm::sys::fs::createUniqueDirectory( + "DomainSocketFromBoundNativeSocket", name); + ASSERT_FALSE(EC); + llvm::sys::path::append(name, "test"); + + DomainSocket socket(true); + Status error = socket.Listen(name, /*backlog=*/10); + ASSERT_FALSE(error.ToError()); + NativeSocket native_socket = socket.GetNativeSocket(); + + llvm::Expected<std::unique_ptr<DomainSocket>> sock = + DomainSocket::FromBoundNativeSocket(native_socket, /*should_close=*/true); + ASSERT_THAT_EXPECTED(sock, llvm::Succeeded()); + ASSERT_EQ(Socket::ProtocolUnixDomain, sock->get()->GetSocketProtocol()); +} +#endif + +#if __linux__ +TEST_F(SocketTest, AbstractSocketFromBoundNativeSocket) { + // Generate a name for the abstract socket. + llvm::SmallString<64> name; + std::error_code EC = llvm::sys::fs::createUniqueDirectory( + "AbstractSocketFromBoundNativeSocket", name); + ASSERT_FALSE(EC); + llvm::sys::path::append(name, "test"); + + AbstractSocket socket; + Status error = socket.Listen(name, /*backlog=*/10); + ASSERT_FALSE(error.ToError()); + NativeSocket native_socket = socket.GetNativeSocket(); + + llvm::Expected<std::unique_ptr<DomainSocket>> sock = + DomainSocket::FromBoundNativeSocket(native_socket, /*should_close=*/true); ---------------- labath wrote:
```suggestion DomainSocket::FromBoundNativeSocket(native_socket, /*should_close=*/false); ``` since the fd is still owned by the other socket (same in the other test) https://github.com/llvm/llvm-project/pull/136466 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits