From 0d0704eaa02c45e10917ce503f50b4ca885285aa Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 5 Jun 2023 08:52:09 +0200 Subject: [PATCH] ifcfg-rh/tests: add test for infiniband profile with PKEY_ID in ifcfg format https://bugzilla.redhat.com/show_bug.cgi?id=2209164 --- Makefile.am | 4 +- ...test-infiniband => ifcfg-test-infiniband0} | 0 .../network-scripts/ifcfg-test-infiniband1 | 12 ++++++ .../network-scripts/ifcfg-test-infiniband2 | 12 ++++++ .../plugins/ifcfg-rh/tests/test-ifcfg-rh.c | 38 ++++++++++++++++--- 5 files changed, 59 insertions(+), 7 deletions(-) rename src/core/settings/plugins/ifcfg-rh/tests/network-scripts/{ifcfg-test-infiniband => ifcfg-test-infiniband0} (100%) create mode 100644 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband1 create mode 100644 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband2 diff --git a/Makefile.am b/Makefile.am index e5698f04f7..80c1012099 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3583,7 +3583,9 @@ EXTRA_DIST += \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-fabric \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-vn2vn \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ibft \ - src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband \ + src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband0 \ + src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband1 \ + src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband2 \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ip6-disabled.cexpected \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ipoib \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-link_local \ diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband0 similarity index 100% rename from src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband rename to src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband0 diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband1 b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband1 new file mode 100644 index 0000000000..dcb7758e6e --- /dev/null +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband1 @@ -0,0 +1,12 @@ +TYPE=InfiniBand +HWADDR=80:00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22 +CONNECTED_MODE=yes +MTU=65520 +IPADDR=192.168.2.2 +NETMASK=255.255.255.0 +GATEWAY=192.168.2.1 + +DEVICE=ib0.80c1 +PKEY=yes +PKEY_ID=0x00c1 +PHYSDEV=ib0 diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband2 b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband2 new file mode 100644 index 0000000000..2e6d9edf3a --- /dev/null +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband2 @@ -0,0 +1,12 @@ +TYPE=InfiniBand +HWADDR=80:00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22 +CONNECTED_MODE=yes +MTU=65520 +IPADDR=192.168.2.2 +NETMASK=255.255.255.0 +GATEWAY=192.168.2.1 + +DEVICE=ib0.00c1 +PKEY=yes +PKEY_ID=0x00c1 +PHYSDEV=ib0 diff --git a/src/core/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c b/src/core/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c index bac5e93ed2..d12c10682c 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c +++ b/src/core/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c @@ -8364,8 +8364,9 @@ test_write_bond_port(void) } static void -test_read_infiniband(void) +test_read_infiniband(gconstpointer test_data) { + const guint TEST_IDX = GPOINTER_TO_UINT(test_data); gs_unref_object NMConnection *connection = NULL; NMSettingInfiniband *s_infiniband; char *unmanaged = NULL; @@ -8374,11 +8375,15 @@ test_read_infiniband(void) 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x11, 0x22}; const char *transport_mode; + const char *test_files[] = { + TEST_IFCFG_DIR "/ifcfg-test-infiniband0", + TEST_IFCFG_DIR "/ifcfg-test-infiniband1", + TEST_IFCFG_DIR "/ifcfg-test-infiniband2", + }; - connection = _connection_from_file(TEST_IFCFG_DIR "/ifcfg-test-infiniband", - NULL, - TYPE_INFINIBAND, - &unmanaged); + g_assert(TEST_IDX < G_N_ELEMENTS(test_files)); + + connection = _connection_from_file(test_files[TEST_IDX], NULL, TYPE_INFINIBAND, &unmanaged); g_assert(!unmanaged); s_infiniband = nmtst_connection_assert_setting(connection, NM_TYPE_SETTING_INFINIBAND); @@ -8390,6 +8395,25 @@ test_read_infiniband(void) transport_mode = nm_setting_infiniband_get_transport_mode(s_infiniband); g_assert(transport_mode); g_assert_cmpstr(transport_mode, ==, "connected"); + + nmtst_assert_connection_verifies_without_normalization(connection); + + switch (TEST_IDX) { + case 0: + g_assert_cmpint(nm_setting_infiniband_get_p_key(s_infiniband), ==, -1); + g_assert_cmpstr(nm_setting_infiniband_get_parent(s_infiniband), ==, NULL); + g_assert_cmpstr(nm_connection_get_interface_name(connection), ==, "ib0"); + break; + case 1: + case 2: + g_assert_cmpint(nm_setting_infiniband_get_p_key(s_infiniband), ==, 0x80c1); + g_assert_cmpstr(nm_setting_infiniband_get_parent(s_infiniband), ==, "ib0"); + g_assert_cmpstr(nm_connection_get_interface_name(connection), ==, "ib0.80c1"); + break; + default: + g_assert_not_reached(); + break; + } } static void @@ -10700,7 +10724,9 @@ main(int argc, char **argv) g_test_add_func(TPATH "wifi/read/wep-no-keys", test_read_wifi_wep_no_keys); g_test_add_func(TPATH "wifi/read/wep-agent-keys", test_read_wifi_wep_agent_keys); - g_test_add_func(TPATH "infiniband/read", test_read_infiniband); + g_test_add_data_func(TPATH "infiniband/read/0", GUINT_TO_POINTER(0), test_read_infiniband); + g_test_add_data_func(TPATH "infiniband/read/1", GUINT_TO_POINTER(1), test_read_infiniband); + g_test_add_data_func(TPATH "infiniband/read/2", GUINT_TO_POINTER(2), test_read_infiniband); g_test_add_func(TPATH "ipoib/read", test_read_ipoib); g_test_add_func(TPATH "vlan/read", test_read_vlan_interface); g_test_add_func(TPATH "vlan/read-flags-1", test_read_vlan_flags_1);