1 //===--------------------- SocketTestUtilities.h ----------------*- C++ -*-===//
2 //
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
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_UNITTESTS_HOST_SOCKETTESTUTILITIES_H
10 #define LLDB_UNITTESTS_HOST_SOCKETTESTUTILITIES_H
11 
12 #include <cstdio>
13 #include <functional>
14 #include <thread>
15 
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"
23 
24 #if LLDB_ENABLE_POSIX
25 #include "lldb/Host/posix/DomainSocket.h"
26 #endif
27 
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);
37 #if LLDB_ENABLE_POSIX
38 void CreateDomainConnectedSockets(llvm::StringRef path,
39                                   std::unique_ptr<DomainSocket> *a_up,
40                                   std::unique_ptr<DomainSocket> *b_up);
41 #endif
42 
43 bool HostSupportsIPv6();
44 bool HostSupportsIPv4();
45 } // namespace lldb_private
46 
47 #endif
48