ifcfg-rh: fix alias tests to not depend on directory read order

test_read_wired_aliases_bad() would succeed or fail depending on the
order that ifcfg-aliasem1:1 and ifcfg-aliasem1:2 got read from disk.
Fix this by splitting it into two separate tests, each with only a
single alias.
This commit is contained in:
Dan Winship 2014-04-25 10:13:20 -04:00
parent 6ba897120c
commit a54fa87108
4 changed files with 54 additions and 27 deletions

View file

@ -126,7 +126,8 @@ ALIAS_FILES = \
ifcfg-aliasem0:99 \
ifcfg-aliasem1 \
ifcfg-aliasem1:1 \
ifcfg-aliasem1:2
ifcfg-aliasem2 \
ifcfg-aliasem2:1
dist-hook:
@for f in $(ALIAS_FILES); do \

View file

@ -0,0 +1,12 @@
TYPE=Ethernet
DEVICE=aliasem2
HWADDR=00:11:22:33:44:55
BOOTPROTO=none
ONBOOT=yes
DNS1=4.2.2.1
DNS2=4.2.2.2
IPADDR=192.168.1.5
PREFIX=24
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
IPV6INIT=no

View file

@ -1,3 +1,3 @@
# bad: wrong DEVICE
DEVICE=aliasem0:2
DEVICE=aliasem0:1
IPADDR=192.168.1.20

View file

