summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lldb/unittests/Host/ConnectionFileDescriptorTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/llvm/lldb/unittests/Host/ConnectionFileDescriptorTest.cpp')
-rw-r--r--gnu/llvm/lldb/unittests/Host/ConnectionFileDescriptorTest.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/unittests/Host/ConnectionFileDescriptorTest.cpp b/gnu/llvm/lldb/unittests/Host/ConnectionFileDescriptorTest.cpp
new file mode 100644
index 00000000000..a5930f29702
--- /dev/null
+++ b/gnu/llvm/lldb/unittests/Host/ConnectionFileDescriptorTest.cpp
@@ -0,0 +1,47 @@
+//===-- ConnectionFileDescriptorTest.cpp ------------------------*- C++ -*-===//
+//
+// 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 "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<Socket> subsystems;
+
+ void TestGetURI(std::string ip) {
+ std::unique_ptr<TCPSocket> socket_a_up;
+ std::unique_ptr<TCPSocket> socket_b_up;
+ if (!IsAddressFamilySupported(ip)) {
+ GTEST_LOG_(WARNING) << "Skipping test due to missing IPv"
+ << (IsIPv4(ip) ? "4" : "6") << " support.";
+ return;
+ }
+ CreateTCPConnectedSockets(ip, &socket_a_up, &socket_b_up);
+ auto socket = socket_a_up.release();
+ ConnectionFileDescriptor connection_file_descriptor(socket);
+
+ llvm::StringRef scheme;
+ llvm::StringRef hostname;
+ int port;
+ llvm::StringRef path;
+ std::string uri(connection_file_descriptor.GetURI());
+ EXPECT_TRUE(UriParser::Parse(uri, scheme, hostname, port, path));
+ EXPECT_EQ(ip, hostname);
+ EXPECT_EQ(socket->GetRemotePortNumber(), port);
+ }
+};
+
+TEST_F(ConnectionFileDescriptorTest, TCPGetURIv4) { TestGetURI("127.0.0.1"); }
+
+TEST_F(ConnectionFileDescriptorTest, TCPGetURIv6) { TestGetURI("::1"); }