File: test_addr.c

package info (click to toggle)
dqlite 1.18.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,372 kB
  • sloc: ansic: 57,583; makefile: 336; sh: 243
file content (87 lines) | stat: -rw-r--r-- 1,809 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <sys/socket.h>
#include <sys/un.h>

#include "../../../src/lib/addr.h"

#include "../../lib/runner.h"

TEST_MODULE(lib_addr);

struct fixture
{
	struct sockaddr_un addr_un;
};

static void *setup(const MunitParameter params[], void *user_data)
{
	struct fixture *f = munit_malloc(sizeof(*f));
	(void)params;
	(void)user_data;
	return f;
}

static void tear_down(void *data)
{
	struct fixture *f = data;
	free(f);
}

#define ASSERT_PARSE(ADDR, STATUS, FAMILY)                              \
	socklen_t addr_len = sizeof(f->addr_un);                        \
	int rv;                                                         \
	rv = AddrParse(ADDR, (struct sockaddr *)&f->addr_un, &addr_len, \
		       "8080", DQLITE_ADDR_PARSE_UNIX);                 \
	munit_assert_int(rv, ==, STATUS);                               \
	munit_assert_int(f->addr_un.sun_family, ==, FAMILY)

TEST_SUITE(parse);
TEST_SETUP(parse, setup);
TEST_TEAR_DOWN(parse, tear_down);

TEST_CASE(parse, ipv4_no_port, NULL)
{
	struct fixture *f = data;
	(void)params;
	ASSERT_PARSE("1.2.3.4", 0, AF_INET);
	return MUNIT_OK;
}

TEST_CASE(parse, ipv4_with_port, NULL)
{
	struct fixture *f = data;
	(void)params;
	ASSERT_PARSE("127.0.0.1:9001", 0, AF_INET);
	return MUNIT_OK;
}

TEST_CASE(parse, ipv6_no_port, NULL)
{
	struct fixture *f = data;
	(void)params;
	ASSERT_PARSE("::1", 0, AF_INET6);
	return MUNIT_OK;
}

TEST_CASE(parse, ipv6_with_port, NULL)
{
	struct fixture *f = data;
	(void)params;
	ASSERT_PARSE("[2001:4860:4860::8888]:9001", 0, AF_INET6);
	return MUNIT_OK;
}

TEST_CASE(parse, unix, NULL)
{
	struct fixture *f = data;
	(void)params;
	ASSERT_PARSE("@xyz", 0, AF_UNIX);
	return MUNIT_OK;
}

TEST_CASE(parse, unix_auto, NULL)
{
	struct fixture *f = data;
	(void)params;
	ASSERT_PARSE("@", 0, AF_UNIX);
	return MUNIT_OK;
}