@ -2993,10 +2993,8 @@ test_read_wired_aliases_good (void)
g_object_unref (connection);
}
#define TEST_IFCFG_ALIASES_BAD TEST_IFCFG_DIR"/network-scripts/ifcfg-aliasem1"
static void
test_read_wired_aliases_bad (void)
test_read_wired_aliases_bad (const char *base, const char *expected_id)
{
NMConnection *connection;
NMSettingConnection *s_con;
@ -3008,7 +3006,6 @@ test_read_wired_aliases_bad (void)
gboolean ignore_error = FALSE;
GError *error = NULL;
const char *tmp;
const char *expected_id = "System aliasem1";
int expected_num_addresses = 1, expected_prefix = 24;
const char *expected_address = "192.168.1.5";
const char *expected_label = NULL;
@ -3016,11 +3013,7 @@ test_read_wired_aliases_bad (void)
NMIP4Address *ip4_addr;
struct in_addr addr;
g_test_expect_message ("NetworkManager", G_LOG_LEVEL_WARNING,
"*aliasem1:1*has no DEVICE*");
g_test_expect_message ("NetworkManager", G_LOG_LEVEL_WARNING,
"*aliasem1:2*has invalid DEVICE*");
connection = connection_from_file (TEST_IFCFG_ALIASES_BAD,
connection = connection_from_file (base,
NULL,
TYPE_ETHERNET,
NULL,
@ -3032,29 +3025,29 @@ test_read_wired_aliases_bad (void)
&ignore_error);
g_test_assert_expected_messages ();
ASSERT (connection != NULL,
"aliases-bad-read", "failed to read %s: %s", TEST_IFCFG_ALIASES_BAD, error->message);
"aliases-bad-read", "failed to read %s: %s", base, error->message);
ASSERT (nm_connection_verify (connection, &error),
"aliases-bad-verify", "failed to verify %s: %s", TEST_IFCFG_ALIASES_BAD, error->message);
"aliases-bad-verify", "failed to verify %s: %s", base, error->message);
/* ===== CONNECTION SETTING ===== */
s_con = nm_connection_get_setting_connection (connection);
ASSERT (s_con != NULL,
"aliases-bad-verify-connection", "failed to verify %s: missing %s setting",
TEST_IFCFG_ALIASES_BAD,
base,
NM_SETTING_CONNECTION_SETTING_NAME);
/* ID */
tmp = nm_setting_connection_get_id (s_con);
ASSERT (tmp != NULL,
"aliases-bad-verify-connection", "failed to verify %s: missing %s / %s key",
TEST_IFCFG_ALIASES_BAD,
base,
NM_SETTING_CONNECTION_SETTING_NAME,
NM_SETTING_CONNECTION_ID);
ASSERT (strcmp (tmp, expected_id) == 0,
"aliases-bad-verify-connection", "failed to verify %s: unexpected %s / %s key value",
TEST_IFCFG_ALIASES_BAD,
base,
NM_SETTING_CONNECTION_SETTING_NAME,
NM_SETTING_CONNECTION_ID);
@ -3063,20 +3056,20 @@ test_read_wired_aliases_bad (void)
s_ip4 = nm_connection_get_setting_ip4_config (connection);
ASSERT (s_ip4 != NULL,
"aliases-bad-verify-ip4", "failed to verify %s: missing %s setting",
TEST_IFCFG_ALIASES_BAD,
base,
NM_SETTING_IP4_CONFIG_SETTING_NAME);
/* Method */
tmp = nm_setting_ip4_config_get_method (s_ip4);
ASSERT (strcmp (tmp, NM_SETTING_IP4_CONFIG_METHOD_MANUAL) == 0,
"aliases-bad-verify-ip4", "failed to verify %s: unexpected %s / %s key value",
TEST_IFCFG_ALIASES_BAD,
base,
NM_SETTING_IP4_CONFIG_SETTING_NAME,
NM_SETTING_IP4_CONFIG_METHOD);
ASSERT (nm_setting_ip4_config_get_num_addresses (s_ip4) == expected_num_addresses,
"aliases-bad-verify-ip4", "failed to verify %s: unexpected %s / %s key value",
TEST_IFCFG_ALIASES_BAD,
base,
NM_SETTING_IP4_CONFIG_SETTING_NAME,
NM_SETTING_IP4_CONFIG_ADDRESSES);
@ -3084,29 +3077,29 @@ test_read_wired_aliases_bad (void)
ip4_addr = nm_setting_ip4_config_get_address (s_ip4, 0);
ASSERT (ip4_addr,
"aliases-bad-verify-ip4", "failed to verify %s: missing IP4 address",
TEST_IFCFG_ALIASES_BAD);
base);
ASSERT (inet_pton (AF_INET, expected_address, &addr) > 0,
"aliases-bad-verify-ip4", "failed to verify %s: couldn't convert IP address",
TEST_IFCFG_ALIASES_BAD);
base);
ASSERT (nm_ip4_address_get_address (ip4_addr) == addr.s_addr,
"aliases-bad-verify-ip4", "failed to verify %s: unexpected IP4 address",
TEST_IFCFG_ALIASES_BAD);
base);
ASSERT (nm_ip4_address_get_prefix (ip4_addr) == expected_prefix,
"aliases-bad-verify-ip4", "failed to verify %s: unexpected IP4 address prefix",
TEST_IFCFG_ALIASES_BAD);
base);
ASSERT (inet_pton (AF_INET, expected_gateway, &addr) > 0,
"aliases-bad-verify-ip4", "failed to verify %s: couldn't convert IP address gateway",
TEST_IFCFG_ALIASES_BAD);
base);
ASSERT (nm_ip4_address_get_gateway (ip4_addr) == addr.s_addr,
"aliases-bad-verify-ip4", "failed to verify %s: unexpected IP4 address gateway",
TEST_IFCFG_ALIASES_BAD);
base);
ASSERT (g_strcmp0 (NM_UTIL_PRIVATE_CALL (nm_setting_ip4_config_get_address_label (s_ip4, 0)), expected_label) == 0,
"aliases-bad-verify-ip4", "failed to verify %s: unexpected IP4 address label",
TEST_IFCFG_ALIASES_BAD);
base);
g_free (keyfile);
g_free (routefile);
@ -3114,6 +3107,26 @@ test_read_wired_aliases_bad (void)
g_object_unref (connection);
}
#define TEST_IFCFG_ALIASES_BAD_1 TEST_IFCFG_DIR"/network-scripts/ifcfg-aliasem1"
static void
test_read_wired_aliases_bad_1 (void)
{
g_test_expect_message ("NetworkManager", G_LOG_LEVEL_WARNING,
"*aliasem1:1*has no DEVICE*");
test_read_wired_aliases_bad (TEST_IFCFG_ALIASES_BAD_1, "System aliasem1");
}
#define TEST_IFCFG_ALIASES_BAD_2 TEST_IFCFG_DIR"/network-scripts/ifcfg-aliasem2"
static void
test_read_wired_aliases_bad_2 (void)
{
g_test_expect_message ("NetworkManager", G_LOG_LEVEL_WARNING,
"*aliasem2:1*has invalid DEVICE*");
test_read_wired_aliases_bad (TEST_IFCFG_ALIASES_BAD_2, "System aliasem2");
}
#define TEST_IFCFG_WIFI_OPEN TEST_IFCFG_DIR"/network-scripts/ifcfg-test-wifi-open"
static void
@ -14412,7 +14425,8 @@ int main (int argc, char **argv)
NM_SETTING_SECRET_FLAG_AGENT_OWNED | NM_SETTING_SECRET_FLAG_NOT_SAVED);
g_test_add_func (TPATH "802-1x/subj-matches", test_read_write_802_1X_subj_matches);
test_read_wired_aliases_good ();
test_read_wired_aliases_bad ();
test_read_wired_aliases_bad_1 ();
test_read_wired_aliases_bad_2 ();
test_read_wifi_open ();
test_read_wifi_open_auto ();
test_read_wifi_open_ssid_hex ();