summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2023-05-28 23:04:56 +0200
committerChristian Breunig <christian@breunig.cc>2023-05-28 23:04:56 +0200
commit684c4e043f61bb186a954ffa2b49e3ebb6838a6f (patch)
tree5ea54d28329cca3b967b56d1a5f752b804ac2ae0
parent9c677c81be6a6e62958c73b038c2a36f1f629108 (diff)
downloadvyos-1x-684c4e043f61bb186a954ffa2b49e3ebb6838a6f.tar.gz
vyos-1x-684c4e043f61bb186a954ffa2b49e3ebb6838a6f.zip
smoketest: T5242: improve base class test cases for virtual-ethernet interfaces
-rw-r--r--smoketest/scripts/cli/base_interfaces_test.py32
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_virtual_ethernet.py23
2 files changed, 47 insertions, 8 deletions
diff --git a/smoketest/scripts/cli/base_interfaces_test.py b/smoketest/scripts/cli/base_interfaces_test.py
index 970f12bd7..8cdf476d4 100644
--- a/smoketest/scripts/cli/base_interfaces_test.py
+++ b/smoketest/scripts/cli/base_interfaces_test.py
@@ -116,9 +116,15 @@ class BasicInterfaceTest:
for intf in self._interfaces:
self.assertNotIn(intf, interfaces())
- # No daemon that was started during a test should remain running
+ # No daemon started during tests should remain running
for daemon in ['dhcp6c', 'dhclient']:
- self.assertFalse(process_named_running(daemon))
+ # if _interface list is populated do a more fine grained search
+ # by also checking the cmd arguments passed to the daemon
+ if self._interfaces:
+ for tmp in self._interfaces:
+ self.assertFalse(process_named_running(daemon, tmp))
+ else:
+ self.assertFalse(process_named_running(daemon))
def test_dhcp_disable_interface(self):
if not self._test_dhcp:
@@ -816,7 +822,14 @@ class BasicInterfaceTest:
prefix_len = '56'
sla_len = str(64 - int(prefix_len))
+ # Create delegatee interfaces first to avoid any confusion by dhcpc6
+ # this is mainly an "issue" with virtual-ethernet interfaces
delegatees = ['dum2340', 'dum2341', 'dum2342', 'dum2343', 'dum2344']
+ for delegatee in delegatees:
+ section = Section.section(delegatee)
+ self.cli_set(['interfaces', section, delegatee])
+
+ self.cli_commit()
for interface in self._interfaces:
path = self._base_path + [interface]
@@ -829,8 +842,6 @@ class BasicInterfaceTest:
self.cli_set(pd_base + ['length', prefix_len])
for delegatee in delegatees:
- section = Section.section(delegatee)
- self.cli_set(['interfaces', section, delegatee])
self.cli_set(pd_base + ['interface', delegatee, 'address', address])
# increment interface address
address = str(int(address) + 1)
@@ -872,7 +883,14 @@ class BasicInterfaceTest:
prefix_len = '56'
sla_len = str(64 - int(prefix_len))
+ # Create delegatee interfaces first to avoid any confusion by dhcpc6
+ # this is mainly an "issue" with virtual-ethernet interfaces
delegatees = ['dum3340', 'dum3341', 'dum3342', 'dum3343', 'dum3344']
+ for delegatee in delegatees:
+ section = Section.section(delegatee)
+ self.cli_set(['interfaces', section, delegatee])
+
+ self.cli_commit()
for interface in self._interfaces:
path = self._base_path + [interface]
@@ -886,8 +904,6 @@ class BasicInterfaceTest:
self.cli_set(pd_base + ['length', prefix_len])
for delegatee in delegatees:
- section = Section.section(delegatee)
- self.cli_set(['interfaces', section, delegatee])
self.cli_set(pd_base + ['interface', delegatee, 'address', address])
self.cli_set(pd_base + ['interface', delegatee, 'sla-id', sla_id])
@@ -917,8 +933,8 @@ class BasicInterfaceTest:
# increment interface address
address = str(int(address) + 1)
- # Check for running process
- self.assertTrue(process_named_running('dhcp6c'))
+ # Check for running process
+ self.assertTrue(process_named_running('dhcp6c', interface))
for delegatee in delegatees:
# we can already cleanup the test delegatee interface here
diff --git a/smoketest/scripts/cli/test_interfaces_virtual_ethernet.py b/smoketest/scripts/cli/test_interfaces_virtual_ethernet.py
index e09846673..4710930a0 100755
--- a/smoketest/scripts/cli/test_interfaces_virtual_ethernet.py
+++ b/smoketest/scripts/cli/test_interfaces_virtual_ethernet.py
@@ -16,7 +16,10 @@
import unittest
+from netifaces import interfaces
+
from vyos.ifconfig import Section
+from vyos.util import process_named_running
from base_interfaces_test import BasicInterfaceTest
class VEthInterfaceTest(BasicInterfaceTest.TestCase):
@@ -35,5 +38,25 @@ class VEthInterfaceTest(BasicInterfaceTest.TestCase):
def test_vif_8021q_mtu_limits(self):
self.skipTest('not supported')
+ # As we always need a pair of veth interfaces, we can not rely on the base
+ # class check to determine if there is a dhcp6c or dhclient instance running.
+ # This test will always fail as there is an instance running on the peer
+ # interface.
+ def tearDown(self):
+ self.cli_delete(self._base_path)
+ self.cli_commit()
+
+ # Verify that no previously interface remained on the system
+ for intf in self._interfaces:
+ self.assertNotIn(intf, interfaces())
+
+ @classmethod
+ def tearDownClass(cls):
+ # No daemon started during tests should remain running
+ for daemon in ['dhcp6c', 'dhclient']:
+ cls.assertFalse(cls, process_named_running(daemon))
+
+ super(VEthInterfaceTest, cls).tearDownClass()
+
if __name__ == '__main__':
unittest.main(verbosity=2)