//===-- ConnectionFileDescriptorTest.cpp ----------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "TestingSupport/Host/SocketTestUtilities.h" #include "gtest/gtest.h" #include "TestingSupport/SubsystemRAII.h" #include "lldb/Host/posix/ConnectionFileDescriptorPosix.h" #include "lldb/Utility/UriParser.h" using namespace lldb_private; class ConnectionFileDescriptorTest : public testing::Test { public: SubsystemRAII subsystems; void TestGetURI(std::string ip) { std::unique_ptr socket_a_up; std::unique_ptr socket_b_up; CreateTCPConnectedSockets(ip, &socket_a_up, &socket_b_up); auto *socket = socket_a_up.release(); ConnectionFileDescriptor connection_file_descriptor(socket); std::string uri(connection_file_descriptor.GetURI()); EXPECT_EQ((URI{"connect", ip, socket->GetRemotePortNumber(), "/"}), *URI::Parse(uri)); } }; TEST_F(ConnectionFileDescriptorTest, TCPGetURIv4) { if (!HostSupportsIPv4()) return; TestGetURI("127.0.0.1"); } TEST_F(ConnectionFileDescriptorTest, TCPGetURIv6) { if (!HostSupportsIPv6()) return; TestGetURI("::1"); }