mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-10 19:50:22 +01:00
platform/tests: improve nmtstp_link_delete() for deleting links
nm_platform_link_delete() will soon assert against positive ifindex
argument.
nm_platform_link_delete (NM_PLATFORM_GET, nm_platform_link_get_ifindex (NM_PLATFORM_GET, DEVICE_NAME));
will result in an assertion, if the link does not exist.
Extend nmtstp_link_delete() to gracefully skip deleting the link
so that it can be used in such situations.
Also, rename nmtstp_link_del() to nmtstp_link_delete(), because it's
closer to nm_platform_link_delete().
This commit is contained in:
parent
1c7b747f8c
commit
da39a0ada3
3 changed files with 32 additions and 27 deletions
|
|
@ -1702,10 +1702,11 @@ nmtstp_link_get (NMPlatform *platform,
|
|||
/*****************************************************************************/
|
||||
|
||||
void
|
||||
nmtstp_link_del (NMPlatform *platform,
|
||||
gboolean external_command,
|
||||
int ifindex,
|
||||
const char *name)
|
||||
nmtstp_link_delete (NMPlatform *platform,
|
||||
gboolean external_command,
|
||||
int ifindex,
|
||||
const char *name,
|
||||
gboolean require_exist)
|
||||
{
|
||||
gint64 end_time;
|
||||
const NMPlatformLink *pllink;
|
||||
|
|
@ -1718,7 +1719,10 @@ nmtstp_link_del (NMPlatform *platform,
|
|||
|
||||
pllink = nmtstp_link_get (platform, ifindex, name);
|
||||
|
||||
g_assert (pllink);
|
||||
if (!pllink) {
|
||||
g_assert (!require_exist);
|
||||
return;
|
||||
}
|
||||
|
||||
name = name_copy = g_strdup (pllink->name);
|
||||
ifindex = pllink->ifindex;
|
||||
|
|
|
|||
|
|
@ -327,10 +327,11 @@ const NMPlatformLink *nmtstp_link_vxlan_add (NMPlatform *platform,
|
|||
const char *name,
|
||||
const NMPlatformLnkVxlan *lnk);
|
||||
|
||||
void nmtstp_link_del (NMPlatform *platform,
|
||||
gboolean external_command,
|
||||
int ifindex,
|
||||
const char *name);
|
||||
void nmtstp_link_delete (NMPlatform *platform,
|
||||
gboolean external_command,
|
||||
int ifindex,
|
||||
const char *name,
|
||||
gboolean require_exist);
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
|
|
|
|||
|
|
@ -343,7 +343,7 @@ test_slave (int master, int type, SignalData *master_changed)
|
|||
ensure_no_signal (link_added);
|
||||
ensure_no_signal (link_changed);
|
||||
ensure_no_signal (link_removed);
|
||||
nmtstp_link_del (NULL, -1, ifindex, NULL);
|
||||
nmtstp_link_delete (NULL, -1, ifindex, NULL, TRUE);
|
||||
accept_signals (master_changed, 0, 1);
|
||||
accept_signals (link_changed, 0, 1);
|
||||
accept_signal (link_removed);
|
||||
|
|
@ -439,7 +439,7 @@ test_software (NMLinkType link_type, const char *link_typename)
|
|||
free_signal (link_changed);
|
||||
|
||||
/* Delete */
|
||||
nmtstp_link_del (NULL, -1, ifindex, DEVICE_NAME);
|
||||
nmtstp_link_delete (NULL, -1, ifindex, DEVICE_NAME, TRUE);
|
||||
accept_signal (link_removed);
|
||||
|
||||
/* Delete again */
|
||||
|
|
@ -450,7 +450,7 @@ test_software (NMLinkType link_type, const char *link_typename)
|
|||
if (link_type == NM_LINK_TYPE_VLAN) {
|
||||
SignalData *link_removed_parent = add_signal_ifindex (NM_PLATFORM_SIGNAL_LINK_CHANGED, NM_PLATFORM_SIGNAL_REMOVED, link_callback, vlan_parent);
|
||||
|
||||
nmtstp_link_del (NULL, -1, vlan_parent, NULL);
|
||||
nmtstp_link_delete (NULL, -1, vlan_parent, NULL, TRUE);
|
||||
accept_signal (link_removed_parent);
|
||||
free_signal (link_removed_parent);
|
||||
}
|
||||
|
|
@ -534,7 +534,7 @@ test_bridge_addr (void)
|
|||
g_assert_cmpint (plink->addr.len, ==, sizeof (addr));
|
||||
g_assert (!memcmp (plink->addr.data, addr, sizeof (addr)));
|
||||
|
||||
nmtstp_link_del (NULL, -1, link.ifindex, link.name);
|
||||
nmtstp_link_delete (NULL, -1, link.ifindex, link.name, TRUE);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
@ -609,7 +609,7 @@ test_internal (void)
|
|||
accept_signal (link_changed);
|
||||
|
||||
/* Delete device */
|
||||
nmtstp_link_del (NULL, -1, ifindex, DEVICE_NAME);
|
||||
nmtstp_link_delete (NULL, -1, ifindex, DEVICE_NAME, TRUE);
|
||||
accept_signal (link_removed);
|
||||
|
||||
/* Try to delete again */
|
||||
|
|
@ -897,7 +897,7 @@ test_software_detect (gconstpointer user_data)
|
|||
|
||||
dummy = nmtstp_link_dummy_add (NM_PLATFORM_GET, FALSE, "dummy-tmp");
|
||||
g_assert_cmpint (dummy->ifindex, ==, i);
|
||||
nmtstp_link_del (NM_PLATFORM_GET, FALSE, dummy->ifindex, NULL);
|
||||
nmtstp_link_delete (NM_PLATFORM_GET, FALSE, dummy->ifindex, NULL, TRUE);
|
||||
}
|
||||
|
||||
if (!nmtstp_link_macvlan_add (NULL, ext, DEVICE_NAME, ifindex_parent, &lnk_macvlan))
|
||||
|
|
@ -1243,9 +1243,9 @@ test_software_detect (gconstpointer user_data)
|
|||
}
|
||||
}
|
||||
|
||||
nmtstp_link_del (NULL, -1, ifindex, DEVICE_NAME);
|
||||
nmtstp_link_delete (NULL, -1, ifindex, DEVICE_NAME, TRUE);
|
||||
out_delete_parent:
|
||||
nmtstp_link_del (NULL, -1, ifindex_parent, PARENT_NAME);
|
||||
nmtstp_link_delete (NULL, -1, ifindex_parent, PARENT_NAME, TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -1822,8 +1822,8 @@ test_vlan_set_xgress (void)
|
|||
_assert_vlan_flags (ifindex, NM_VLAN_FLAG_REORDER_HEADERS | NM_VLAN_FLAG_GVRP);
|
||||
}
|
||||
|
||||
nmtstp_link_del (NULL, -1, ifindex, DEVICE_NAME);
|
||||
nmtstp_link_del (NULL, -1, ifindex_parent, PARENT_NAME);
|
||||
nmtstp_link_delete (NULL, -1, ifindex, DEVICE_NAME, TRUE);
|
||||
nmtstp_link_delete (NULL, -1, ifindex_parent, PARENT_NAME, TRUE);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
@ -1879,7 +1879,7 @@ test_create_many_links_do (guint n_devices)
|
|||
if (EX == 2)
|
||||
nmtstp_run_command_check ("ip link delete %s", name);
|
||||
else
|
||||
nmtstp_link_del (NULL, EX, g_array_index (ifindexes, int, i), name);
|
||||
nmtstp_link_delete (NULL, EX, g_array_index (ifindexes, int, i), name, TRUE);
|
||||
}
|
||||
|
||||
_LOGI (">>> process events after deleting devices...");
|
||||
|
|
@ -1965,7 +1965,7 @@ test_nl_bugs_veth (void)
|
|||
});
|
||||
|
||||
out:
|
||||
nmtstp_link_del (NULL, -1, ifindex_veth0, IFACE_VETH0);
|
||||
nmtstp_link_delete (NULL, -1, ifindex_veth0, IFACE_VETH0, TRUE);
|
||||
g_assert (!nmtstp_link_get (NM_PLATFORM_GET, ifindex_veth0, IFACE_VETH0));
|
||||
g_assert (!nmtstp_link_get (NM_PLATFORM_GET, ifindex_veth1, IFACE_VETH1));
|
||||
nmtstp_namespace_handle_release (ns_handle);
|
||||
|
|
@ -2018,7 +2018,7 @@ again:
|
|||
}
|
||||
|
||||
g_assert (!nmtstp_link_get (NM_PLATFORM_GET, ifindex_bond0, IFACE_BOND0));
|
||||
nmtstp_link_del (NULL, -1, ifindex_dummy0, IFACE_DUMMY0);
|
||||
nmtstp_link_delete (NULL, -1, ifindex_dummy0, IFACE_DUMMY0, TRUE);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
@ -2072,8 +2072,8 @@ again:
|
|||
goto again;
|
||||
}
|
||||
|
||||
nmtstp_link_del (NULL, -1, ifindex_bridge0, IFACE_BRIDGE0);
|
||||
nmtstp_link_del (NULL, -1, ifindex_dummy0, IFACE_DUMMY0);
|
||||
nmtstp_link_delete (NULL, -1, ifindex_bridge0, IFACE_BRIDGE0, TRUE);
|
||||
nmtstp_link_delete (NULL, -1, ifindex_dummy0, IFACE_DUMMY0, TRUE);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
@ -2637,8 +2637,8 @@ test_sysctl_rename (void)
|
|||
}
|
||||
|
||||
nm_platform_process_events (PL);
|
||||
nmtstp_link_del (PL, -1, ifindex[0], NULL);
|
||||
nmtstp_link_del (PL, -1, ifindex[1], NULL);
|
||||
nmtstp_link_delete (PL, -1, ifindex[0], NULL, TRUE);
|
||||
nmtstp_link_delete (PL, -1, ifindex[1], NULL, TRUE);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
@ -2717,7 +2717,7 @@ test_sysctl_netns_switch (void)
|
|||
else
|
||||
g_assert_cmpint (ifindex_tmp, ==, -1);
|
||||
|
||||
nmtstp_link_del (PL, FALSE, ifindex, NULL);
|
||||
nmtstp_link_delete (PL, FALSE, ifindex, NULL, TRUE);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue