From 5afb323ed8d4d37c5b00f84747a7138b0d322464 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 1 Mar 2023 11:20:40 +0100 Subject: platform/tests: add test for nm_platform_link_set_bridge_info() --- src/core/platform/tests/test-link.c | 52 ++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 4 deletions(-) diff --git a/src/core/platform/tests/test-link.c b/src/core/platform/tests/test-link.c index cc1ec6d1d4..2a13deae6f 100644 --- a/src/core/platform/tests/test-link.c +++ b/src/core/platform/tests/test-link.c @@ -586,10 +586,14 @@ test_vlan(void) static void test_bridge_addr(void) { - char addr[ETH_ALEN]; - NMPlatformLink link; - const NMPlatformLink *plink = NULL; - NMPLinkAddress hw_perm_addr; + char addr[ETH_ALEN]; + NMPlatformLink link; + const NMPlatformLink *plink = NULL; + NMPLinkAddress hw_perm_addr; + gboolean b; + char sbuf[100]; + gs_free char *str = NULL; + NMPlatformLinkSetBridgeInfoData info_data; nm_utils_hwaddr_aton("de:ad:be:ef:00:11", addr, sizeof(addr)); @@ -660,6 +664,46 @@ test_bridge_addr(void) g_assert_cmpint(plink->l_address.len, ==, sizeof(addr)); g_assert(!memcmp(plink->l_address.data, addr, sizeof(addr))); + info_data = (const NMPlatformLinkSetBridgeInfoData){ + .vlan_default_pvid_val = nmtst_rand_select(0, 5, 42, 1048), + .vlan_default_pvid_has = nmtst_get_rand_bool(), + .vlan_filtering_val = nmtst_get_rand_bool(), + .vlan_filtering_has = nmtst_get_rand_bool(), + }; + b = nm_platform_link_set_bridge_info(NM_PLATFORM_GET, link.ifindex, &info_data); + g_assert(b); + + str = nm_platform_sysctl_master_get_option(NM_PLATFORM_GET, link.ifindex, "default_pvid"); + g_assert_cmpstr(str, + ==, + info_data.vlan_default_pvid_has + ? nm_sprintf_buf(sbuf, "%u", info_data.vlan_default_pvid_val) + : "1"); + nm_clear_g_free(&str); + + str = nm_platform_sysctl_master_get_option(NM_PLATFORM_GET, link.ifindex, "vlan_filtering"); + g_assert_cmpstr(str, + ==, + info_data.vlan_filtering_val && info_data.vlan_filtering_has ? "1" : "0"); + nm_clear_g_free(&str); + + info_data = (const NMPlatformLinkSetBridgeInfoData){ + .vlan_default_pvid_val = 55, + .vlan_default_pvid_has = TRUE, + .vlan_filtering_val = !info_data.vlan_filtering_val, + .vlan_filtering_has = TRUE, + }; + b = nm_platform_link_set_bridge_info(NM_PLATFORM_GET, link.ifindex, &info_data); + g_assert(b); + + str = nm_platform_sysctl_master_get_option(NM_PLATFORM_GET, link.ifindex, "default_pvid"); + g_assert_cmpstr(str, ==, nm_sprintf_buf(sbuf, "%u", info_data.vlan_default_pvid_val)); + nm_clear_g_free(&str); + + str = nm_platform_sysctl_master_get_option(NM_PLATFORM_GET, link.ifindex, "vlan_filtering"); + g_assert_cmpstr(str, ==, info_data.vlan_filtering_val ? "1" : "0"); + nm_clear_g_free(&str); + nmtstp_link_delete(NULL, -1, link.ifindex, link.name, TRUE); } -- cgit v1.2.3