1 //===--------------------- SocketTestUtilities.h ----------------*- C++ -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #ifndef LLDB_UNITTESTS_TESTINGSUPPORT_HOST_SOCKETTESTUTILITIES_H
10 #define LLDB_UNITTESTS_TESTINGSUPPORT_HOST_SOCKETTESTUTILITIES_H
16 #include "lldb/Host/Config.h"
17 #include "lldb/Host/Socket.h"
18 #include "lldb/Host/common/TCPSocket.h"
19 #include "lldb/Host/common/UDPSocket.h"
20 #include "llvm/Support/FileSystem.h"
21 #include "llvm/Support/Path.h"
22 #include "llvm/Testing/Support/Error.h"
25 #include "lldb/Host/posix/DomainSocket.h"
28 namespace lldb_private
{
29 template <typename SocketType
>
30 void CreateConnectedSockets(
31 llvm::StringRef listen_remote_address
,
32 const std::function
<std::string(const SocketType
&)> &get_connect_addr
,
33 std::unique_ptr
<SocketType
> *a_up
, std::unique_ptr
<SocketType
> *b_up
);
34 bool CreateTCPConnectedSockets(std::string listen_remote_ip
,
35 std::unique_ptr
<TCPSocket
> *a_up
,
36 std::unique_ptr
<TCPSocket
> *b_up
);
38 void CreateDomainConnectedSockets(llvm::StringRef path
,
39 std::unique_ptr
<DomainSocket
> *a_up
,
40 std::unique_ptr
<DomainSocket
> *b_up
);
43 bool HostSupportsIPv6();
44 bool HostSupportsIPv4();
46 /// Return an IP for localhost based on host support.
48 /// This will return either "127.0.0.1" if IPv4 is detected, or "[::1]" if IPv6
49 /// is detected. If neither are detected, return an error.
50 llvm::Expected
<std::string
> GetLocalhostIP();
52 } // namespace lldb_private