mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-10-15 12:34:55 +00:00
ifcfg-rh/tests: compare the written files to a expected result
We have unit tests for writing and re-reading ifcfg file. Those tests compare whether a file can be successfully read and is semantically identical. However, there were no tests that a certain output is written in a stable format. We aim not to change the output of what we write. For that, add tests to not only check the semantic of the written ifcfg file, but their bits and bytes. Some future changes may well intentionally change the current output. That will require to update the expected result files and can be done via NMTST_IFCFG_RH_UPDATE_EXPECTED=yes src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh Note that alias, route, and key files are not checked. Related: https://bugzilla.redhat.com/show_bug.cgi?id=1445414
This commit is contained in:
parent
e1e5d0d867
commit
f04bf45e84
27
Makefile.am
27
Makefile.am
|
@ -2132,7 +2132,32 @@ EXTRA_DIST += \
|
|||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-3 \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-3.expected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-4 \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-4.expected
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-4.expected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-a.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-b.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-wired-802-1X-subj-matches.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bond_Main.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bridge_Component.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Permissions.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Proxy_Basic.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Team_Port.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_VLAN_reorder_hdr.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_Band_A.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_Hidden.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_always.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_default.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_missing.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_never.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_LEAP.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_WEP_104_ASCII.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Auto-Negotiate.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Wake-on-LAN.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Vlan_test-vlan-interface.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-dcb-test.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection_2.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-team-slave-enp31s0f1-142.cexpected \
|
||||
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy.cexpected
|
||||
|
||||
# make target dependencies can't have colons in their names, which ends up
|
||||
# meaning that we can't add the alias files to EXTRA_DIST. They are instead
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
HWADDR=00:22:15:59:62:97
|
||||
TYPE=Ethernet
|
||||
BRIDGING_OPTS="priority=28 hairpin_mode=1"
|
||||
NAME="System test-bridge-component"
|
||||
UUID=${UUID}
|
||||
DEVICE=eth0
|
||||
ONBOOT=no
|
||||
BRIDGE=br0
|
|
@ -0,0 +1,17 @@
|
|||
HWADDR=00:22:15:59:62:97
|
||||
TYPE=Ethernet
|
||||
BRIDGING_OPTS="priority=28 hairpin_mode=1"
|
||||
NAME="System test-bridge-component"
|
||||
UUID=${UUID}
|
||||
DEVICE=eth0
|
||||
ONBOOT=no
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=yes
|
||||
IPV6_AUTOCONF=yes
|
||||
IPV6_DEFROUTE=yes
|
||||
IPV6_FAILURE_FATAL=no
|
||||
IPV6_ADDR_GEN_MODE=stable-privacy
|
|
@ -0,0 +1,22 @@
|
|||
HWADDR=00:11:22:33:44:EE
|
||||
TYPE=Ethernet
|
||||
KEY_MGMT=IEEE8021X
|
||||
IEEE_8021X_EAP_METHODS=PEAP
|
||||
IEEE_8021X_IDENTITY="Jara Cimrman"
|
||||
IEEE_8021X_PASSWORD_FLAGS="user ask"
|
||||
IEEE_8021X_PEAP_VERSION=1
|
||||
IEEE_8021X_INNER_AUTH_METHODS=GTC
|
||||
IEEE_8021X_SUBJECT_MATCH=server1.yourdomain.tld
|
||||
IEEE_8021X_PHASE2_SUBJECT_MATCH=server2.yourdomain.tld
|
||||
IEEE_8021X_ALTSUBJECT_MATCHES="a.yourdomain.tld b.yourdomain.tld c.yourdomain.tld"
|
||||
IEEE_8021X_PHASE2_ALTSUBJECT_MATCHES="x.yourdomain.tld y.yourdomain.tld"
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=no
|
||||
NAME="System test-wired-802-1X-subj-matches"
|
||||
UUID=${UUID}
|
||||
DEVICE=eth0
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,16 @@
|
|||
DEVICE=bond0
|
||||
BONDING_OPTS=mode=balance-rr
|
||||
TYPE=Bond
|
||||
BONDING_MASTER=yes
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=none
|
||||
IPADDR=1.1.1.3
|
||||
PREFIX=24
|
||||
GATEWAY=1.1.1.1
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=no
|
||||
NAME="Test Write Bond Main"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,8 @@
|
|||
HWADDR=31:33:33:37:BE:CD
|
||||
MTU=1492
|
||||
TYPE=Ethernet
|
||||
BRIDGING_OPTS="priority=50 path_cost=33"
|
||||
NAME="Test Write Bridge Component"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
||||
BRIDGE=br0
|
|
@ -0,0 +1,11 @@
|
|||
TYPE=Ethernet
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=no
|
||||
NAME="Test Write Permissions"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
||||
USERS="blahblah foobar asdfasdf"
|
|
@ -0,0 +1,15 @@
|
|||
TYPE=Ethernet
|
||||
PROXY_METHOD=auto
|
||||
PAC_URL=https://wpad.neverland.org/wpad.dat
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=yes
|
||||
IPV6_AUTOCONF=yes
|
||||
IPV6_DEFROUTE=yes
|
||||
IPV6_FAILURE_FATAL=no
|
||||
IPV6_ADDR_GEN_MODE=stable-privacy
|
||||
NAME="Test Write Proxy Basic"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,6 @@
|
|||
TEAM_PORT_CONFIG="{ \"p4p1\": { \"prio\": -10, \"sticky\": true } }"
|
||||
NAME="Test Write Team Port"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
||||
TEAM_MASTER=team0
|
||||
DEVICETYPE=TeamPort
|
|
@ -0,0 +1,20 @@
|
|||
VLAN=yes
|
||||
TYPE=Vlan
|
||||
PHYSDEV=eth0
|
||||
VLAN_ID=444
|
||||
REORDER_HDR=yes
|
||||
GVRP=no
|
||||
MVRP=no
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=yes
|
||||
IPV6_AUTOCONF=yes
|
||||
IPV6_DEFROUTE=yes
|
||||
IPV6_FAILURE_FATAL=no
|
||||
IPV6_ADDR_GEN_MODE=stable-privacy
|
||||
NAME="Test Write VLAN reorder_hdr"
|
||||
UUID=${UUID}
|
||||
ONBOOT=no
|
|
@ -0,0 +1,18 @@
|
|||
ESSID="Test SSID"
|
||||
MODE=Managed
|
||||
BAND=a
|
||||
MAC_ADDRESS_RANDOMIZATION=default
|
||||
TYPE=Wireless
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=yes
|
||||
IPV6_AUTOCONF=yes
|
||||
IPV6_DEFROUTE=yes
|
||||
IPV6_FAILURE_FATAL=no
|
||||
IPV6_ADDR_GEN_MODE=stable-privacy
|
||||
NAME="Test Write WiFi Band A"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,18 @@
|
|||
ESSID="Test SSID"
|
||||
MODE=Managed
|
||||
SSID_HIDDEN=yes
|
||||
MAC_ADDRESS_RANDOMIZATION=default
|
||||
TYPE=Wireless
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=yes
|
||||
IPV6_AUTOCONF=yes
|
||||
IPV6_DEFROUTE=yes
|
||||
IPV6_FAILURE_FATAL=no
|
||||
IPV6_ADDR_GEN_MODE=stable-privacy
|
||||
NAME="Test Write WiFi Hidden"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,18 @@
|
|||
MACADDR=random
|
||||
ESSID="Test SSID"
|
||||
MODE=Managed
|
||||
MAC_ADDRESS_RANDOMIZATION=always
|
||||
TYPE=Wireless
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=yes
|
||||
IPV6_AUTOCONF=yes
|
||||
IPV6_DEFROUTE=yes
|
||||
IPV6_FAILURE_FATAL=no
|
||||
IPV6_ADDR_GEN_MODE=stable-privacy
|
||||
NAME="Test Write WiFi MAC always"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,17 @@
|
|||
ESSID="Test SSID"
|
||||
MODE=Managed
|
||||
MAC_ADDRESS_RANDOMIZATION=default
|
||||
TYPE=Wireless
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=yes
|
||||
IPV6_AUTOCONF=yes
|
||||
IPV6_DEFROUTE=yes
|
||||
IPV6_FAILURE_FATAL=no
|
||||
IPV6_ADDR_GEN_MODE=stable-privacy
|
||||
NAME="Test Write WiFi MAC default"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,18 @@
|
|||
MACADDR=permanent
|
||||
ESSID="Test SSID"
|
||||
MODE=Managed
|
||||
MAC_ADDRESS_RANDOMIZATION=never
|
||||
TYPE=Wireless
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=yes
|
||||
IPV6_AUTOCONF=yes
|
||||
IPV6_DEFROUTE=yes
|
||||
IPV6_FAILURE_FATAL=no
|
||||
IPV6_ADDR_GEN_MODE=stable-privacy
|
||||
NAME="Test Write WiFi MAC missing"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,18 @@
|
|||
MACADDR=permanent
|
||||
ESSID="Test SSID"
|
||||
MODE=Managed
|
||||
MAC_ADDRESS_RANDOMIZATION=never
|
||||
TYPE=Wireless
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=yes
|
||||
IPV6_AUTOCONF=yes
|
||||
IPV6_DEFROUTE=yes
|
||||
IPV6_FAILURE_FATAL=no
|
||||
IPV6_ADDR_GEN_MODE=stable-privacy
|
||||
NAME="Test Write WiFi MAC never"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,16 @@
|
|||
ESSID=blahblah
|
||||
MODE=Managed
|
||||
KEY_MGMT=IEEE8021X
|
||||
SECURITYMODE=leap
|
||||
IEEE_8021X_IDENTITY="Bill Smith"
|
||||
MAC_ADDRESS_RANDOMIZATION=default
|
||||
TYPE=Wireless
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=no
|
||||
NAME="Test Write Wifi LEAP"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,15 @@
|
|||
ESSID=blahblah104
|
||||
MODE=Managed
|
||||
SECURITYMODE=open
|
||||
DEFAULTKEY=1
|
||||
MAC_ADDRESS_RANDOMIZATION=default
|
||||
TYPE=Wireless
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=no
|
||||
NAME="Test Write Wifi WEP 104 ASCII"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,15 @@
|
|||
ETHTOOL_OPTS="autoneg off speed 10 duplex half"
|
||||
TYPE=Ethernet
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=yes
|
||||
IPV6_AUTOCONF=yes
|
||||
IPV6_DEFROUTE=yes
|
||||
IPV6_FAILURE_FATAL=no
|
||||
IPV6_ADDR_GEN_MODE=stable-privacy
|
||||
NAME="Test Write Wired Auto-Negotiate"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,15 @@
|
|||
ETHTOOL_OPTS="wol umgs sopass 00:00:00:11:22:33"
|
||||
TYPE=Ethernet
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=yes
|
||||
IPV6_AUTOCONF=yes
|
||||
IPV6_DEFROUTE=yes
|
||||
IPV6_FAILURE_FATAL=no
|
||||
IPV6_ADDR_GEN_MODE=stable-privacy
|
||||
NAME="Test Write Wired Wake-on-LAN"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,22 @@
|
|||
VLAN=yes
|
||||
TYPE=Vlan
|
||||
DEVICE=vlan43
|
||||
PHYSDEV=eth9
|
||||
VLAN_ID=43
|
||||
REORDER_HDR=yes
|
||||
GVRP=yes
|
||||
VLAN_FLAGS=LOOSE_BINDING
|
||||
MVRP=no
|
||||
VLAN_INGRESS_PRIORITY_MAP=0:1,2:5
|
||||
VLAN_EGRESS_PRIORITY_MAP=3:1,12:3,14:7
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=none
|
||||
IPADDR=192.168.43.149
|
||||
PREFIX=24
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=no
|
||||
NAME="Vlan test-vlan-interface"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,41 @@
|
|||
TYPE=Ethernet
|
||||
DCB=yes
|
||||
DCB_APP_FCOE_ENABLE=yes
|
||||
DCB_APP_FCOE_ADVERTISE=yes
|
||||
DCB_APP_FCOE_WILLING=yes
|
||||
DCB_APP_FCOE_PRIORITY=5
|
||||
DCB_APP_FCOE_MODE=fabric
|
||||
DCB_APP_ISCSI_ENABLE=yes
|
||||
DCB_APP_ISCSI_ADVERTISE=yes
|
||||
DCB_APP_ISCSI_WILLING=yes
|
||||
DCB_APP_ISCSI_PRIORITY=1
|
||||
DCB_APP_FIP_ENABLE=yes
|
||||
DCB_APP_FIP_ADVERTISE=yes
|
||||
DCB_APP_FIP_WILLING=yes
|
||||
DCB_APP_FIP_PRIORITY=3
|
||||
DCB_PFC_ENABLE=yes
|
||||
DCB_PFC_ADVERTISE=yes
|
||||
DCB_PFC_WILLING=yes
|
||||
DCB_PFC_UP=11010110
|
||||
DCB_PG_ENABLE=yes
|
||||
DCB_PG_ADVERTISE=yes
|
||||
DCB_PG_WILLING=yes
|
||||
DCB_PG_ID=4f6f173f
|
||||
DCB_PG_PCT=10,20,15,10,2,3,35,5
|
||||
DCB_PG_UPPCT=10,20,30,40,50,10,0,25
|
||||
DCB_PG_STRICT=10110001
|
||||
DCB_PG_UP2TC=34721056
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=yes
|
||||
IPV6_AUTOCONF=yes
|
||||
IPV6_DEFROUTE=yes
|
||||
IPV6_FAILURE_FATAL=no
|
||||
IPV6_ADDR_GEN_MODE=stable-privacy
|
||||
NAME=dcb-test
|
||||
UUID=${UUID}
|
||||
DEVICE=eth0
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,13 @@
|
|||
ESSID=blahblah
|
||||
MODE=Managed
|
||||
MAC_ADDRESS_RANDOMIZATION=default
|
||||
TYPE=Wireless
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=no
|
||||
NAME="random wifi connection"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
|
@ -0,0 +1,15 @@
|
|||
ESSID=SomeSSID
|
||||
MODE=Managed
|
||||
MAC_ADDRESS_RANDOMIZATION=default
|
||||
TYPE=Wireless
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=no
|
||||
NAME="random wifi connection 2"
|
||||
UUID=${UUID}
|
||||
ONBOOT=yes
|
||||
USERS=superman
|
||||
DEFAULTKEY=1
|
|
@ -0,0 +1,12 @@
|
|||
VLAN=yes
|
||||
DEVICE=enp31s0f1-142
|
||||
PHYSDEV=enp31s0f1
|
||||
VLAN_ID=142
|
||||
REORDER_HDR=yes
|
||||
GVRP=no
|
||||
MVRP=no
|
||||
NAME=team-slave-enp31s0f1-142
|
||||
UUID=74f435bb-ede4-415a-9d48-f580b60eba04
|
||||
ONBOOT=no
|
||||
TEAM_MASTER=team142
|
||||
DEVICETYPE=TeamPort
|
|
@ -0,0 +1,12 @@
|
|||
HWADDR=00:16:41:11:22:33
|
||||
TYPE=Ethernet
|
||||
PROXY_METHOD=none
|
||||
BROWSER_ONLY=no
|
||||
BOOTPROTO=dhcp
|
||||
DEFROUTE=yes
|
||||
IPV4_FAILURE_FATAL=no
|
||||
IPV6INIT=no
|
||||
NAME=test-static-routes-legacy
|
||||
UUID=ba60d05a-7898-820d-c2db-427a88f8f2a5
|
||||
DEVICE=eth0
|
||||
ONBOOT=yes
|
|
@ -113,13 +113,118 @@ _assert_reread_same_FIXME (NMConnection *connection, NMConnection *reread)
|
|||
g_assert (!nm_connection_diff (connection_normalized, reread, NM_SETTING_COMPARE_FLAG_EXACT, &settings));
|
||||
}
|
||||
|
||||
#define _writer_update_connection_reread(connection, ifcfg_dir, filename, out_reread, out_reread_same) \
|
||||
/* dummy path for an "expected" file, meaning: don't check for expected
|
||||
* written ifcfg file. */
|
||||
static const char const NO_EXPECTED[1];
|
||||
|
||||
static void
|
||||
_assert_expected_content (NMConnection *connection, const char *filename, const char *expected)
|
||||
{
|
||||
gs_free char *content_expectd = NULL;
|
||||
gs_free char *content_written = NULL;
|
||||
GError *error = NULL;
|
||||
gsize len_expectd = 0;
|
||||
gsize len_written = 0;
|
||||
gboolean success;
|
||||
const char *uuid = NULL;
|
||||
|
||||
g_assert (NM_IS_CONNECTION (connection));
|
||||
g_assert (filename);
|
||||
g_assert (g_file_test (filename, G_FILE_TEST_EXISTS));
|
||||
|
||||
g_assert (expected);
|
||||
if (expected == NO_EXPECTED)
|
||||
return;
|
||||
|
||||
success = g_file_get_contents (filename, &content_written, &len_written, &error);
|
||||
nmtst_assert_success (success, error);
|
||||
|
||||
success = g_file_get_contents (expected, &content_expectd, &len_expectd, &error);
|
||||
nmtst_assert_success (success, error);
|
||||
|
||||
{
|
||||
gsize i, j;
|
||||
|
||||
for (i = 0; i < len_expectd; ) {
|
||||
if (content_expectd[i] != '$') {
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
if (g_str_has_prefix (&content_expectd[i], "${UUID}")) {
|
||||
GString *str;
|
||||
|
||||
if (!uuid) {
|
||||
uuid = nm_connection_get_uuid (connection);
|
||||
g_assert (uuid);
|
||||
}
|
||||
|
||||
j = strlen (uuid);
|
||||
|
||||
str = g_string_new_len (content_expectd, len_expectd);
|
||||
g_string_erase (str, i, NM_STRLEN ("${UUID}"));
|
||||
g_string_insert_len (str, i, uuid, j);
|
||||
|
||||
g_free (content_expectd);
|
||||
len_expectd = str->len;
|
||||
content_expectd = g_string_free (str, FALSE);
|
||||
i += j;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* other '$' is not supported. If need be, support escaping of
|
||||
* '$' via '$$'. */
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
}
|
||||
|
||||
if ( len_expectd != len_written
|
||||
|| memcmp (content_expectd, content_written, len_expectd) != 0) {
|
||||
if (g_getenv ("NMTST_IFCFG_RH_UPDATE_EXPECTED")) {
|
||||
if (uuid) {
|
||||
gs_free char *search = g_strdup_printf ("UUID=%s\n", uuid);
|
||||
const char *s;
|
||||
gsize i;
|
||||
GString *str;
|
||||
|
||||
s = content_written;
|
||||
while (TRUE) {
|
||||
s = strstr (s, search);
|
||||
g_assert (s);
|
||||
if ( s == content_written
|
||||
|| s[-1] == '\n')
|
||||
break;
|
||||
s += strlen (search);
|
||||
}
|
||||
|
||||
i = s - content_written;
|
||||
|
||||
str = g_string_new_len (content_written, len_written);
|
||||
g_string_erase (str, i, strlen (search));
|
||||
g_string_insert (str, i, "UUID=${UUID}\n");
|
||||
|
||||
len_written = str->len;
|
||||
content_written = g_string_free (str, FALSE);
|
||||
}
|
||||
success = g_file_set_contents (expected, content_written, len_written, &error);
|
||||
nmtst_assert_success (success, error);
|
||||
} else {
|
||||
g_error ("The content of \"%s\" (%zu) differs from \"%s\" (%zu). Set NMTST_IFCFG_RH_UPDATE_EXPECTED=yes to update the files inplace\n\n>>>%s<<<\n\n>>>%s<<<\n",
|
||||
filename, len_written,
|
||||
expected, len_expectd,
|
||||
content_written,
|
||||
content_expectd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#define _writer_update_connection_reread(connection, ifcfg_dir, filename, expected, out_reread, out_reread_same) \
|
||||
G_STMT_START { \
|
||||
gs_unref_object NMConnection *_connection = nmtst_connection_duplicate_and_normalize (connection); \
|
||||
NMConnection **_out_reread = (out_reread); \
|
||||
gboolean *_out_reread_same = (out_reread_same); \
|
||||
const char *_ifcfg_dir = (ifcfg_dir); \
|
||||
const char *_filename = (filename); \
|
||||
const char *_expected = (expected); \
|
||||
GError *_error = NULL; \
|
||||
gboolean _success; \
|
||||
\
|
||||
|
@ -128,15 +233,16 @@ _assert_reread_same_FIXME (NMConnection *connection, NMConnection *reread)
|
|||
\
|
||||
_success = writer_update_connection (_connection, _ifcfg_dir, _filename, _out_reread, _out_reread_same, &_error); \
|
||||
nmtst_assert_success (_success, _error); \
|
||||
_assert_expected_content (_connection, _filename, _expected); \
|
||||
} G_STMT_END
|
||||
|
||||
#define _writer_update_connection(connection, ifcfg_dir, filename) \
|
||||
#define _writer_update_connection(connection, ifcfg_dir, filename, expected) \
|
||||
G_STMT_START { \
|
||||
gs_unref_object NMConnection *_reread = NULL; \
|
||||
NMConnection *_c = (connection); \
|
||||
gboolean _reread_same = FALSE; \
|
||||
\
|
||||
_writer_update_connection_reread (_c, ifcfg_dir, filename, &_reread, &_reread_same); \
|
||||
_writer_update_connection_reread (_c, ifcfg_dir, filename, expected, &_reread, &_reread_same); \
|
||||
_assert_reread_same (_c, _reread); \
|
||||
g_assert (_reread_same); \
|
||||
} G_STMT_END
|
||||
|
@ -187,6 +293,7 @@ static void
|
|||
_writer_new_connection_reread (NMConnection *connection,
|
||||
const char *ifcfg_dir,
|
||||
char **out_filename,
|
||||
const char *expected,
|
||||
NMConnection **out_reread,
|
||||
gboolean *out_reread_same)
|
||||
{
|
||||
|
@ -214,10 +321,27 @@ _writer_new_connection_reread (NMConnection *connection,
|
|||
if (reread)
|
||||
nmtst_assert_connection_verifies_without_normalization (*reread);
|
||||
|
||||
_assert_expected_content (con_verified, filename, expected);
|
||||
|
||||
if (out_filename)
|
||||
*out_filename = filename;
|
||||
else
|
||||
g_free (filename);
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
_writer_new_connec_exp (NMConnection *connection,
|
||||
const char *ifcfg_dir,
|
||||
const char *expected,
|
||||
char **out_filename)
|
||||
{
|
||||
gs_unref_object NMConnection *reread = NULL;
|
||||
gboolean reread_same = FALSE;
|
||||
|
||||
_writer_new_connection_reread (connection, ifcfg_dir, out_filename, expected, &reread, &reread_same);
|
||||
_assert_reread_same (connection, reread);
|
||||
g_assert (reread_same);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -225,12 +349,7 @@ _writer_new_connection (NMConnection *connection,
|
|||
const char *ifcfg_dir,
|
||||
char **out_filename)
|
||||
{
|
||||
gs_unref_object NMConnection *reread = NULL;
|
||||
gboolean reread_same = FALSE;
|
||||
|
||||
_writer_new_connection_reread (connection, ifcfg_dir, out_filename, &reread, &reread_same);
|
||||
_assert_reread_same (connection, reread);
|
||||
g_assert (reread_same);
|
||||
_writer_new_connec_exp (connection, ifcfg_dir, NO_EXPECTED, out_filename);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -243,7 +362,7 @@ _writer_new_connection_FIXME (NMConnection *connection,
|
|||
|
||||
/* FIXME: this should not happen. Fix it to use _writer_new_connection() instead. */
|
||||
|
||||
_writer_new_connection_reread (connection, ifcfg_dir, out_filename, &reread, &reread_same);
|
||||
_writer_new_connection_reread (connection, ifcfg_dir, out_filename, NO_EXPECTED, &reread, &reread_same);
|
||||
_assert_reread_same_FIXME (connection, reread);
|
||||
g_assert (!reread_same);
|
||||
}
|
||||
|
@ -1678,8 +1797,9 @@ test_read_write_802_1X_subj_matches (void)
|
|||
|
||||
g_test_expect_message ("NetworkManager", G_LOG_LEVEL_MESSAGE,
|
||||
"*missing IEEE_8021X_CA_CERT for EAP method 'peap'; this is insecure!");
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-System_test-wired-802-1X-subj-matches.cexpected",
|
||||
&testfile);
|
||||
g_test_assert_expected_messages ();
|
||||
|
||||
|
@ -1930,8 +2050,9 @@ test_clear_master (void)
|
|||
g_assert_cmpstr (nm_setting_connection_get_slave_type (s_con), ==, "bridge");
|
||||
|
||||
/* 2. write the connection to a new file */
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-System_test-bridge-component-a.cexpected",
|
||||
&testfile);
|
||||
|
||||
/* 3. clear master and slave-type */
|
||||
|
@ -1948,7 +2069,8 @@ test_clear_master (void)
|
|||
/* 4. update the connection on disk */
|
||||
_writer_update_connection (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
testfile);
|
||||
testfile,
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-System_test-bridge-component-b.cexpected");
|
||||
keyfile = utils_get_keys_path (testfile);
|
||||
g_assert (!g_file_test (keyfile, G_FILE_TEST_EXISTS));
|
||||
|
||||
|
@ -3249,8 +3371,9 @@ test_write_wifi_hidden (void)
|
|||
|
||||
nmtst_assert_connection_verifies (connection);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-Test_Write_WiFi_Hidden.cexpected",
|
||||
&testfile);
|
||||
|
||||
f = _svOpenFile (testfile);
|
||||
|
@ -3298,6 +3421,7 @@ test_write_wifi_mac_random (gconstpointer user_data)
|
|||
const char *name, *write_expected;
|
||||
gpointer value_p;
|
||||
NMSettingMacRandomization value;
|
||||
char cexpected[NM_STRLEN (TEST_IFCFG_DIR) + 100];
|
||||
|
||||
nmtst_test_data_unpack (user_data, &name, &value_p, &write_expected);
|
||||
value = GPOINTER_TO_INT (value_p);
|
||||
|
@ -3332,8 +3456,9 @@ test_write_wifi_mac_random (gconstpointer user_data)
|
|||
|
||||
nmtst_assert_connection_verifies (connection);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
nm_sprintf_buf (cexpected, TEST_IFCFG_DIR"/network-scripts/ifcfg-Test_Write_WiFi_MAC_%s.cexpected", name),
|
||||
&testfile);
|
||||
|
||||
f = _svOpenFile (testfile);
|
||||
|
@ -3384,8 +3509,9 @@ test_write_wired_wake_on_lan (void)
|
|||
|
||||
nmtst_assert_connection_verifies (connection);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-Test_Write_Wired_Wake-on-LAN.cexpected",
|
||||
&testfile);
|
||||
|
||||
f = _svOpenFile (testfile);
|
||||
|
@ -3419,8 +3545,9 @@ test_write_wired_auto_negotiate_off (void)
|
|||
NM_SETTING_WIRED_SPEED, 10,
|
||||
NULL);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-Test_Write_Wired_Auto-Negotiate.cexpected",
|
||||
&testfile);
|
||||
|
||||
f = _svOpenFile (testfile);
|
||||
|
@ -3532,8 +3659,9 @@ test_write_wifi_band_a (void)
|
|||
|
||||
nmtst_assert_connection_verifies (connection);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-Test_Write_WiFi_Band_A.cexpected",
|
||||
&testfile);
|
||||
|
||||
f = _svOpenFile (testfile);
|
||||
|
@ -4282,8 +4410,9 @@ test_read_write_static_routes_legacy (void)
|
|||
* we can clean up after the written connection in both the original
|
||||
* source tree and for 'make distcheck'.
|
||||
*/
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR_TMP,
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-test-static-routes-legacy.cexpected",
|
||||
&testfile);
|
||||
|
||||
reread = _connection_from_file (testfile, NULL, TYPE_ETHERNET, NULL);
|
||||
|
@ -5398,8 +5527,9 @@ test_write_wifi_wep_104_ascii (void)
|
|||
|
||||
nmtst_assert_connection_verifies (connection);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_SCRATCH_DIR "/network-scripts/ifcfg-Test_Write_Wifi_WEP_104_ASCII.cexpected",
|
||||
&testfile);
|
||||
|
||||
reread = _connection_from_file (testfile, NULL, TYPE_WIRELESS, NULL);
|
||||
|
@ -5482,8 +5612,9 @@ test_write_wifi_leap (void)
|
|||
|
||||
nmtst_assert_connection_verifies (connection);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-Test_Write_Wifi_LEAP.cexpected",
|
||||
&testfile);
|
||||
|
||||
reread = _connection_from_file (testfile, NULL, TYPE_WIRELESS, NULL);
|
||||
|
@ -6220,7 +6351,8 @@ test_write_wifi_wpa_then_open (void)
|
|||
/* Write it back out */
|
||||
_writer_update_connection (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
testfile);
|
||||
testfile,
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-random_wifi_connection.cexpected");
|
||||
keyfile = utils_get_keys_path (testfile);
|
||||
g_assert (!g_file_test (keyfile, G_FILE_TEST_EXISTS));
|
||||
|
||||
|
@ -6339,7 +6471,8 @@ test_write_wifi_wpa_then_wep_with_perms (void)
|
|||
/* Write it back out */
|
||||
_writer_update_connection (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
testfile);
|
||||
testfile,
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-random_wifi_connection_2.cexpected");
|
||||
|
||||
reread = _connection_from_file (testfile, NULL, TYPE_WIRELESS, NULL);
|
||||
|
||||
|
@ -6638,8 +6771,9 @@ test_write_permissions (void)
|
|||
|
||||
nmtst_assert_connection_verifies (connection);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-Test_Write_Permissions.cexpected",
|
||||
&testfile);
|
||||
|
||||
reread = _connection_from_file (testfile, NULL, TYPE_ETHERNET, NULL);
|
||||
|
@ -7093,8 +7227,9 @@ test_write_bridge_component (void)
|
|||
|
||||
nmtst_assert_connection_verifies (connection);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-Test_Write_Bridge_Component.cexpected",
|
||||
&testfile);
|
||||
|
||||
reread = _connection_from_file (testfile, NULL, TYPE_ETHERNET, NULL);
|
||||
|
@ -7338,8 +7473,9 @@ test_write_vlan (void)
|
|||
connection = _connection_from_file (TEST_IFCFG_VLAN_INTERFACE,
|
||||
NULL, TYPE_VLAN, NULL);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-Vlan_test-vlan-interface.cexpected",
|
||||
&testfile);
|
||||
}
|
||||
|
||||
|
@ -7418,8 +7554,9 @@ test_write_vlan_reorder_hdr (void)
|
|||
NM_SETTING_VLAN_FLAGS, 1,
|
||||
NULL);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-Test_Write_VLAN_reorder_hdr.cexpected",
|
||||
&testfile);
|
||||
|
||||
reread = _connection_from_file (testfile, NULL, TYPE_ETHERNET, NULL);
|
||||
|
@ -7598,8 +7735,9 @@ test_write_bond_main (void)
|
|||
|
||||
nmtst_assert_connection_verifies_without_normalization (connection);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-Test_Write_Bond_Main.cexpected",
|
||||
&testfile);
|
||||
|
||||
reread = _connection_from_file (testfile, NULL, TYPE_BOND, NULL);
|
||||
|
@ -7992,8 +8130,9 @@ test_write_dcb_basic (void)
|
|||
|
||||
nmtst_assert_connection_verifies (connection);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts//ifcfg-dcb-test.cexpected",
|
||||
&testfile);
|
||||
|
||||
reread = _connection_from_file (testfile, NULL, TYPE_ETHERNET, NULL);
|
||||
|
@ -8390,8 +8529,9 @@ test_write_team_port (void)
|
|||
|
||||
nmtst_assert_connection_verifies (connection);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-Test_Write_Team_Port.cexpected",
|
||||
&testfile);
|
||||
|
||||
f = _svOpenFile (testfile);
|
||||
|
@ -8480,6 +8620,7 @@ test_team_reread_slave (void)
|
|||
_writer_new_connection_reread ((nmtst_get_rand_int () % 2) ? connection_1 : connection_2,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
&testfile,
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-team-slave-enp31s0f1-142.cexpected",
|
||||
&reread,
|
||||
&reread_same);
|
||||
_assert_reread_same ((nmtst_get_rand_int () % 2) ? connection_1 : connection_2, reread);
|
||||
|
@ -8551,8 +8692,9 @@ test_write_proxy_basic (void)
|
|||
|
||||
nmtst_assert_connection_verifies (connection);
|
||||
|
||||
_writer_new_connection (connection,
|
||||
_writer_new_connec_exp (connection,
|
||||
TEST_SCRATCH_DIR "/network-scripts/",
|
||||
TEST_IFCFG_DIR "/network-scripts/ifcfg-Test_Write_Proxy_Basic.cexpected",
|
||||
&testfile);
|
||||
|
||||
f = _svOpenFile (testfile);
|
||||
|
|
Loading…
Reference in a new issue