mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-10-12 21:45:41 +03:00
test(e2e): unmanage the TAP anchors in the remaining kernel scenarios
Same guard the ethernet-switch scenario already carries: NetworkManager can release an NM-managed TAP from its bridge shortly after (re-)enslavement (docs/bugs/networkmanager-tap-release.md). Applied to the Dynamips, QEMU, IOU, IOL-runner and switch-cascade scenarios after their nodes have booted (no-op where nmcli/NetworkManager is absent). This keeps those tests deterministic on un-declared hosts.
This commit is contained in:
parent
28e9b82a5f
commit
15fbef93fb
@ -111,6 +111,11 @@ def test_dynamips_kernel_datapath():
|
||||
c1 = _boot(server, pid, r1_id)
|
||||
c2 = _boot(server, pid, r2_id)
|
||||
|
||||
# NetworkManager can release an NM-managed TAP from its bridge after
|
||||
# (re-)enslavement (docs/bugs/networkmanager-tap-release.md); take the
|
||||
# anchors out of its reach for the rest of the run.
|
||||
harness.unmanage_from_networkmanager(t1, t2)
|
||||
|
||||
# Kernel objects: anchors exist and the per-link bridge has exactly
|
||||
# the two of them enslaved.
|
||||
assert harness.tap_exists(t1) and harness.tap_exists(t2), (t1, t2)
|
||||
|
||||
@ -188,6 +188,11 @@ def test_ethernet_switch_cascade_kernel_datapath():
|
||||
c1 = _boot(server, pid, r1_id)
|
||||
c2 = _boot(server, pid, r2_id)
|
||||
|
||||
# NetworkManager can release an NM-managed TAP from its bridge after
|
||||
# (re-)enslavement (docs/bugs/networkmanager-tap-release.md); take the
|
||||
# anchors out of its reach for the rest of the run.
|
||||
harness.unmanage_from_networkmanager(a1_10, a1_20, a2_10, a2_20)
|
||||
|
||||
# The deferred host joins completed via the node-start re-push: each
|
||||
# switch bridges its two router anchors plus its cascade end.
|
||||
assert harness.wait_until(lambda: harness.bridge_members(br1) == sorted([a1_10, a1_20, e0]), timeout=15), (
|
||||
|
||||
@ -121,6 +121,11 @@ def test_iol_docker_kernel_datapath():
|
||||
c1 = _boot(server, pid, n1_id)
|
||||
c2 = _boot(server, pid, n2_id)
|
||||
|
||||
# NetworkManager can release an NM-managed TAP from its bridge after
|
||||
# (re-)enslavement (docs/bugs/networkmanager-tap-release.md); take the
|
||||
# anchors out of its reach for the rest of the run.
|
||||
harness.unmanage_from_networkmanager(a1, a2)
|
||||
|
||||
# Kernel objects: anchors exist (born with the node, before the link
|
||||
# was ever wired) and the per-link bridge has exactly the two of them.
|
||||
assert harness.tap_exists(a1) and harness.tap_exists(a2), (a1, a2)
|
||||
|
||||
@ -135,6 +135,11 @@ def test_iou_kernel_datapath():
|
||||
c1 = _boot(server, pid, n1_id)
|
||||
c2 = _boot(server, pid, n2_id)
|
||||
|
||||
# NetworkManager can release an NM-managed TAP from its bridge after
|
||||
# (re-)enslavement (docs/bugs/networkmanager-tap-release.md); take the
|
||||
# anchors out of its reach for the rest of the run.
|
||||
harness.unmanage_from_networkmanager(a1, a2)
|
||||
|
||||
# Kernel objects: the anchors are one persistent TAP per Ethernet
|
||||
# bay/unit, born with the node (all eight — the IOU port model),
|
||||
# and the per-link bridge has exactly the two addressed ports.
|
||||
|
||||
@ -127,6 +127,12 @@ def test_qemu_kernel_datapath():
|
||||
c1 = _boot(server, pid, n1_id)
|
||||
c2 = _boot(server, pid, n2_id)
|
||||
|
||||
# NetworkManager can release an NM-managed TAP from its bridge after
|
||||
# (re-)enslavement (docs/bugs/networkmanager-tap-release.md); take the
|
||||
# anchors out of its reach for the rest of the run (the restart below
|
||||
# re-attaches them under fresh devices).
|
||||
harness.unmanage_from_networkmanager(a1, a2, harness.qemu_anchor_name(n1_id, 1))
|
||||
|
||||
# Kernel objects: one persistent TAP per adapter (both adapters of
|
||||
# router 1, the addressed one of router 2), and the per-link bridge
|
||||
# has exactly the two addressed ports.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user