diff --git a/Makefile.am b/Makefile.am index 7cdb1120cc..a42474b714 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3457,7 +3457,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 01eb24216a..b391aa2392 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 @@ -8337,8 +8337,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; @@ -8347,11 +8348,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); @@ -8363,6 +8368,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 @@ -10673,7 +10697,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);