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
93da8e5f9SAntonio Afonso #include "SocketTestUtilities.h"
103da8e5f9SAntonio Afonso #include "gtest/gtest.h"
113da8e5f9SAntonio Afonso
125dca0596SRaphael Isemann #include "TestingSupport/SubsystemRAII.h"
133da8e5f9SAntonio Afonso #include "lldb/Host/posix/ConnectionFileDescriptorPosix.h"
143da8e5f9SAntonio Afonso #include "lldb/Utility/UriParser.h"
153da8e5f9SAntonio Afonso
163da8e5f9SAntonio Afonso using namespace lldb_private;
173da8e5f9SAntonio Afonso
183da8e5f9SAntonio Afonso class ConnectionFileDescriptorTest : public testing::Test {
193da8e5f9SAntonio Afonso public:
205dca0596SRaphael Isemann SubsystemRAII<Socket> subsystems;
213da8e5f9SAntonio Afonso
TestGetURI(std::string ip)223da8e5f9SAntonio Afonso void TestGetURI(std::string ip) {
233da8e5f9SAntonio Afonso std::unique_ptr<TCPSocket> socket_a_up;
243da8e5f9SAntonio Afonso std::unique_ptr<TCPSocket> socket_b_up;
253da8e5f9SAntonio Afonso CreateTCPConnectedSockets(ip, &socket_a_up, &socket_b_up);
269aa6a479SJonas Devlieghere auto *socket = socket_a_up.release();
273da8e5f9SAntonio Afonso ConnectionFileDescriptor connection_file_descriptor(socket);
283da8e5f9SAntonio Afonso
293da8e5f9SAntonio Afonso std::string uri(connection_file_descriptor.GetURI());
300e5a4147SMichał Górny EXPECT_EQ((URI{"connect", ip, socket->GetRemotePortNumber(), "/"}),
31*5cff5142SKazu Hirata URI::Parse(uri).value());
323da8e5f9SAntonio Afonso }
333da8e5f9SAntonio Afonso };
343da8e5f9SAntonio Afonso
TEST_F(ConnectionFileDescriptorTest,TCPGetURIv4)3518e96a31SPavel Labath TEST_F(ConnectionFileDescriptorTest, TCPGetURIv4) {
3618e96a31SPavel Labath if (!HostSupportsIPv4())
3718e96a31SPavel Labath return;
3818e96a31SPavel Labath TestGetURI("127.0.0.1");
3918e96a31SPavel Labath }
403da8e5f9SAntonio Afonso
TEST_F(ConnectionFileDescriptorTest,TCPGetURIv6)4118e96a31SPavel Labath TEST_F(ConnectionFileDescriptorTest, TCPGetURIv6) {
4218e96a31SPavel Labath if (!HostSupportsIPv6())
4318e96a31SPavel Labath return;
4418e96a31SPavel Labath TestGetURI("::1");
4518e96a31SPavel Labath }
46