From 29211c350e5c4134178651f8fc242d8184843d3c Mon Sep 17 00:00:00 2001 From: James Coglan Date: Tue, 25 Jun 2024 15:36:37 +0100 Subject: [PATCH] resolved: tests for link_find_address() --- src/resolve/test-resolved-link.c | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) 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) -- 2.47.3