resolved: tests for link_relevant()
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
|
||||
#include <net/if.h>
|
||||
#include <linux/if.h>
|
||||
|
||||
#include "netlink-internal.h"
|
||||
#include "resolved-link.h"
|
||||
#include "resolved-manager.h"
|
||||
@@ -42,4 +45,56 @@ TEST(link_process_rtnl) {
|
||||
ASSERT_OK(link_process_rtnl(link, msg));
|
||||
}
|
||||
|
||||
/* ================================================================
|
||||
* link_relevant()
|
||||
* ================================================================ */
|
||||
|
||||
TEST(link_relevant) {
|
||||
Manager manager = {};
|
||||
LinkAddress *address = NULL;
|
||||
_cleanup_(link_freep) Link *link = NULL;
|
||||
|
||||
ASSERT_OK(link_new(&manager, &link, 1));
|
||||
ASSERT_NOT_NULL(link);
|
||||
|
||||
link->flags = IFF_LOOPBACK;
|
||||
ASSERT_FALSE(link_relevant(link, AF_INET, true));
|
||||
ASSERT_FALSE(link_relevant(link, AF_INET, false));
|
||||
|
||||
link->flags = IFF_UP;
|
||||
ASSERT_FALSE(link_relevant(link, AF_INET, true));
|
||||
ASSERT_FALSE(link_relevant(link, AF_INET, false));
|
||||
|
||||
link->flags = IFF_UP | IFF_LOWER_UP;
|
||||
ASSERT_FALSE(link_relevant(link, AF_INET, true));
|
||||
ASSERT_FALSE(link_relevant(link, AF_INET, false));
|
||||
|
||||
link->flags = IFF_UP | IFF_LOWER_UP | IFF_MULTICAST;
|
||||
link->operstate = IF_OPER_UP;
|
||||
|
||||
ASSERT_FALSE(link_relevant(link, AF_INET, true));
|
||||
ASSERT_FALSE(link_relevant(link, AF_INET, false));
|
||||
|
||||
union in_addr_union ip = { .in.s_addr = htobe32(0xc0a84301) };
|
||||
union in_addr_union bcast = { .in.s_addr = htobe32(0xc0a843ff) };
|
||||
|
||||
ASSERT_OK(link_address_new(link, &address, AF_INET, &ip, &bcast));
|
||||
ASSERT_NOT_NULL(address);
|
||||
|
||||
ASSERT_TRUE(link_relevant(link, AF_INET, true));
|
||||
ASSERT_TRUE(link_relevant(link, AF_INET, false));
|
||||
|
||||
link->flags = IFF_UP | IFF_LOWER_UP;
|
||||
ASSERT_FALSE(link_relevant(link, AF_INET, true));
|
||||
ASSERT_TRUE(link_relevant(link, AF_INET, false));
|
||||
|
||||
link->is_managed = true;
|
||||
ASSERT_FALSE(link_relevant(link, AF_INET, false));
|
||||
|
||||
link->networkd_operstate = LINK_OPERSTATE_DEGRADED_CARRIER;
|
||||
ASSERT_TRUE(link_relevant(link, AF_INET, false));
|
||||
|
||||
link_address_free(address);
|
||||
}
|
||||
|
||||
DEFINE_TEST_MAIN(LOG_DEBUG)
|
||||
|
||||
Reference in New Issue
Block a user