#include "lldb/Host/SocketAddress.h"
#include "TestingSupport/SubsystemRAII.h"
#include "lldb/Host/Socket.h"
#include "llvm/Testing/Support/Error.h"
#include "gtest/gtest.h"
usingnamespacelldb_private;
namespace {
class SocketAddressTest : public testing::Test { … };
}
TEST_F(SocketAddressTest, Set) { … }
TEST_F(SocketAddressTest, GetAddressInfo) { … }
#ifdef _WIN32
const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
TEST_F(SocketAddressTest, inet_ntop) {
const uint8_t address4[4] = {255, 0, 1, 100};
const uint8_t address6[16] = {0, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 255, 0};
char buffer[INET6_ADDRSTRLEN];
memset(buffer, 'x', sizeof(buffer));
EXPECT_STREQ("1:203:405:607:809:a0b:c0d:ff00",
inet_ntop(AF_INET6, address6, buffer, sizeof(buffer)));
memset(buffer, 'x', sizeof(buffer));
EXPECT_STREQ("1:203:405:607:809:a0b:c0d:ff00",
inet_ntop(AF_INET6, address6, buffer, 31));
memset(buffer, 'x', sizeof(buffer));
EXPECT_STREQ(nullptr, inet_ntop(AF_INET6, address6, buffer, 0));
memset(buffer, 'x', sizeof(buffer));
EXPECT_STREQ(nullptr, inet_ntop(AF_INET6, address6, buffer, 30));
memset(buffer, 'x', sizeof(buffer));
EXPECT_STREQ("255.0.1.100",
inet_ntop(AF_INET, address4, buffer, sizeof(buffer)));
memset(buffer, 'x', sizeof(buffer));
EXPECT_STREQ("255.0.1.100", inet_ntop(AF_INET, address4, buffer, 12));
memset(buffer, 'x', sizeof(buffer));
EXPECT_STREQ(nullptr, inet_ntop(AF_INET, address4, buffer, 0));
memset(buffer, 'x', sizeof(buffer));
EXPECT_STREQ(nullptr, inet_ntop(AF_INET, address4, buffer, 11));
}
#endif