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