]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/test/test-local-addresses.c
test: Use TEST macro
[thirdparty/systemd.git] / src / test / test-local-addresses.c
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2
3 #include <stdio.h>
4
5 #include "af-list.h"
6 #include "alloc-util.h"
7 #include "in-addr-util.h"
8 #include "local-addresses.h"
9 #include "tests.h"
10
11 static void print_local_addresses(struct local_address *a, unsigned n) {
12 unsigned i;
13
14 for (i = 0; i < n; i++) {
15 _cleanup_free_ char *b = NULL;
16
17 assert_se(in_addr_to_string(a[i].family, &a[i].address, &b) >= 0);
18 log_debug("%s if%i scope=%i metric=%u address=%s", af_to_name(a[i].family), a[i].ifindex, a[i].scope, a[i].metric, b);
19 }
20 }
21
22 TEST(local_addresses) {
23 struct local_address *a = NULL;
24 int n, n_ipv4, n_ipv6;
25
26 n = local_addresses(NULL, 0, AF_INET, &a);
27 assert_se(n >= 0);
28 log_debug("/* Local Addresses(ifindex:0, AF_INET) */");
29 print_local_addresses(a, (unsigned) n);
30 a = mfree(a);
31 n_ipv4 = n;
32
33 n = local_addresses(NULL, 0, AF_INET6, &a);
34 assert_se(n >= 0);
35 log_debug("/* Local Addresses(ifindex:0, AF_INET6) */");
36 print_local_addresses(a, (unsigned) n);
37 a = mfree(a);
38 n_ipv6 = n;
39
40 n = local_addresses(NULL, 0, AF_UNSPEC, &a);
41 assert_se(n >= 0);
42 log_debug("/* Local Addresses(ifindex:0, AF_UNSPEC) */");
43 print_local_addresses(a, (unsigned) n);
44 a = mfree(a);
45 assert_se(n == n_ipv4 + n_ipv6);
46
47 n = local_addresses(NULL, 1, AF_INET, &a);
48 assert_se(n >= 0);
49 log_debug("/* Local Addresses(ifindex:1, AF_INET) */");
50 print_local_addresses(a, (unsigned) n);
51 a = mfree(a);
52 n_ipv4 = n;
53
54 n = local_addresses(NULL, 1, AF_INET6, &a);
55 assert_se(n >= 0);
56 log_debug("/* Local Addresses(ifindex:1, AF_INET6) */");
57 print_local_addresses(a, (unsigned) n);
58 a = mfree(a);
59 n_ipv6 = n;
60
61 n = local_addresses(NULL, 1, AF_UNSPEC, &a);
62 assert_se(n >= 0);
63 log_debug("/* Local Addresses(ifindex:1, AF_UNSPEC) */");
64 print_local_addresses(a, (unsigned) n);
65 a = mfree(a);
66 assert_se(n == n_ipv4 + n_ipv6);
67
68 n = local_gateways(NULL, 0, AF_UNSPEC, &a);
69 assert_se(n >= 0);
70 log_debug("/* Local Gateways */");
71 print_local_addresses(a, (unsigned) n);
72 a = mfree(a);
73
74 n = local_outbounds(NULL, 0, AF_UNSPEC, &a);
75 assert_se(n >= 0);
76 log_debug("/* Local Outbounds */");
77 print_local_addresses(a, (unsigned) n);
78 free(a);
79 }
80
81 DEFINE_TEST_MAIN(LOG_DEBUG);