resolved: tests for link_find_address()

This commit is contained in:
James Coglan
2024-07-22 13:18:44 +01:00
parent 94dd2bab7c
commit 29211c350e
+33
View File
@@ -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)