21#include "gdbsupport/selftest.h"
22#include "gdbsupport/netstuff.h"
23#include "diagnostics.h"
27#include <netinet/in.h>
30#include <sys/socket.h>
31#include <netinet/tcp.h>
35namespace parse_connection_spec_tests {
68#define INIT_ENTRY(ADDR, EXP_HOST, EXP_PORT, SHOULD_FAIL, EXP_AI_FAMILY, \
69 EXP_AI_SOCKTYPE, EXP_AI_PROTOCOL) \
70 { ADDR, { EXP_HOST, EXP_PORT }, SHOULD_FAIL, EXP_AI_FAMILY, \
71 EXP_AI_SOCKTYPE, EXP_AI_PROTOCOL }
75#define INIT_UNPREFIXED_ENTRY(ADDR, EXP_HOST, EXP_PORT) \
76 INIT_ENTRY (ADDR, EXP_HOST, EXP_PORT, false, 0, 0, 0)
80#define INIT_UNPREFIXED_IPV6_ENTRY(ADDR, EXP_HOST, EXP_PORT) \
81 INIT_ENTRY (ADDR, EXP_HOST, EXP_PORT, false, AF_INET6, 0, 0)
84#define INIT_PREFIXED_ENTRY(ADDR, EXP_HOST, EXP_PORT, EXP_AI_FAMILY, \
85 EXP_AI_SOCKTYPE, EXP_AI_PROTOCOL) \
86 INIT_ENTRY (ADDR, EXP_HOST, EXP_PORT, false, EXP_AI_FAMILY, \
87 EXP_AI_SOCKTYPE, EXP_AI_PROTOCOL)
90#define INIT_PREFIXED_IPV4_TCP(ADDR, EXP_HOST, EXP_PORT) \
91 INIT_PREFIXED_ENTRY (ADDR, EXP_HOST, EXP_PORT, AF_INET, SOCK_STREAM, \
95#define INIT_PREFIXED_IPV6_TCP(ADDR, EXP_HOST, EXP_PORT) \
96 INIT_PREFIXED_ENTRY (ADDR, EXP_HOST, EXP_PORT, AF_INET6, SOCK_STREAM, \
100#define INIT_PREFIXED_IPV4_UDP(ADDR, EXP_HOST, EXP_PORT) \
101 INIT_PREFIXED_ENTRY (ADDR, EXP_HOST, EXP_PORT, AF_INET, SOCK_DGRAM, \
105#define INIT_PREFIXED_IPV6_UDP(ADDR, EXP_HOST, EXP_PORT) \
106 INIT_PREFIXED_ENTRY (ADDR, EXP_HOST, EXP_PORT, AF_INET6, SOCK_DGRAM, \
111#define INIT_BOGUS_ENTRY(ADDR) \
112 INIT_ENTRY (ADDR, "", "", true, 0, 0, 0)
206 struct addrinfo hint;
207 parsed_connection_spec ret;
209 memset (&hint, 0,
sizeof (hint));
213 ret = parse_connection_spec (c.
connspec, &hint);
215 catch (
const gdb_exception_error &ex)
246 selftests::register_test (
"parse_connection_spec",
static void test_conn(const parse_conn_test &c)
static const parse_conn_test conn_test[]
#define INIT_PREFIXED_IPV4_UDP(ADDR, EXP_HOST, EXP_PORT)
#define INIT_PREFIXED_IPV4_TCP(ADDR, EXP_HOST, EXP_PORT)
void _initialize_parse_connection_spec_selftests()
#define INIT_BOGUS_ENTRY(ADDR)
#define INIT_UNPREFIXED_IPV6_ENTRY(ADDR, EXP_HOST, EXP_PORT)
#define INIT_PREFIXED_IPV6_UDP(ADDR, EXP_HOST, EXP_PORT)
#define INIT_PREFIXED_IPV6_TCP(ADDR, EXP_HOST, EXP_PORT)
#define INIT_UNPREFIXED_ENTRY(ADDR, EXP_HOST, EXP_PORT)
parsed_connection_spec expected_result