From: James Coglan Date: Tue, 25 Jun 2024 14:36:37 +0000 (+0100) Subject: resolved: tests for link_find_address() X-Git-Tag: v257-rc1~840^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=29211c350e5c4134178651f8fc242d8184843d3c;p=thirdparty%2Fsystemd.git resolved: tests for link_find_address() --- diff --git a/src/resolve/test-resolved-link.c b/src/resolve/test-resolved-link.c index 56094ad0093..981c846d117 100644 --- a/src/resolve/test-resolved-link.c +++ b/src/resolve/test-resolved-link.c @@ -97,4 +97,37 @@ TEST(link_relevant) { link_address_free(address); } +/* ================================================================ + * link_find_address() + * ================================================================ */ + +TEST(link_find_address) { + Manager manager = {}; + LinkAddress *v4addr = NULL, *v6addr = NULL, *ret_addr = NULL; + _cleanup_(link_freep) Link *link = NULL; + + union in_addr_union ipv4 = { .in.s_addr = htobe32(0xc0a84301) }; + union in_addr_union ipv6 = { .in6.s6_addr = { 0xf2, 0x34, 0x32, 0x2e, 0xb8, 0x25, 0x38, 0x35, 0x2f, 0xd7, 0xdb, 0x7b, 0x28, 0x7e, 0x60, 0xbb } }; + + ASSERT_OK(link_new(&manager, &link, 1)); + ASSERT_NOT_NULL(link); + + ASSERT_OK(link_address_new(link, &v4addr, AF_INET, &ipv4, &ipv4)); + ASSERT_NOT_NULL(v4addr); + ASSERT_OK(link_address_new(link, &v6addr, AF_INET6, &ipv6, &ipv6)); + ASSERT_NOT_NULL(v6addr); + + ret_addr = link_find_address(link, AF_INET, &ipv4); + ASSERT_TRUE(ret_addr == v4addr); + + ret_addr = link_find_address(link, AF_INET6, &ipv6); + ASSERT_TRUE(ret_addr == v6addr); + + ret_addr = link_find_address(link, AF_INET6, &ipv4); + ASSERT_NULL(ret_addr); + + link_address_free(v4addr); + link_address_free(v6addr); +} + DEFINE_TEST_MAIN(LOG_DEBUG)