diff options
author | Thomas Haller <thaller@redhat.com> | 2023-03-01 11:20:40 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2023-03-01 11:39:07 +0100 |
commit | 5afb323ed8d4d37c5b00f84747a7138b0d322464 (patch) | |
tree | 08fba72356bdca0d022f2e40eb519823e22b6141 | |
parent | 6de0bb6a86bc53d170e9e95587e19107968cd708 (diff) |
platform/tests: add test for nm_platform_link_set_bridge_info()
-rw-r--r-- | src/core/platform/tests/test-link.c | 52 |
1 files 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); } |