xref: /llvm-project/lldb/unittests/Host/ConnectionFileDescriptorTest.cpp (revision f43886e7ba5abf9ee8c4d3f0ffbd18eee724466f)
180814287SRaphael Isemann //===-- ConnectionFileDescriptorTest.cpp ----------------------------------===//
23da8e5f9SAntonio Afonso //
33da8e5f9SAntonio Afonso // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
43da8e5f9SAntonio Afonso // See https://llvm.org/LICENSE.txt for license information.
53da8e5f9SAntonio Afonso // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
63da8e5f9SAntonio Afonso //
73da8e5f9SAntonio Afonso //===----------------------------------------------------------------------===//
83da8e5f9SAntonio Afonso 
959656c04SPavel Labath #include "TestingSupport/Host/SocketTestUtilities.h"
103da8e5f9SAntonio Afonso #include "gtest/gtest.h"
115dca0596SRaphael Isemann #include "TestingSupport/SubsystemRAII.h"
123da8e5f9SAntonio Afonso #include "lldb/Host/posix/ConnectionFileDescriptorPosix.h"
133da8e5f9SAntonio Afonso #include "lldb/Utility/UriParser.h"
143da8e5f9SAntonio Afonso 
153da8e5f9SAntonio Afonso using namespace lldb_private;
163da8e5f9SAntonio Afonso 
173da8e5f9SAntonio Afonso class ConnectionFileDescriptorTest : public testing::Test {
183da8e5f9SAntonio Afonso public:
195dca0596SRaphael Isemann   SubsystemRAII<Socket> subsystems;
203da8e5f9SAntonio Afonso 
TestGetURI(std::string ip)213da8e5f9SAntonio Afonso   void TestGetURI(std::string ip) {
223da8e5f9SAntonio Afonso     std::unique_ptr<TCPSocket> socket_a_up;
233da8e5f9SAntonio Afonso     std::unique_ptr<TCPSocket> socket_b_up;
243da8e5f9SAntonio Afonso     CreateTCPConnectedSockets(ip, &socket_a_up, &socket_b_up);
259aa6a479SJonas Devlieghere     auto *socket = socket_a_up.release();
263da8e5f9SAntonio Afonso     ConnectionFileDescriptor connection_file_descriptor(socket);
273da8e5f9SAntonio Afonso 
283da8e5f9SAntonio Afonso     std::string uri(connection_file_descriptor.GetURI());
290e5a4147SMichał Górny     EXPECT_EQ((URI{"connect", ip, socket->GetRemotePortNumber(), "/"}),
30*f43886e7SFangrui Song               *URI::Parse(uri));
313da8e5f9SAntonio Afonso   }
323da8e5f9SAntonio Afonso };
333da8e5f9SAntonio Afonso 
TEST_F(ConnectionFileDescriptorTest,TCPGetURIv4)3418e96a31SPavel Labath TEST_F(ConnectionFileDescriptorTest, TCPGetURIv4) {
3518e96a31SPavel Labath   if (!HostSupportsIPv4())
3618e96a31SPavel Labath     return;
3718e96a31SPavel Labath   TestGetURI("127.0.0.1");
3818e96a31SPavel Labath }
393da8e5f9SAntonio Afonso 
TEST_F(ConnectionFileDescriptorTest,TCPGetURIv6)4018e96a31SPavel Labath TEST_F(ConnectionFileDescriptorTest, TCPGetURIv6) {
4118e96a31SPavel Labath   if (!HostSupportsIPv6())
4218e96a31SPavel Labath     return;
4318e96a31SPavel Labath   TestGetURI("::1");
4418e96a31SPavel Labath }
45