]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/test/test-local-addresses.c
test: Use TEST macro
[thirdparty/systemd.git] / src / test / test-local-addresses.c
CommitLineData
db9ecf05 1/* SPDX-License-Identifier: LGPL-2.1-or-later */
e9140aff 2
ca78ad1d
ZJS
3#include <stdio.h>
4
cf0fbc49 5#include "af-list.h"
b5efdb8a 6#include "alloc-util.h"
e9140aff
LP
7#include "in-addr-util.h"
8#include "local-addresses.h"
6d7c4033 9#include "tests.h"
e9140aff
LP
10
11static 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);
922a6530 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);
e9140aff
LP
19 }
20}
21
4f7452a8 22TEST(local_addresses) {
922a6530
YW
23 struct local_address *a = NULL;
24 int n, n_ipv4, n_ipv6;
e9140aff 25
922a6530
YW
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
1d050e1e 40 n = local_addresses(NULL, 0, AF_UNSPEC, &a);
e9140aff 41 assert_se(n >= 0);
922a6530
YW
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);
e9140aff 46
922a6530
YW
47 n = local_addresses(NULL, 1, AF_INET, &a);
48 assert_se(n >= 0);
49 log_debug("/* Local Addresses(ifindex:1, AF_INET) */");
e9140aff 50 print_local_addresses(a, (unsigned) n);
97b11eed 51 a = mfree(a);
922a6530 52 n_ipv4 = n;
e9140aff 53
922a6530 54 n = local_addresses(NULL, 1, AF_INET6, &a);
e9140aff 55 assert_se(n >= 0);
922a6530
YW
56 log_debug("/* Local Addresses(ifindex:1, AF_INET6) */");
57 print_local_addresses(a, (unsigned) n);
58 a = mfree(a);
59 n_ipv6 = n;
e9140aff 60
922a6530
YW
61 n = local_addresses(NULL, 1, AF_UNSPEC, &a);
62 assert_se(n >= 0);
63 log_debug("/* Local Addresses(ifindex:1, AF_UNSPEC) */");
e9140aff 64 print_local_addresses(a, (unsigned) n);
922a6530
YW
65 a = mfree(a);
66 assert_se(n == n_ipv4 + n_ipv6);
e9140aff 67
922a6530 68 n = local_gateways(NULL, 0, AF_UNSPEC, &a);
54e6f97b 69 assert_se(n >= 0);
922a6530
YW
70 log_debug("/* Local Gateways */");
71 print_local_addresses(a, (unsigned) n);
72 a = mfree(a);
54e6f97b 73
922a6530
YW
74 n = local_outbounds(NULL, 0, AF_UNSPEC, &a);
75 assert_se(n >= 0);
76 log_debug("/* Local Outbounds */");
54e6f97b
LP
77 print_local_addresses(a, (unsigned) n);
78 free(a);
e9140aff 79}
4f7452a8
JJ
80
81DEFINE_TEST_MAIN(LOG_DEBUG);