diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-05-25 08:15:36 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-05-25 08:26:00 +0900 |
commit | 922a6530905e9164ea44401f56d3273e533b779b (patch) | |
tree | 1915dbecc456f609f6708032f412e34c5ecf6fab /src | |
parent | 6a28b78f2ef0dc04a409b81ed7006f47071424a2 (diff) | |
download | systemd-922a6530905e9164ea44401f56d3273e533b779b.tar.gz |
test: add testcases of filtering on dumping addresses
Diffstat (limited to 'src')
-rw-r--r-- | src/test/test-local-addresses.c | 52 |
1 files changed, 42 insertions, 10 deletions
diff --git a/src/test/test-local-addresses.c b/src/test/test-local-addresses.c index 7b75132e18..1063aeb7e1 100644 --- a/src/test/test-local-addresses.c +++ b/src/test/test-local-addresses.c @@ -15,35 +15,67 @@ static void print_local_addresses(struct local_address *a, unsigned n) { _cleanup_free_ char *b = NULL; assert_se(in_addr_to_string(a[i].family, &a[i].address, &b) >= 0); - printf("%s if%i scope=%i metric=%u address=%s\n", af_to_name(a[i].family), a[i].ifindex, a[i].scope, a[i].metric, b); + 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); } } int main(int argc, char *argv[]) { - struct local_address *a; - int n; + struct local_address *a = NULL; + int n, n_ipv4, n_ipv6; test_setup_logging(LOG_DEBUG); - a = NULL; + n = local_addresses(NULL, 0, AF_INET, &a); + assert_se(n >= 0); + log_debug("/* Local Addresses(ifindex:0, AF_INET) */"); + print_local_addresses(a, (unsigned) n); + a = mfree(a); + n_ipv4 = n; + + n = local_addresses(NULL, 0, AF_INET6, &a); + assert_se(n >= 0); + log_debug("/* Local Addresses(ifindex:0, AF_INET6) */"); + print_local_addresses(a, (unsigned) n); + a = mfree(a); + n_ipv6 = n; + n = local_addresses(NULL, 0, AF_UNSPEC, &a); assert_se(n >= 0); + log_debug("/* Local Addresses(ifindex:0, AF_UNSPEC) */"); + print_local_addresses(a, (unsigned) n); + a = mfree(a); + assert_se(n == n_ipv4 + n_ipv6); - printf("Local Addresses:\n"); + n = local_addresses(NULL, 1, AF_INET, &a); + assert_se(n >= 0); + log_debug("/* Local Addresses(ifindex:1, AF_INET) */"); print_local_addresses(a, (unsigned) n); a = mfree(a); + n_ipv4 = n; - n = local_gateways(NULL, 0, AF_UNSPEC, &a); + n = local_addresses(NULL, 1, AF_INET6, &a); assert_se(n >= 0); + log_debug("/* Local Addresses(ifindex:1, AF_INET6) */"); + print_local_addresses(a, (unsigned) n); + a = mfree(a); + n_ipv6 = n; - printf("Local Gateways:\n"); + n = local_addresses(NULL, 1, AF_UNSPEC, &a); + assert_se(n >= 0); + log_debug("/* Local Addresses(ifindex:1, AF_UNSPEC) */"); print_local_addresses(a, (unsigned) n); - free(a); + a = mfree(a); + assert_se(n == n_ipv4 + n_ipv6); - n = local_outbounds(NULL, 0, AF_UNSPEC, &a); + n = local_gateways(NULL, 0, AF_UNSPEC, &a); assert_se(n >= 0); + log_debug("/* Local Gateways */"); + print_local_addresses(a, (unsigned) n); + a = mfree(a); - printf("Local Outbounds:\n"); + n = local_outbounds(NULL, 0, AF_UNSPEC, &a); + assert_se(n >= 0); + log_debug("/* Local Outbounds */"); print_local_addresses(a, (unsigned) n); free(a); |