From 922a6530905e9164ea44401f56d3273e533b779b Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 25 May 2021 08:15:36 +0900 Subject: [PATCH] test: add testcases of filtering on dumping addresses --- src/test/test-local-addresses.c | 52 ++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 10 deletions(-) diff --git a/src/test/test-local-addresses.c b/src/test/test-local-addresses.c index 7b75132e182..1063aeb7e1c 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); -- 2.47.3