summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2025-09-30 21:48:30 +0200
committerGitHub <noreply@github.com>2025-09-30 21:48:30 +0200
commit83882a3c80154cab44a6f8a3e8f9ff17f2227a15 (patch)
tree8752a72780ad8c254d08de8d1857aaebd3acb61f
parenta3b62f290a90a374dca04c6400fd1619f36e808f (diff)
parentfa868a6967b55c7d06220afd5a0f3e7caf97443a (diff)
downloadvyos-1x-83882a3c80154cab44a6f8a3e8f9ff17f2227a15.tar.gz
vyos-1x-83882a3c80154cab44a6f8a3e8f9ff17f2227a15.zip
Merge pull request #4760 from c-po/pppoe-client-smoketests
smoketest: T7858: add PPPoE client tests with IPv4, IPv6 and DHCPv6-PD
-rw-r--r--Makefile2
-rw-r--r--smoketest/scripts/cli/base_accel_ppp_test.py5
-rw-r--r--smoketest/scripts/cli/base_interfaces_test.py6
-rw-r--r--smoketest/scripts/cli/base_vyostest_shim.py19
-rwxr-xr-xsmoketest/scripts/cli/test_backslash_escape.py2
-rwxr-xr-xsmoketest/scripts/cli/test_cgnat.py4
-rwxr-xr-xsmoketest/scripts/cli/test_config_dependency.py4
-rwxr-xr-xsmoketest/scripts/cli/test_config_save.py2
-rwxr-xr-xsmoketest/scripts/cli/test_configd_init.py4
-rwxr-xr-xsmoketest/scripts/cli/test_container.py2
-rwxr-xr-xsmoketest/scripts/cli/test_firewall.py2
-rwxr-xr-xsmoketest/scripts/cli/test_high-availability_virtual-server.py2
-rwxr-xr-xsmoketest/scripts/cli/test_high-availability_vrrp.py2
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_bonding.py3
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_bridge.py7
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_dummy.py3
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_ethernet.py10
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_geneve.py3
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_input.py5
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_l2tpv3.py5
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_loopback.py5
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_macsec.py3
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_openvpn.py4
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_pppoe.py266
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_pseudo-ethernet.py6
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_tunnel.py3
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_virtual-ethernet.py7
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_vti.py3
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_vxlan.py6
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_wireguard.py4
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_wireless.py5
-rwxr-xr-xsmoketest/scripts/cli/test_load-balancing_haproxy.py2
-rwxr-xr-xsmoketest/scripts/cli/test_load-balancing_wan.py2
-rwxr-xr-xsmoketest/scripts/cli/test_nat.py5
-rwxr-xr-xsmoketest/scripts/cli/test_nat64.py2
-rwxr-xr-xsmoketest/scripts/cli/test_nat66.py2
-rwxr-xr-xsmoketest/scripts/cli/test_netns.py2
-rwxr-xr-xsmoketest/scripts/cli/test_op-mode_show.py2
-rwxr-xr-xsmoketest/scripts/cli/test_pki.py2
-rwxr-xr-xsmoketest/scripts/cli/test_policy.py2
-rw-r--r--smoketest/scripts/cli/test_policy_local-route.py2
-rwxr-xr-xsmoketest/scripts/cli/test_policy_route.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_babel.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_bfd.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_bgp.py14
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_igmp-proxy.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_isis.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_mpls.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_nhrp.py2
-rw-r--r--smoketest/scripts/cli/test_protocols_openfabric.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_ospf.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_ospfv3.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_pim.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_pim6.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_rip.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_ripng.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_rpki.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_segment-routing.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_static.py2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_static_arp.py2
-rwxr-xr-xsmoketest/scripts/cli/test_qos.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_broadcast-relay.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_dhcp-relay.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_dhcp-server.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_dhcpv6-relay.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_dhcpv6-server.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_dns_dynamic.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_dns_forwarding.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_ipoe-server.py6
-rwxr-xr-xsmoketest/scripts/cli/test_service_lldp.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_mdns_repeater.py2
-rw-r--r--smoketest/scripts/cli/test_service_monitoring_network_event.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_monitoring_prometheus.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_monitoring_telegraf.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_monitoring_zabbix-agent.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_ndp-proxy.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_ntp.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_pppoe-server.py3
-rwxr-xr-xsmoketest/scripts/cli/test_service_router-advert.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_salt-minion.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_snmp.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_ssh.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_stunnel.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_tftp-server.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_webproxy.py2
-rwxr-xr-xsmoketest/scripts/cli/test_system_acceleration_qat.py2
-rwxr-xr-xsmoketest/scripts/cli/test_system_conntrack.py2
-rwxr-xr-xsmoketest/scripts/cli/test_system_flow-accounting.py2
-rwxr-xr-xsmoketest/scripts/cli/test_system_frr.py2
-rwxr-xr-xsmoketest/scripts/cli/test_system_ip.py2
-rwxr-xr-xsmoketest/scripts/cli/test_system_ipv6.py2
-rwxr-xr-xsmoketest/scripts/cli/test_system_lcd.py2
-rwxr-xr-xsmoketest/scripts/cli/test_system_login.py2
-rwxr-xr-xsmoketest/scripts/cli/test_system_logs.py2
-rwxr-xr-xsmoketest/scripts/cli/test_system_option.py2
-rwxr-xr-xsmoketest/scripts/cli/test_system_resolvconf.py2
-rwxr-xr-xsmoketest/scripts/cli/test_system_sflow.py2
-rwxr-xr-xsmoketest/scripts/cli/test_system_syslog.py2
-rwxr-xr-xsmoketest/scripts/cli/test_vpn_ipsec.py2
-rwxr-xr-xsmoketest/scripts/cli/test_vpn_l2tp.py6
-rwxr-xr-xsmoketest/scripts/cli/test_vpn_openconnect.py2
-rwxr-xr-xsmoketest/scripts/cli/test_vpn_pptp.py3
-rwxr-xr-xsmoketest/scripts/cli/test_vpn_sstp.py4
-rwxr-xr-xsmoketest/scripts/cli/test_vpp.py2
-rwxr-xr-xsmoketest/scripts/cli/test_vrf.py2
105 files changed, 388 insertions, 191 deletions
diff --git a/Makefile b/Makefile
index c4f7328ba..0bc848192 100644
--- a/Makefile
+++ b/Makefile
@@ -113,7 +113,7 @@ check_migration_scripts_executable:
pylint: interface_definitions
@echo Running "pylint ..."
@set -e; \
- PYTHONPATH=python/ pylint --errors-only $(shell git ls-files python/vyos/ifconfig/*.py python/vyos/utils/*.py src/conf_mode/*.py src/op_mode/*.py src/migration-scripts src/services/vyos*); \
+ PYTHONPATH="python/:smoketest/scripts/cli/" pylint --errors-only $(shell git ls-files python/vyos/ifconfig/*.py python/vyos/utils/*.py src/conf_mode/*.py src/op_mode/*.py src/migration-scripts src/services/vyos* smoketest/scripts); \
PYTHONPATH=python/ pylint --disable=all --enable=W0611 $(shell git ls-files *.py src/migration-scripts src/services)
.PHONY: j2lint
diff --git a/smoketest/scripts/cli/base_accel_ppp_test.py b/smoketest/scripts/cli/base_accel_ppp_test.py
index ddaed80ad..d7dc43757 100644
--- a/smoketest/scripts/cli/base_accel_ppp_test.py
+++ b/smoketest/scripts/cli/base_accel_ppp_test.py
@@ -26,6 +26,11 @@ from vyos.utils.process import cmd
class BasicAccelPPPTest:
class TestCase(VyOSUnitTestSHIM.TestCase):
+ _base_path = None
+ _config_file = None
+ _chap_secrets = None
+ _protocol_section = None
+
@classmethod
def setUpClass(cls):
cls._process_name = "accel-pppd"
diff --git a/smoketest/scripts/cli/base_interfaces_test.py b/smoketest/scripts/cli/base_interfaces_test.py
index cde4f9fb9..20f108b03 100644
--- a/smoketest/scripts/cli/base_interfaces_test.py
+++ b/smoketest/scripts/cli/base_interfaces_test.py
@@ -15,9 +15,9 @@
import re
from json import loads
-from netifaces import AF_INET
-from netifaces import AF_INET6
-from netifaces import ifaddresses
+from netifaces import ifaddresses # pylint: disable = no-name-in-module
+from socket import AF_INET
+from socket import AF_INET6
from systemd import journal
from base_vyostest_shim import VyOSUnitTestSHIM
diff --git a/smoketest/scripts/cli/base_vyostest_shim.py b/smoketest/scripts/cli/base_vyostest_shim.py
index 56905c92a..9f4656dfc 100644
--- a/smoketest/scripts/cli/base_vyostest_shim.py
+++ b/smoketest/scripts/cli/base_vyostest_shim.py
@@ -54,12 +54,16 @@ class VyOSUnitTestSHIM:
# Time to wait after a commit to ensure the CStore is up to date
# only required for testcases using FRR
_commit_guard_time = 0
+
+ @staticmethod
+ def debug_on():
+ return os.path.exists('/tmp/vyos.smoketest.debug')
+
@classmethod
def setUpClass(cls):
cls._session = ConfigSession(os.getpid())
cls._session.save_config(save_config)
- if os.path.exists('/tmp/vyos.smoketest.debug'):
- cls.debug = True
+ cls.debug = cls.debug_on()
pass
@classmethod
@@ -156,6 +160,17 @@ class VyOSUnitTestSHIM:
print(f'FRR configuration still empty after {empty_retry} retires!')
return out
+ def getFRRopmode(self, command : str, json : bool=False):
+ from json import loads
+ if json: command += f' json'
+ out = cmd(f'vtysh -c "{command}"')
+ if json:
+ out = loads(out)
+ if self.debug:
+ print(f'\n\ncommand "{command}" returned:\n')
+ pprint.pprint(out)
+ return out
+
@staticmethod
def ssh_send_cmd(command, username, password, key_filename=None,
hostname='localhost'):
diff --git a/smoketest/scripts/cli/test_backslash_escape.py b/smoketest/scripts/cli/test_backslash_escape.py
index 0fe71cdef..0fe55f0f4 100755
--- a/smoketest/scripts/cli/test_backslash_escape.py
+++ b/smoketest/scripts/cli/test_backslash_escape.py
@@ -65,4 +65,4 @@ class TestBackslashEscape(VyOSUnitTestSHIM.TestCase):
self.cli_commit()
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_cgnat.py b/smoketest/scripts/cli/test_cgnat.py
index 2cec401ae..7f09094b9 100755
--- a/smoketest/scripts/cli/test_cgnat.py
+++ b/smoketest/scripts/cli/test_cgnat.py
@@ -20,11 +20,9 @@ import unittest
from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.configsession import ConfigSessionError
-
base_path = ['nat', 'cgnat']
nftables_cgnat_config = '/run/nftables-cgnat.nft'
-
class TestCGNAT(VyOSUnitTestSHIM.TestCase):
@classmethod
def setUpClass(cls):
@@ -135,4 +133,4 @@ class TestCGNAT(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_config_dependency.py b/smoketest/scripts/cli/test_config_dependency.py
index 5cc62fbd1..fe5a371dd 100755
--- a/smoketest/scripts/cli/test_config_dependency.py
+++ b/smoketest/scripts/cli/test_config_dependency.py
@@ -14,7 +14,6 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this library. If not, see <http://www.gnu.org/licenses/>.
-
import unittest
from time import sleep
@@ -24,7 +23,6 @@ from vyos.configsession import ConfigSessionError
from base_vyostest_shim import VyOSUnitTestSHIM
-
class TestConfigDep(VyOSUnitTestSHIM.TestCase):
@classmethod
def setUpClass(cls):
@@ -127,4 +125,4 @@ class TestConfigDep(VyOSUnitTestSHIM.TestCase):
self.cli_commit()
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_config_save.py b/smoketest/scripts/cli/test_config_save.py
index f9f403a6e..ea121a243 100755
--- a/smoketest/scripts/cli/test_config_save.py
+++ b/smoketest/scripts/cli/test_config_save.py
@@ -14,7 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
import os
import unittest
@@ -24,7 +23,6 @@ from vyos.defaults import directories
from base_vyostest_shim import VyOSUnitTestSHIM
-
class TestConfigDep(VyOSUnitTestSHIM.TestCase):
def test_disk_resident(self):
config_file = os.path.join(directories['config'], 'config.boot')
diff --git a/smoketest/scripts/cli/test_configd_init.py b/smoketest/scripts/cli/test_configd_init.py
index aa6d18d39..c367736fc 100755
--- a/smoketest/scripts/cli/test_configd_init.py
+++ b/smoketest/scripts/cli/test_configd_init.py
@@ -17,6 +17,8 @@
import unittest
from time import sleep
+from base_vyostest_shim import VyOSUnitTestSHIM
+
from vyos.utils.process import is_systemd_service_running
from vyos.utils.process import cmd
@@ -36,4 +38,4 @@ class TestConfigdInit(unittest.TestCase):
cmd('sudo systemctl stop vyos-configd.service')
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_container.py b/smoketest/scripts/cli/test_container.py
index 73fbb907f..cf12151ef 100755
--- a/smoketest/scripts/cli/test_container.py
+++ b/smoketest/scripts/cli/test_container.py
@@ -480,4 +480,4 @@ class TestContainer(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_firewall.py b/smoketest/scripts/cli/test_firewall.py
index 89449c938..f1a28a054 100755
--- a/smoketest/scripts/cli/test_firewall.py
+++ b/smoketest/scripts/cli/test_firewall.py
@@ -1455,4 +1455,4 @@ class TestFirewall(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_high-availability_virtual-server.py b/smoketest/scripts/cli/test_high-availability_virtual-server.py
index 70c400555..d3780973e 100755
--- a/smoketest/scripts/cli/test_high-availability_virtual-server.py
+++ b/smoketest/scripts/cli/test_high-availability_virtual-server.py
@@ -146,4 +146,4 @@ class TestHAVirtualServer(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_high-availability_vrrp.py b/smoketest/scripts/cli/test_high-availability_vrrp.py
index e76fe69f7..893087d05 100755
--- a/smoketest/scripts/cli/test_high-availability_vrrp.py
+++ b/smoketest/scripts/cli/test_high-availability_vrrp.py
@@ -317,4 +317,4 @@ class TestVRRP(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_bonding.py b/smoketest/scripts/cli/test_interfaces_bonding.py
index 57d245ae6..03760f54a 100755
--- a/smoketest/scripts/cli/test_interfaces_bonding.py
+++ b/smoketest/scripts/cli/test_interfaces_bonding.py
@@ -18,6 +18,7 @@ import os
import unittest
from base_interfaces_test import BasicInterfaceTest
+from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.ifconfig import Section
from vyos.ifconfig.interface import Interface
@@ -334,4 +335,4 @@ class BondingInterfaceTest(BasicInterfaceTest.TestCase):
id = int(id) + 1
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_bridge.py b/smoketest/scripts/cli/test_interfaces_bridge.py
index 8502e6b2d..fb5d84880 100755
--- a/smoketest/scripts/cli/test_interfaces_bridge.py
+++ b/smoketest/scripts/cli/test_interfaces_bridge.py
@@ -17,11 +17,12 @@
import os
import json
import unittest
-
-from base_interfaces_test import BasicInterfaceTest
from copy import deepcopy
from glob import glob
+from base_interfaces_test import BasicInterfaceTest
+from base_vyostest_shim import VyOSUnitTestSHIM
+
from vyos.configsession import ConfigSessionError
from vyos.ifconfig import Section
from vyos.template import ip_from_cidr
@@ -535,4 +536,4 @@ class BridgeInterfaceTest(BasicInterfaceTest.TestCase):
self.assertEqual(tmp, '1')
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_dummy.py b/smoketest/scripts/cli/test_interfaces_dummy.py
index c9cc6124f..b19ab02dd 100755
--- a/smoketest/scripts/cli/test_interfaces_dummy.py
+++ b/smoketest/scripts/cli/test_interfaces_dummy.py
@@ -17,6 +17,7 @@
import unittest
from base_interfaces_test import BasicInterfaceTest
+from base_vyostest_shim import VyOSUnitTestSHIM
class DummyInterfaceTest(BasicInterfaceTest.TestCase):
@classmethod
@@ -27,4 +28,4 @@ class DummyInterfaceTest(BasicInterfaceTest.TestCase):
super(DummyInterfaceTest, cls).setUpClass()
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_ethernet.py b/smoketest/scripts/cli/test_interfaces_ethernet.py
index 780399159..d42ed29dc 100755
--- a/smoketest/scripts/cli/test_interfaces_ethernet.py
+++ b/smoketest/scripts/cli/test_interfaces_ethernet.py
@@ -20,11 +20,13 @@ import unittest
from glob import glob
from json import loads
-from netifaces import AF_INET
-from netifaces import AF_INET6
-from netifaces import ifaddresses
+from socket import AF_INET
+from socket import AF_INET6
+from netifaces import ifaddresses # pylint: disable = no-name-in-module
from base_interfaces_test import BasicInterfaceTest
+from base_vyostest_shim import VyOSUnitTestSHIM
+
from vyos.configsession import ConfigSessionError
from vyos.ifconfig import Section
from vyos.utils.file import read_file
@@ -240,4 +242,4 @@ class EthernetInterfaceTest(BasicInterfaceTest.TestCase):
self.cli_delete(self._base_path + [interface, 'switchdev'])
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_geneve.py b/smoketest/scripts/cli/test_interfaces_geneve.py
index bb3d7c00d..d8d28e346 100755
--- a/smoketest/scripts/cli/test_interfaces_geneve.py
+++ b/smoketest/scripts/cli/test_interfaces_geneve.py
@@ -20,6 +20,7 @@ from vyos.ifconfig import Interface
from vyos.utils.network import get_interface_config
from base_interfaces_test import BasicInterfaceTest
+from base_vyostest_shim import VyOSUnitTestSHIM
class GeneveInterfaceTest(BasicInterfaceTest.TestCase):
@classmethod
@@ -81,4 +82,4 @@ class GeneveInterfaceTest(BasicInterfaceTest.TestCase):
ttl += 10
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_input.py b/smoketest/scripts/cli/test_interfaces_input.py
index 611d2985b..737138b0a 100755
--- a/smoketest/scripts/cli/test_interfaces_input.py
+++ b/smoketest/scripts/cli/test_interfaces_input.py
@@ -16,9 +16,10 @@
import unittest
+from base_vyostest_shim import VyOSUnitTestSHIM
+
from vyos.utils.file import read_file
from vyos.ifconfig import Interface
-from base_vyostest_shim import VyOSUnitTestSHIM
base_path = ['interfaces', 'input']
@@ -48,4 +49,4 @@ class InputInterfaceTest(VyOSUnitTestSHIM.TestCase):
self.assertEqual(Interface(interface).get_alias(), f'foo-{interface}')
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_l2tpv3.py b/smoketest/scripts/cli/test_interfaces_l2tpv3.py
index 510be8938..cbe1c85a8 100755
--- a/smoketest/scripts/cli/test_interfaces_l2tpv3.py
+++ b/smoketest/scripts/cli/test_interfaces_l2tpv3.py
@@ -18,8 +18,11 @@ import json
import unittest
from base_interfaces_test import BasicInterfaceTest
+from base_vyostest_shim import VyOSUnitTestSHIM
+
from vyos.utils.process import cmd
from vyos.utils.kernel import unload_kmod
+
class L2TPv3InterfaceTest(BasicInterfaceTest.TestCase):
@classmethod
def setUpClass(cls):
@@ -63,4 +66,4 @@ if __name__ == '__main__':
'l2tp_netlink', 'l2tp_core']:
unload_kmod(module)
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_loopback.py b/smoketest/scripts/cli/test_interfaces_loopback.py
index 290cda64b..6cc0d4dbe 100755
--- a/smoketest/scripts/cli/test_interfaces_loopback.py
+++ b/smoketest/scripts/cli/test_interfaces_loopback.py
@@ -15,10 +15,11 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import unittest
+from netifaces import interfaces # pylint: disable = no-name-in-module
from base_interfaces_test import BasicInterfaceTest
from base_interfaces_test import MSG_TESTCASE_UNSUPPORTED
-from netifaces import interfaces
+from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.utils.network import is_intf_addr_assigned
@@ -57,4 +58,4 @@ class LoopbackInterfaceTest(BasicInterfaceTest.TestCase):
self.skipTest(MSG_TESTCASE_UNSUPPORTED)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_macsec.py b/smoketest/scripts/cli/test_interfaces_macsec.py
index 6465f234c..57fdce4dd 100755
--- a/smoketest/scripts/cli/test_interfaces_macsec.py
+++ b/smoketest/scripts/cli/test_interfaces_macsec.py
@@ -18,6 +18,7 @@ import re
import unittest
from base_interfaces_test import BasicInterfaceTest
+from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.configsession import ConfigSessionError
from vyos.ifconfig import Section
@@ -269,4 +270,4 @@ class MACsecInterfaceTest(BasicInterfaceTest.TestCase):
self.assertTrue(tmp['linkinfo']['info_data']['encrypt'])
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_openvpn.py b/smoketest/scripts/cli/test_interfaces_openvpn.py
index ec17d71bf..fd898cb84 100755
--- a/smoketest/scripts/cli/test_interfaces_openvpn.py
+++ b/smoketest/scripts/cli/test_interfaces_openvpn.py
@@ -19,7 +19,7 @@ import unittest
from glob import glob
from ipaddress import IPv4Network
-from netifaces import interfaces
+from netifaces import interfaces # pylint: disable = no-name-in-module
from base_vyostest_shim import VyOSUnitTestSHIM
@@ -868,4 +868,4 @@ class TestInterfacesOpenVPN(VyOSUnitTestSHIM.TestCase):
self.cli_commit()
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_pppoe.py b/smoketest/scripts/cli/test_interfaces_pppoe.py
index dbc70ebd4..227a01032 100755
--- a/smoketest/scripts/cli/test_interfaces_pppoe.py
+++ b/smoketest/scripts/cli/test_interfaces_pppoe.py
@@ -17,13 +17,26 @@
import unittest
from psutil import process_iter
+from ipaddress import IPv4Address
+from ipaddress import IPv6Address
+from ipaddress import IPv4Network
+from ipaddress import IPv6Network
from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.configsession import ConfigSessionError
+from vyos.utils.dict import dict_search_recursive
+from vyos.utils.network import get_interface_address
from vyos.xml_ref import default_value
-config_file = '/etc/ppp/peers/{}'
-base_path = ['interfaces', 'pppoe']
+config_file: str = '/etc/ppp/peers/{}'
+base_path: list = ['interfaces', 'pppoe']
+veth_path: list = ['interfaces', 'virtual-ethernet']
+pppoe_server_path = ['service', 'pppoe-server']
+connect_timeout: int = 20
+name_servers: list = ['1.1.1.1', '2.2.2.2']
+ipv4_pool: str = '100.64.0.0/18'
+ipv6_pool: str = '2001:db8:8000::/48'
+ipv6_pool_pd: str = '2001:db8:9000::/48'
def get_config_value(interface, key):
with open(config_file.format(interface), 'r') as f:
@@ -32,6 +45,19 @@ def get_config_value(interface, key):
return list(line.split())
return []
+def wait_for_interface(interface: str, timeout=connect_timeout) -> bool:
+ """ Wait until PPPoE interface has been connected to the BRAS """
+ from time import time
+ from time import sleep
+ from vyos.utils.network import get_interface_config
+
+ start_time = time()
+ while not get_interface_config(interface):
+ sleep(0.250)
+ if time() - start_time >= timeout:
+ return False
+ return True
+
# add a classmethod to setup a temporaray PPPoE server for "proper" validation
class PPPoEInterfaceTest(VyOSUnitTestSHIM.TestCase):
@classmethod
@@ -40,29 +66,76 @@ class PPPoEInterfaceTest(VyOSUnitTestSHIM.TestCase):
# ensure we can also run this test on a live system - so lets clean
# out the current configuration :)
cls.cli_delete(cls, base_path)
+ cls.cli_delete(cls, veth_path)
+ cls.cli_delete(cls, pppoe_server_path)
cls._interfaces = ['pppoe10', 'pppoe20', 'pppoe30']
- cls._source_interface = 'eth0'
+ cls._source_interface = 'veth102'
+ pppoe_server_interface = 'veth101'
+
+ cls.cli_set(cls, veth_path + [pppoe_server_interface, 'peer-name', cls._source_interface])
+ cls.cli_set(cls, veth_path + [cls._source_interface, 'peer-name', pppoe_server_interface])
+
+ cls.cli_set(cls, pppoe_server_path + ['authentication', 'mode', 'local'])
+ cls.cli_set(cls, pppoe_server_path + ['client-ip-pool', 'IPv4-POOL', 'range', ipv4_pool])
+ cls.cli_set(cls, pppoe_server_path + ['client-ipv6-pool', 'IPv6-POOL', 'prefix', ipv6_pool, 'mask', '64'])
+ cls.cli_set(cls, pppoe_server_path + ['client-ipv6-pool', 'IPv6-POOL', 'delegate', ipv6_pool_pd, 'delegation-prefix', '56'])
+ cls.cli_set(cls, pppoe_server_path + ['default-ipv6-pool', 'IPv6-POOL'])
+ cls.cli_set(cls, pppoe_server_path + ['default-pool', 'IPv4-POOL'])
+ cls.cli_set(cls, pppoe_server_path + ['gateway-address', '100.64.0.1'])
+ cls.cli_set(cls, pppoe_server_path + ['interface', pppoe_server_interface])
+ for ns in name_servers:
+ cls.cli_set(cls, pppoe_server_path + ['name-server', ns])
+ cls.cli_set(cls, pppoe_server_path + ['ppp-options', 'disable-ccp'])
+ cls.cli_set(cls, pppoe_server_path + ['ppp-options', 'ipv6', 'allow'])
+ cls.cli_set(cls, pppoe_server_path + ['session-control', 'disable'])
+
+ cls.u_p_dict = {}
+ for interface in cls._interfaces:
+ username = f'VyOS-user-{interface}'
+ password = f'VyOS-passwd-{interface}'
+
+ cls.cli_set(cls, pppoe_server_path + ['authentication', 'local-users',
+ 'username', username, 'password', password])
+
+ cls.u_p_dict[interface] = (username, password)
+
+ # Start PPPoE server
+ cls.cli_commit(cls)
- def tearDown(self):
- # Validate PPPoE client process
- for interface in self._interfaces:
- running = False
- for proc in process_iter():
- if interface in proc.cmdline():
- running = True
- break
- self.assertTrue(running)
+ @classmethod
+ def tearDownClass(cls):
+ cls.cli_delete(cls, base_path)
+ cls.cli_delete(cls, veth_path)
+ cls.cli_delete(cls, pppoe_server_path)
+ # Stop PPPoE server
+ cls.cli_commit(cls)
+
+ super(PPPoEInterfaceTest, cls).tearDownClass()
+ def tearDown(self):
self.cli_delete(base_path)
self.cli_commit()
+ def _verify_interface_address(self, interface):
+ # Verify that the assigned IPv4/IPv6 addresses from the BRAS (PPPoE
+ # server) are from the assigned pools
+ for address in get_interface_address(interface):
+ if 'family' in address and address['family'] == 'inet':
+ # The PPPoE assigned IPv4 address must be from our pool
+ self.assertIn(IPv4Address(address['address']), IPv4Network(ipv4_pool))
+ elif 'family' in address and address['family'] == 'inet6':
+ # The PPPoE assigned IPv6 address must be from our pool
+ ipv6 = IPv6Address(address['address'])
+ if not ipv6.is_link_local:
+ self.assertIn(ipv6, IPv6Network(ipv6_pool))
+
def test_pppoe_client(self):
# Check if PPPoE dialer can be configured and runs
+ mtu = '1400'
+
for interface in self._interfaces:
- user = f'VyOS-user-{interface}'
- passwd = f'VyOS-passwd-{interface}'
- mtu = '1400'
+ (user, passwd) = self.u_p_dict[interface]
self.cli_set(base_path + [interface, 'authentication', 'username', user])
self.cli_set(base_path + [interface, 'authentication', 'password', passwd])
@@ -79,8 +152,10 @@ class PPPoEInterfaceTest(VyOSUnitTestSHIM.TestCase):
# verify configuration file(s)
for interface in self._interfaces:
- user = f'VyOS-user-{interface}'
- passwd = f'VyOS-passwd-{interface}'
+ self.assertTrue(wait_for_interface(interface),
+ msg=f'Interface {interface} not found after {connect_timeout} seconds!')
+
+ (user, passwd) = self.u_p_dict[interface]
tmp = get_config_value(interface, 'mtu')[1]
self.assertEqual(tmp, mtu)
@@ -94,11 +169,19 @@ class PPPoEInterfaceTest(VyOSUnitTestSHIM.TestCase):
tmp = get_config_value(interface, 'ifname')[1]
self.assertEqual(tmp, interface)
+ # Validate and verify assigned IP addresses
+ self._verify_interface_address(interface)
+
+ # validate that we have learned a default route
+ tmp = self.getFRRopmode('show ip route 0.0.0.0/0', json=True)
+ # Test if we have a default route 0.0.0.0/0 pointing to our PPPoE interface
+ tmp = dict_search_recursive(tmp, 'interfaceName')
+ self.assertTrue(any(iface == interface for (iface, _) in tmp))
+
def test_pppoe_client_disabled_interface(self):
# Check if PPPoE Client can be disabled
for interface in self._interfaces:
- user = f'VyOS-user-{interface}'
- passwd = f'VyOS-passwd-{interface}'
+ (user, passwd) = self.u_p_dict[interface]
self.cli_set(base_path + [interface, 'authentication', 'username', user])
self.cli_set(base_path + [interface, 'authentication', 'password', passwd])
@@ -122,17 +205,15 @@ class PPPoEInterfaceTest(VyOSUnitTestSHIM.TestCase):
self.cli_commit()
-
def test_pppoe_authentication(self):
# When username or password is set - so must be the other
for interface in self._interfaces:
- user = f'VyOS-user-{interface}'
- passwd = f'VyOS-passwd-{interface}'
+ (user, passwd) = self.u_p_dict[interface]
self.cli_set(base_path + [interface, 'source-interface', self._source_interface])
self.cli_set(base_path + [interface, 'ipv6', 'address', 'autoconf'])
-
self.cli_set(base_path + [interface, 'authentication', 'username', user])
+
# check validate() - if user is set, so must be the password
with self.assertRaises(ConfigSessionError):
self.cli_commit()
@@ -141,15 +222,23 @@ class PPPoEInterfaceTest(VyOSUnitTestSHIM.TestCase):
self.cli_commit()
+ for interface in self._interfaces:
+ self.assertTrue(wait_for_interface(interface),
+ msg=f'Interface {interface} not found after {connect_timeout} seconds!')
+
+ # Validate and verify assigned IP addresses
+ self._verify_interface_address(interface)
+
def test_pppoe_dhcpv6pd(self):
# Check if PPPoE dialer can be configured with DHCPv6-PD
address = '1'
sla_id = '0'
- sla_len = '8'
+
+ # verify IPv6 DHCPv6-PD assignment on one dialer interface only - to not mix things up
for interface in self._interfaces:
- user = f'VyOS-user-{interface}'
- passwd = f'VyOS-passwd-{interface}'
+ (user, passwd) = self.u_p_dict[interface]
+ interface_id = ''.join(c for c in interface if c.isdigit())
self.cli_set(base_path + [interface, 'authentication', 'username', user])
self.cli_set(base_path + [interface, 'authentication', 'password', passwd])
@@ -158,18 +247,29 @@ class PPPoEInterfaceTest(VyOSUnitTestSHIM.TestCase):
self.cli_set(base_path + [interface, 'source-interface', self._source_interface])
self.cli_set(base_path + [interface, 'ipv6', 'address', 'autoconf'])
+ # interface we will delegate to
+ delegate_if = f'dum{interface_id}'
+ self.cli_set(['interfaces', 'dummy', delegate_if])
+
# prefix delegation stuff
dhcpv6_pd_base = base_path + [interface, 'dhcpv6-options', 'pd', '0']
self.cli_set(dhcpv6_pd_base + ['length', '56'])
- self.cli_set(dhcpv6_pd_base + ['interface', self._source_interface, 'address', address])
- self.cli_set(dhcpv6_pd_base + ['interface', self._source_interface, 'sla-id', sla_id])
+ self.cli_set(dhcpv6_pd_base + ['interface', delegate_if, 'address', address])
+ self.cli_set(dhcpv6_pd_base + ['interface', delegate_if, 'sla-id', sla_id])
+
+ address = str(int(address) + 1)
+ sla_id = str(int(sla_id) + 2)
# commit changes
self.cli_commit()
+ address = '1'
+ sla_id = '0'
for interface in self._interfaces:
- user = f'VyOS-user-{interface}'
- passwd = f'VyOS-passwd-{interface}'
+ self.assertTrue(wait_for_interface(interface),
+ msg=f'Interface {interface} not found after {connect_timeout} seconds!')
+
+ (user, passwd) = self.u_p_dict[interface]
mtu_default = default_value(base_path + [interface, 'mtu'])
tmp = get_config_value(interface, 'mtu')[1]
@@ -181,43 +281,88 @@ class PPPoEInterfaceTest(VyOSUnitTestSHIM.TestCase):
tmp = get_config_value(interface, '+ipv6 ipv6cp-use-ipaddr')
self.assertListEqual(tmp, ['+ipv6', 'ipv6cp-use-ipaddr'])
+ # Validate and verify assigned IP addresses
+ self._verify_interface_address(interface)
+
+ # interface we delegated to
+ delegate_if = f'dum{interface_id}'
+ tmp = get_interface_address(delegate_if)
+ self.assertIn('addr_info', tmp)
+
+ # Verify IPv6 address received from out DHCPv6-PD
+ for addr_info in tmp['addr_info']:
+ if 'family' not in addr_info or addr_info['family'] != 'inet6':
+ continue
+ # Skip link-local interface address
+ ipv6 = IPv6Address(addr_info['local'])
+ if ipv6.is_link_local:
+ continue
+
+ # DHCPv6-PD assigned interface addres is of length /64
+ self.assertEqual(addr_info['prefixlen'], 64)
+ # Interface IP address must be within the PD pool
+ self.assertIn(ipv6, IPv6Network(ipv6_pool_pd))
+ # Get corresponding PD assigned prefix for this site/connection
+ pd_prefix = IPv6Network(f"{ipv6}/56", strict=False)
+ # Prefix must be within the PD pool
+ self.assertIn(pd_prefix, IPv6Network(ipv6_pool_pd))
+ # Calculate the assigned IP address from the prefix delegation
+ network_addr = str(pd_prefix.network_address) # 2001:db8:8003::
+ generated_sla_addr = network_addr[:-1] + f'{sla_id}::{address}'
+ self.assertEqual(generated_sla_addr, ipv6)
+
+ address = str(int(address) + 1)
+ sla_id = str(int(sla_id) + 2)
+
+ self.cli_delete(['interfaces', 'dummy', delegate_if])
+
def test_pppoe_options(self):
- # Check if PPPoE dialer can be configured with DHCPv6-PD
- for interface in self._interfaces:
- user = f'VyOS-user-{interface}'
- passwd = f'VyOS-passwd-{interface}'
- ac_name = f'AC{interface}'
- service_name = f'SRV{interface}'
- host_uniq = 'cafebeefBABE123456'
+ # Verify access-concentrator and service-name CLI options
- self.cli_set(base_path + [interface, 'authentication', 'username', user])
- self.cli_set(base_path + [interface, 'authentication', 'password', passwd])
- self.cli_set(base_path + [interface, 'source-interface', self._source_interface])
+ ac_name: str = 'ACN123'
+ service_name: str = 'VyOS'
+
+ self.cli_set(pppoe_server_path + ['access-concentrator', ac_name])
+ self.cli_set(pppoe_server_path + ['service-name', service_name])
+ self.cli_commit()
+
+ # as this tests uniqueness - we only use one interface in this test
+ interface = self._interfaces[0]
+ (user, passwd) = self.u_p_dict[interface]
+
+ host_uniq = 'cafe010203'
+
+ self.cli_set(base_path + [interface, 'authentication', 'username', user])
+ self.cli_set(base_path + [interface, 'authentication', 'password', passwd])
+ self.cli_set(base_path + [interface, 'source-interface', self._source_interface])
- self.cli_set(base_path + [interface, 'access-concentrator', ac_name])
- self.cli_set(base_path + [interface, 'service-name', service_name])
- self.cli_set(base_path + [interface, 'host-uniq', host_uniq])
+ self.cli_set(base_path + [interface, 'access-concentrator', ac_name])
+ self.cli_set(base_path + [interface, 'service-name', service_name])
+ self.cli_set(base_path + [interface, 'host-uniq', host_uniq])
# commit changes
self.cli_commit()
- for interface in self._interfaces:
- ac_name = f'AC{interface}'
- service_name = f'SRV{interface}'
- host_uniq = 'cafebeefBABE123456'
+ self.assertTrue(wait_for_interface(interface),
+ msg=f'Interface {interface} not found after {connect_timeout} seconds!')
+
+ tmp = get_config_value(interface, 'pppoe-ac')[1]
+ self.assertEqual(tmp, f'"{ac_name}"')
+ tmp = get_config_value(interface, 'pppoe-service')[1]
+ self.assertEqual(tmp, f'"{service_name}"')
+ tmp = get_config_value(interface, 'pppoe-host-uniq')[1]
+ self.assertEqual(tmp, f'"{host_uniq}"')
+
+ # Validate and verify assigned IP addresses
+ self._verify_interface_address(interface)
- tmp = get_config_value(interface, 'pppoe-ac')[1]
- self.assertEqual(tmp, f'"{ac_name}"')
- tmp = get_config_value(interface, 'pppoe-service')[1]
- self.assertEqual(tmp, f'"{service_name}"')
- tmp = get_config_value(interface, 'pppoe-host-uniq')[1]
- self.assertEqual(tmp, f'"{host_uniq}"')
+ self.cli_delete(pppoe_server_path + ['access-concentrator'])
+ self.cli_delete(pppoe_server_path + ['service-name'])
def test_pppoe_mtu_mru(self):
# Check if PPPoE dialer can be configured and runs
for interface in self._interfaces:
- user = f'VyOS-user-{interface}'
- passwd = f'VyOS-passwd-{interface}'
+ (user, passwd) = self.u_p_dict[interface]
mtu = '1400'
mru = '1300'
@@ -241,8 +386,10 @@ class PPPoEInterfaceTest(VyOSUnitTestSHIM.TestCase):
# verify configuration file(s)
for interface in self._interfaces:
- user = f'VyOS-user-{interface}'
- passwd = f'VyOS-passwd-{interface}'
+ self.assertTrue(wait_for_interface(interface),
+ msg=f'Interface {interface} not found after {connect_timeout} seconds!')
+
+ (user, passwd) = self.u_p_dict[interface]
tmp = get_config_value(interface, 'mtu')[1]
self.assertEqual(tmp, mtu)
@@ -255,5 +402,8 @@ class PPPoEInterfaceTest(VyOSUnitTestSHIM.TestCase):
tmp = get_config_value(interface, 'ifname')[1]
self.assertEqual(tmp, interface)
+ # Validate and verify assigned IP addresses
+ self._verify_interface_address(interface)
+
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_pseudo-ethernet.py b/smoketest/scripts/cli/test_interfaces_pseudo-ethernet.py
index 749c90420..3be8e024f 100755
--- a/smoketest/scripts/cli/test_interfaces_pseudo-ethernet.py
+++ b/smoketest/scripts/cli/test_interfaces_pseudo-ethernet.py
@@ -17,8 +17,10 @@
import os
import unittest
-from vyos.ifconfig import Section
from base_interfaces_test import BasicInterfaceTest
+from base_vyostest_shim import VyOSUnitTestSHIM
+
+from vyos.ifconfig import Section
class PEthInterfaceTest(BasicInterfaceTest.TestCase):
@classmethod
@@ -43,4 +45,4 @@ class PEthInterfaceTest(BasicInterfaceTest.TestCase):
super(PEthInterfaceTest, cls).setUpClass()
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_tunnel.py b/smoketest/scripts/cli/test_interfaces_tunnel.py
index 43c98532a..e656a89f2 100755
--- a/smoketest/scripts/cli/test_interfaces_tunnel.py
+++ b/smoketest/scripts/cli/test_interfaces_tunnel.py
@@ -17,6 +17,7 @@
import unittest
from base_interfaces_test import BasicInterfaceTest
+from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.configsession import ConfigSessionError
from vyos.utils.network import get_interface_config
@@ -410,4 +411,4 @@ class TunnelInterfaceTest(BasicInterfaceTest.TestCase):
self.cli_commit()
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_virtual-ethernet.py b/smoketest/scripts/cli/test_interfaces_virtual-ethernet.py
index 82155dfa7..6f2ddd302 100755
--- a/smoketest/scripts/cli/test_interfaces_virtual-ethernet.py
+++ b/smoketest/scripts/cli/test_interfaces_virtual-ethernet.py
@@ -15,11 +15,12 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import unittest
+from netifaces import interfaces # pylint: disable = no-name-in-module
-from netifaces import interfaces
+from base_interfaces_test import BasicInterfaceTest
+from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.utils.process import process_named_running
-from base_interfaces_test import BasicInterfaceTest
class VEthInterfaceTest(BasicInterfaceTest.TestCase):
@classmethod
@@ -55,4 +56,4 @@ class VEthInterfaceTest(BasicInterfaceTest.TestCase):
super(VEthInterfaceTest, cls).tearDownClass()
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_vti.py b/smoketest/scripts/cli/test_interfaces_vti.py
index 067c1fb34..296d952d6 100755
--- a/smoketest/scripts/cli/test_interfaces_vti.py
+++ b/smoketest/scripts/cli/test_interfaces_vti.py
@@ -17,6 +17,7 @@
import unittest
from base_interfaces_test import BasicInterfaceTest
+from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.ifconfig import Interface
from vyos.utils.network import is_intf_addr_assigned
@@ -46,4 +47,4 @@ class VTIInterfaceTest(BasicInterfaceTest.TestCase):
self.assertEqual(Interface(intf).get_admin_state(), 'down')
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_vxlan.py b/smoketest/scripts/cli/test_interfaces_vxlan.py
index e7cbf6c0e..b63fa79ca 100755
--- a/smoketest/scripts/cli/test_interfaces_vxlan.py
+++ b/smoketest/scripts/cli/test_interfaces_vxlan.py
@@ -16,6 +16,9 @@
import unittest
+from base_interfaces_test import BasicInterfaceTest
+from base_vyostest_shim import VyOSUnitTestSHIM
+
from vyos.configsession import ConfigSessionError
from vyos.ifconfig import Interface
from vyos.ifconfig import Section
@@ -25,7 +28,6 @@ from vyos.utils.network import interface_exists
from vyos.utils.network import get_vxlan_vlan_tunnels
from vyos.utils.network import get_vxlan_vni_filter
from vyos.template import is_ipv6
-from base_interfaces_test import BasicInterfaceTest
def convert_to_list(ranges_to_convert):
result_list = []
@@ -387,4 +389,4 @@ class VXLANInterfaceTest(BasicInterfaceTest.TestCase):
self.cli_delete(['interfaces', 'bridge', bridge])
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_wireguard.py b/smoketest/scripts/cli/test_interfaces_wireguard.py
index 55e3added..a2d6f043c 100755
--- a/smoketest/scripts/cli/test_interfaces_wireguard.py
+++ b/smoketest/scripts/cli/test_interfaces_wireguard.py
@@ -18,6 +18,8 @@ import os
import unittest
from base_interfaces_test import BasicInterfaceTest
+from base_interfaces_test import VyOSUnitTestSHIM
+
from vyos.configsession import ConfigSessionError
from vyos.utils.file import read_file
from vyos.utils.process import cmd
@@ -252,4 +254,4 @@ class WireGuardInterfaceTest(BasicInterfaceTest.TestCase):
self.assertFalse(is_systemd_service_running(domain_resolver))
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_interfaces_wireless.py b/smoketest/scripts/cli/test_interfaces_wireless.py
index e00d96e35..a61c7740e 100755
--- a/smoketest/scripts/cli/test_interfaces_wireless.py
+++ b/smoketest/scripts/cli/test_interfaces_wireless.py
@@ -17,9 +17,10 @@
import os
import re
import unittest
+from glob import glob
from base_interfaces_test import BasicInterfaceTest
-from glob import glob
+from base_interfaces_test import VyOSUnitTestSHIM
from vyos.configsession import ConfigSessionError
from vyos.utils.file import read_file
@@ -637,4 +638,4 @@ class WirelessInterfaceTest(BasicInterfaceTest.TestCase):
if __name__ == '__main__':
check_kmod('mac80211_hwsim')
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_load-balancing_haproxy.py b/smoketest/scripts/cli/test_load-balancing_haproxy.py
index 2bc11638e..2b8672e1f 100755
--- a/smoketest/scripts/cli/test_load-balancing_haproxy.py
+++ b/smoketest/scripts/cli/test_load-balancing_haproxy.py
@@ -618,4 +618,4 @@ class TestLoadBalancingReverseProxy(VyOSUnitTestSHIM.TestCase):
self.assertIn(f'server localhost 127.0.0.1:{port}', config[backend_name])
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_load-balancing_wan.py b/smoketest/scripts/cli/test_load-balancing_wan.py
index 2b262a006..029818875 100755
--- a/smoketest/scripts/cli/test_load-balancing_wan.py
+++ b/smoketest/scripts/cli/test_load-balancing_wan.py
@@ -427,4 +427,4 @@ echo "$ifname - $state" > {hook_output_path}
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_nat.py b/smoketest/scripts/cli/test_nat.py
index a370f4779..ed57d4a62 100755
--- a/smoketest/scripts/cli/test_nat.py
+++ b/smoketest/scripts/cli/test_nat.py
@@ -18,7 +18,10 @@ import os
import unittest
from base_vyostest_shim import VyOSUnitTestSHIM
+from time import sleep
+
from vyos.configsession import ConfigSessionError
+from vyos.utils.process import run
base_path = ['nat']
src_path = base_path + ['source']
@@ -331,4 +334,4 @@ class TestNAT(VyOSUnitTestSHIM.TestCase):
self.verify_nftables(nftables_search, 'ip vyos_nat')
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_nat64.py b/smoketest/scripts/cli/test_nat64.py
index 1c5f62874..379e6cecd 100755
--- a/smoketest/scripts/cli/test_nat64.py
+++ b/smoketest/scripts/cli/test_nat64.py
@@ -95,4 +95,4 @@ class TestNAT64(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_nat66.py b/smoketest/scripts/cli/test_nat66.py
index bec023ca9..7e8e725a5 100755
--- a/smoketest/scripts/cli/test_nat66.py
+++ b/smoketest/scripts/cli/test_nat66.py
@@ -267,4 +267,4 @@ class TestNAT66(VyOSUnitTestSHIM.TestCase):
self.cli_commit()
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_netns.py b/smoketest/scripts/cli/test_netns.py
index 9ed85ef7a..5b0fcc809 100755
--- a/smoketest/scripts/cli/test_netns.py
+++ b/smoketest/scripts/cli/test_netns.py
@@ -76,4 +76,4 @@ class NetNSTest(VyOSUnitTestSHIM.TestCase):
self.assertFalse(is_netns_interface(interface, netns))
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_op-mode_show.py b/smoketest/scripts/cli/test_op-mode_show.py
index 10dbe0330..893441be4 100755
--- a/smoketest/scripts/cli/test_op-mode_show.py
+++ b/smoketest/scripts/cli/test_op-mode_show.py
@@ -43,4 +43,4 @@ class TestOPModeShow(VyOSUnitTestSHIM.TestCase):
self.assertIn('VRF is not configured', tmp)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_pki.py b/smoketest/scripts/cli/test_pki.py
index a43d92b08..6ffbd6071 100755
--- a/smoketest/scripts/cli/test_pki.py
+++ b/smoketest/scripts/cli/test_pki.py
@@ -251,4 +251,4 @@ class TestPKI(VyOSUnitTestSHIM.TestCase):
self.cli_delete(['interfaces', 'ethernet', interface, 'eapol'])
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_policy.py b/smoketest/scripts/cli/test_policy.py
index 58d00c3eb..69e768a4b 100755
--- a/smoketest/scripts/cli/test_policy.py
+++ b/smoketest/scripts/cli/test_policy.py
@@ -2051,4 +2051,4 @@ def sort_ip(output):
return o
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_policy_local-route.py b/smoketest/scripts/cli/test_policy_local-route.py
index 5b3f84cc1..afb3ee43b 100644
--- a/smoketest/scripts/cli/test_policy_local-route.py
+++ b/smoketest/scripts/cli/test_policy_local-route.py
@@ -171,4 +171,4 @@ class TestPolicyLocalRoute(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_policy_route.py b/smoketest/scripts/cli/test_policy_route.py
index 5a0eb7f7c..6eb403979 100755
--- a/smoketest/scripts/cli/test_policy_route.py
+++ b/smoketest/scripts/cli/test_policy_route.py
@@ -342,4 +342,4 @@ class TestPolicyRoute(VyOSUnitTestSHIM.TestCase):
self.verify_nftables(nftables_search, 'ip6 vyos_mangle', args='-t')
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_babel.py b/smoketest/scripts/cli/test_protocols_babel.py
index 0032a5688..51fce28e4 100755
--- a/smoketest/scripts/cli/test_protocols_babel.py
+++ b/smoketest/scripts/cli/test_protocols_babel.py
@@ -219,4 +219,4 @@ class TestProtocolsBABEL(VyOSUnitTestSHIM.TestCase):
self.assertIn(f' babel {type}', iface_config)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_bfd.py b/smoketest/scripts/cli/test_protocols_bfd.py
index 59b0abfac..6923593f3 100755
--- a/smoketest/scripts/cli/test_protocols_bfd.py
+++ b/smoketest/scripts/cli/test_protocols_bfd.py
@@ -240,4 +240,4 @@ class TestProtocolsBFD(VyOSUnitTestSHIM.TestCase):
self.assertIn(f' profile {peer_config["profile"]}', peerconfig)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_bgp.py b/smoketest/scripts/cli/test_protocols_bgp.py
index 4f18a5cbd..d2059f388 100755
--- a/smoketest/scripts/cli/test_protocols_bgp.py
+++ b/smoketest/scripts/cli/test_protocols_bgp.py
@@ -714,10 +714,10 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):
for table, table_config in proto_config.items():
self.cli_set(proto_path + [table])
if 'metric' in table_config:
- self.cli_set(proto_path + [table, 'metric'], value=table_config['metric'])
+ self.cli_set(proto_path + [table, 'metric'], value=table_config.get('metric'))
if 'route_map' in table_config:
- self.cli_set(['policy', 'route-map', table_config['route_map'], 'rule', '10', 'action'], value='permit')
- self.cli_set(proto_path + [table, 'route-map'], value=table_config['route_map'])
+ self.cli_set(['policy', 'route-map', table_config.get('route_map'), 'rule', '10', 'action'], value='permit')
+ self.cli_set(proto_path + [table, 'route-map'], value=table_config.get('route_map'))
else:
self.cli_set(proto_path)
if 'metric' in proto_config:
@@ -846,10 +846,10 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):
for table, table_config in proto_config.items():
self.cli_set(proto_path + [table])
if 'metric' in table_config:
- self.cli_set(proto_path + [table, 'metric'], value=table_config['metric'])
+ self.cli_set(proto_path + [table, 'metric'], value=table_config.get('metric'))
if 'route_map' in table_config:
- self.cli_set(['policy', 'route-map', table_config['route_map'], 'rule', '10', 'action'], value='permit')
- self.cli_set(proto_path + [table, 'route-map'], value=table_config['route_map'])
+ self.cli_set(['policy', 'route-map', table_config.get('route_map'), 'rule', '10', 'action'], value='permit')
+ self.cli_set(proto_path + [table, 'route-map'], value=table_config.get('route_map'))
else:
self.cli_set(proto_path)
if 'metric' in proto_config:
@@ -1659,4 +1659,4 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):
self.assertIn(f'bmp connect {target_address} port {target_port} min-retry {min_retry} max-retry {max_retry}', frrconfig)
if __name__ == '__main__':
- unittest.main(verbosity=2, failfast=True)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_igmp-proxy.py b/smoketest/scripts/cli/test_protocols_igmp-proxy.py
index c705132bb..31c813fe8 100755
--- a/smoketest/scripts/cli/test_protocols_igmp-proxy.py
+++ b/smoketest/scripts/cli/test_protocols_igmp-proxy.py
@@ -93,4 +93,4 @@ class TestProtocolsIGMPProxy(VyOSUnitTestSHIM.TestCase):
self.assertIn(f'phyint {downstream_if} downstream ratelimit 0 threshold 1', config)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_isis.py b/smoketest/scripts/cli/test_protocols_isis.py
index b901449d0..b755b8b0f 100755
--- a/smoketest/scripts/cli/test_protocols_isis.py
+++ b/smoketest/scripts/cli/test_protocols_isis.py
@@ -478,4 +478,4 @@ class TestProtocolsISIS(VyOSUnitTestSHIM.TestCase):
self.assertIn(f' isis fast-reroute ti-lfa level-1 node-protection link-fallback', tmp)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_mpls.py b/smoketest/scripts/cli/test_protocols_mpls.py
index a83a41df7..1818b6fa6 100755
--- a/smoketest/scripts/cli/test_protocols_mpls.py
+++ b/smoketest/scripts/cli/test_protocols_mpls.py
@@ -191,4 +191,4 @@ class TestProtocolsMPLS(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_nhrp.py b/smoketest/scripts/cli/test_protocols_nhrp.py
index 5f99cd92f..29c14f74b 100755
--- a/smoketest/scripts/cli/test_protocols_nhrp.py
+++ b/smoketest/scripts/cli/test_protocols_nhrp.py
@@ -139,4 +139,4 @@ class TestProtocolsNHRP(VyOSUnitTestSHIM.TestCase):
self.assertTrue(process_named_running(PROCESS_NAME))
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_openfabric.py b/smoketest/scripts/cli/test_protocols_openfabric.py
index e44711993..8cb131e1b 100644
--- a/smoketest/scripts/cli/test_protocols_openfabric.py
+++ b/smoketest/scripts/cli/test_protocols_openfabric.py
@@ -186,4 +186,4 @@ class TestProtocolsOpenFabric(VyOSUnitTestSHIM.TestCase):
self.assertIn(f' ip router openfabric {domain_2}', tmp)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_ospf.py b/smoketest/scripts/cli/test_protocols_ospf.py
index 292625afc..c5ada032f 100755
--- a/smoketest/scripts/cli/test_protocols_ospf.py
+++ b/smoketest/scripts/cli/test_protocols_ospf.py
@@ -614,4 +614,4 @@ class TestProtocolsOSPF(VyOSUnitTestSHIM.TestCase):
self.assertIn(f' network {network} area {area}', frrconfig)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_ospfv3.py b/smoketest/scripts/cli/test_protocols_ospfv3.py
index 484bd2acc..1041ad52c 100755
--- a/smoketest/scripts/cli/test_protocols_ospfv3.py
+++ b/smoketest/scripts/cli/test_protocols_ospfv3.py
@@ -342,4 +342,4 @@ class TestProtocolsOSPFv3(VyOSUnitTestSHIM.TestCase):
self.assertIn(f' graceful-restart helper enable {router_id}', frrconfig)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_pim.py b/smoketest/scripts/cli/test_protocols_pim.py
index f1c6053e7..7702c5de4 100755
--- a/smoketest/scripts/cli/test_protocols_pim.py
+++ b/smoketest/scripts/cli/test_protocols_pim.py
@@ -200,4 +200,4 @@ class TestProtocolsPIM(VyOSUnitTestSHIM.TestCase):
self.assertIn(f' ip igmp join-group {join}', frrconfig)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_pim6.py b/smoketest/scripts/cli/test_protocols_pim6.py
index d10a3efc2..2e1ac6d6e 100755
--- a/smoketest/scripts/cli/test_protocols_pim6.py
+++ b/smoketest/scripts/cli/test_protocols_pim6.py
@@ -147,4 +147,4 @@ class TestProtocolsPIMv6(VyOSUnitTestSHIM.TestCase):
self.assertIn(f' ipv6 pim passive', config)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_rip.py b/smoketest/scripts/cli/test_protocols_rip.py
index 67da2382c..f405702e5 100755
--- a/smoketest/scripts/cli/test_protocols_rip.py
+++ b/smoketest/scripts/cli/test_protocols_rip.py
@@ -186,4 +186,4 @@ class TestProtocolsRIP(VyOSUnitTestSHIM.TestCase):
self.assertIn(f' ip rip send version {tx_version}', frrconfig)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_ripng.py b/smoketest/scripts/cli/test_protocols_ripng.py
index 830c8bb3a..305f31db5 100755
--- a/smoketest/scripts/cli/test_protocols_ripng.py
+++ b/smoketest/scripts/cli/test_protocols_ripng.py
@@ -163,4 +163,4 @@ class TestProtocolsRIPng(VyOSUnitTestSHIM.TestCase):
self.assertNotIn(zebra_route_map, frrconfig)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_rpki.py b/smoketest/scripts/cli/test_protocols_rpki.py
index 50a157fd0..5a049dde1 100755
--- a/smoketest/scripts/cli/test_protocols_rpki.py
+++ b/smoketest/scripts/cli/test_protocols_rpki.py
@@ -324,4 +324,4 @@ class TestProtocolsRPKI(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_segment-routing.py b/smoketest/scripts/cli/test_protocols_segment-routing.py
index 94e769bb1..258e23e75 100755
--- a/smoketest/scripts/cli/test_protocols_segment-routing.py
+++ b/smoketest/scripts/cli/test_protocols_segment-routing.py
@@ -187,4 +187,4 @@ class TestProtocolsSegmentRouting(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_static.py b/smoketest/scripts/cli/test_protocols_static.py
index 7b482b78c..8f01cd101 100755
--- a/smoketest/scripts/cli/test_protocols_static.py
+++ b/smoketest/scripts/cli/test_protocols_static.py
@@ -652,4 +652,4 @@ class TestProtocolsStatic(VyOSUnitTestSHIM.TestCase):
sleep(0.250)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_protocols_static_arp.py b/smoketest/scripts/cli/test_protocols_static_arp.py
index c0d62ecb5..37cd9f27b 100755
--- a/smoketest/scripts/cli/test_protocols_static_arp.py
+++ b/smoketest/scripts/cli/test_protocols_static_arp.py
@@ -85,4 +85,4 @@ class TestARP(VyOSUnitTestSHIM.TestCase):
self.assertTrue(found)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_qos.py b/smoketest/scripts/cli/test_qos.py
index 03160ec7e..0b4afcf9d 100755
--- a/smoketest/scripts/cli/test_qos.py
+++ b/smoketest/scripts/cli/test_qos.py
@@ -1324,4 +1324,4 @@ class TestQoS(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_broadcast-relay.py b/smoketest/scripts/cli/test_service_broadcast-relay.py
index 7f877869a..f7604048c 100755
--- a/smoketest/scripts/cli/test_service_broadcast-relay.py
+++ b/smoketest/scripts/cli/test_service_broadcast-relay.py
@@ -65,4 +65,4 @@ class TestServiceBroadcastRelay(VyOSUnitTestSHIM.TestCase):
self.assertTrue(running)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_dhcp-relay.py b/smoketest/scripts/cli/test_service_dhcp-relay.py
index 6d4e79817..4e9b7b0ea 100755
--- a/smoketest/scripts/cli/test_service_dhcp-relay.py
+++ b/smoketest/scripts/cli/test_service_dhcp-relay.py
@@ -120,5 +120,5 @@ class TestServiceDHCPRelay(VyOSUnitTestSHIM.TestCase):
self.assertTrue(process_named_running(PROCESS_NAME))
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_dhcp-server.py b/smoketest/scripts/cli/test_service_dhcp-server.py
index f32a8796b..b0b0104b7 100755
--- a/smoketest/scripts/cli/test_service_dhcp-server.py
+++ b/smoketest/scripts/cli/test_service_dhcp-server.py
@@ -1434,4 +1434,4 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_dhcpv6-relay.py b/smoketest/scripts/cli/test_service_dhcpv6-relay.py
index da826615d..71b318ae8 100755
--- a/smoketest/scripts/cli/test_service_dhcpv6-relay.py
+++ b/smoketest/scripts/cli/test_service_dhcpv6-relay.py
@@ -107,4 +107,4 @@ class TestServiceDHCPv6Relay(VyOSUnitTestSHIM.TestCase):
self.assertTrue(process_named_running(PROCESS_NAME))
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_dhcpv6-server.py b/smoketest/scripts/cli/test_service_dhcpv6-server.py
index 39142c720..5e0dd7cc2 100755
--- a/smoketest/scripts/cli/test_service_dhcpv6-server.py
+++ b/smoketest/scripts/cli/test_service_dhcpv6-server.py
@@ -290,4 +290,4 @@ class TestServiceDHCPv6Server(VyOSUnitTestSHIM.TestCase):
self.assertTrue(process_named_running(PROCESS_NAME))
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_dns_dynamic.py b/smoketest/scripts/cli/test_service_dns_dynamic.py
index 61141762d..ac5911cb9 100755
--- a/smoketest/scripts/cli/test_service_dns_dynamic.py
+++ b/smoketest/scripts/cli/test_service_dns_dynamic.py
@@ -360,4 +360,4 @@ class TestServiceDDNS(VyOSUnitTestSHIM.TestCase):
self.cli_delete(['vrf', 'name', vrf_name])
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_dns_forwarding.py b/smoketest/scripts/cli/test_service_dns_forwarding.py
index 995f5cb25..5786b13eb 100755
--- a/smoketest/scripts/cli/test_service_dns_forwarding.py
+++ b/smoketest/scripts/cli/test_service_dns_forwarding.py
@@ -341,4 +341,4 @@ class TestServicePowerDNS(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_ipoe-server.py b/smoketest/scripts/cli/test_service_ipoe-server.py
index 3943d686a..47d6cce4b 100755
--- a/smoketest/scripts/cli/test_service_ipoe-server.py
+++ b/smoketest/scripts/cli/test_service_ipoe-server.py
@@ -17,8 +17,10 @@
import re
import unittest
-from collections import OrderedDict
from base_accel_ppp_test import BasicAccelPPPTest
+from base_vyostest_shim import VyOSUnitTestSHIM
+from collections import OrderedDict
+
from vyos.configsession import ConfigSessionError
from vyos.utils.process import cmd
from vyos.template import range_to_regex
@@ -326,4 +328,4 @@ delegate={delegate_2_prefix},{delegate_mask},name={pool_name}"""
pass
if __name__ == "__main__":
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_lldp.py b/smoketest/scripts/cli/test_service_lldp.py
index 6566bdb39..037ecc15b 100755
--- a/smoketest/scripts/cli/test_service_lldp.py
+++ b/smoketest/scripts/cli/test_service_lldp.py
@@ -182,4 +182,4 @@ class TestServiceLLDP(VyOSUnitTestSHIM.TestCase):
self.assertIn(f'configure ports {interface} lldp status rx-and-tx', config)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_mdns_repeater.py b/smoketest/scripts/cli/test_service_mdns_repeater.py
index 47b8e4dc5..2bf6ceffb 100755
--- a/smoketest/scripts/cli/test_service_mdns_repeater.py
+++ b/smoketest/scripts/cli/test_service_mdns_repeater.py
@@ -173,4 +173,4 @@ class TestServiceMDNSrepeater(VyOSUnitTestSHIM.TestCase):
self.assertEqual(conf['server']['cache-entries-max'], cache_entries)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_monitoring_network_event.py b/smoketest/scripts/cli/test_service_monitoring_network_event.py
index 0bd4b93a6..cdbdf0bc0 100644
--- a/smoketest/scripts/cli/test_service_monitoring_network_event.py
+++ b/smoketest/scripts/cli/test_service_monitoring_network_event.py
@@ -62,4 +62,4 @@ class TestMonitoringNetworkEvent(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_monitoring_prometheus.py b/smoketest/scripts/cli/test_service_monitoring_prometheus.py
index 328c8d6b2..ddf5ee525 100755
--- a/smoketest/scripts/cli/test_service_monitoring_prometheus.py
+++ b/smoketest/scripts/cli/test_service_monitoring_prometheus.py
@@ -158,4 +158,4 @@ class TestMonitoringPrometheus(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_monitoring_telegraf.py b/smoketest/scripts/cli/test_service_monitoring_telegraf.py
index 05a2103b2..c13a8b844 100755
--- a/smoketest/scripts/cli/test_service_monitoring_telegraf.py
+++ b/smoketest/scripts/cli/test_service_monitoring_telegraf.py
@@ -93,4 +93,4 @@ class TestMonitoringTelegraf(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_monitoring_zabbix-agent.py b/smoketest/scripts/cli/test_service_monitoring_zabbix-agent.py
index 1b2d37f1f..10581eb57 100755
--- a/smoketest/scripts/cli/test_service_monitoring_zabbix-agent.py
+++ b/smoketest/scripts/cli/test_service_monitoring_zabbix-agent.py
@@ -105,4 +105,4 @@ class TestZabbixAgent(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_ndp-proxy.py b/smoketest/scripts/cli/test_service_ndp-proxy.py
index 1e66fc331..537ecc574 100755
--- a/smoketest/scripts/cli/test_service_ndp-proxy.py
+++ b/smoketest/scripts/cli/test_service_ndp-proxy.py
@@ -66,4 +66,4 @@ class TestServiceNDPProxy(VyOSUnitTestSHIM.TestCase):
self.assertIn(f'ttl 30000', config) # default value
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_ntp.py b/smoketest/scripts/cli/test_service_ntp.py
index a84b9cec8..60542ca40 100755
--- a/smoketest/scripts/cli/test_service_ntp.py
+++ b/smoketest/scripts/cli/test_service_ntp.py
@@ -261,4 +261,4 @@ class TestSystemNTP(VyOSUnitTestSHIM.TestCase):
self.assertIn(f'ptpport {default_ptp_port}', config)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_pppoe-server.py b/smoketest/scripts/cli/test_service_pppoe-server.py
index 8a6886cb9..01a9565c8 100755
--- a/smoketest/scripts/cli/test_service_pppoe-server.py
+++ b/smoketest/scripts/cli/test_service_pppoe-server.py
@@ -17,6 +17,7 @@
import unittest
from base_accel_ppp_test import BasicAccelPPPTest
+from base_vyostest_shim import VyOSUnitTestSHIM
from configparser import ConfigParser
from vyos.utils.file import read_file
@@ -226,4 +227,4 @@ class TestServicePPPoEServer(BasicAccelPPPTest.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_router-advert.py b/smoketest/scripts/cli/test_service_router-advert.py
index 56e05c317..5900e29a5 100755
--- a/smoketest/scripts/cli/test_service_router-advert.py
+++ b/smoketest/scripts/cli/test_service_router-advert.py
@@ -366,4 +366,4 @@ class TestServiceRADVD(VyOSUnitTestSHIM.TestCase):
self.assertNotIn(tmp, config)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_salt-minion.py b/smoketest/scripts/cli/test_service_salt-minion.py
index 1ad1333f0..491df903b 100755
--- a/smoketest/scripts/cli/test_service_salt-minion.py
+++ b/smoketest/scripts/cli/test_service_salt-minion.py
@@ -102,4 +102,4 @@ class TestServiceSALT(VyOSUnitTestSHIM.TestCase):
self.assertIn(f'source_interface_name: {interface}', conf)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_snmp.py b/smoketest/scripts/cli/test_service_snmp.py
index d2221908c..07ee716b7 100755
--- a/smoketest/scripts/cli/test_service_snmp.py
+++ b/smoketest/scripts/cli/test_service_snmp.py
@@ -261,4 +261,4 @@ class TestSNMPService(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_ssh.py b/smoketest/scripts/cli/test_service_ssh.py
index 32bc3cc89..0e8f5868d 100755
--- a/smoketest/scripts/cli/test_service_ssh.py
+++ b/smoketest/scripts/cli/test_service_ssh.py
@@ -494,4 +494,4 @@ class TestServiceSSH(VyOSUnitTestSHIM.TestCase):
self.assertFalse(os.path.exists(f'/home/{test_user}/.ssh/authorized_principals'))
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_stunnel.py b/smoketest/scripts/cli/test_service_stunnel.py
index 4bae79865..3296830a5 100755
--- a/smoketest/scripts/cli/test_service_stunnel.py
+++ b/smoketest/scripts/cli/test_service_stunnel.py
@@ -621,4 +621,4 @@ class TestServiceStunnel(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_tftp-server.py b/smoketest/scripts/cli/test_service_tftp-server.py
index e3f1e25e4..43182aa43 100755
--- a/smoketest/scripts/cli/test_service_tftp-server.py
+++ b/smoketest/scripts/cli/test_service_tftp-server.py
@@ -148,4 +148,4 @@ class TestServiceTFTPD(VyOSUnitTestSHIM.TestCase):
self.cli_delete(['vrf', 'name', vrf])
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_service_webproxy.py b/smoketest/scripts/cli/test_service_webproxy.py
index 431f1c885..63a8caa63 100755
--- a/smoketest/scripts/cli/test_service_webproxy.py
+++ b/smoketest/scripts/cli/test_service_webproxy.py
@@ -315,4 +315,4 @@ class TestServiceWebProxy(VyOSUnitTestSHIM.TestCase):
self.assertTrue(process_named_running(PROCESS_NAME))
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_system_acceleration_qat.py b/smoketest/scripts/cli/test_system_acceleration_qat.py
index 9b8ecef7f..c75ee74c7 100755
--- a/smoketest/scripts/cli/test_system_acceleration_qat.py
+++ b/smoketest/scripts/cli/test_system_acceleration_qat.py
@@ -40,4 +40,4 @@ class TestIntelQAT(VyOSUnitTestSHIM.TestCase):
self.cli_commit()
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_system_conntrack.py b/smoketest/scripts/cli/test_system_conntrack.py
index a1e9cabdf..53ba4983a 100755
--- a/smoketest/scripts/cli/test_system_conntrack.py
+++ b/smoketest/scripts/cli/test_system_conntrack.py
@@ -536,4 +536,4 @@ class TestSystemConntrack(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_system_flow-accounting.py b/smoketest/scripts/cli/test_system_flow-accounting.py
index 80bcd6b89..b553ccfea 100755
--- a/smoketest/scripts/cli/test_system_flow-accounting.py
+++ b/smoketest/scripts/cli/test_system_flow-accounting.py
@@ -279,4 +279,4 @@ class TestSystemFlowAccounting(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_system_frr.py b/smoketest/scripts/cli/test_system_frr.py
index 98baca1d3..413cb8bba 100755
--- a/smoketest/scripts/cli/test_system_frr.py
+++ b/smoketest/scripts/cli/test_system_frr.py
@@ -159,4 +159,4 @@ class TestSystemFRR(VyOSUnitTestSHIM.TestCase):
self.assertIn(f'MAX_FDS={file_descriptors}', daemons_config)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_system_ip.py b/smoketest/scripts/cli/test_system_ip.py
index 764cd9192..57037fd8b 100755
--- a/smoketest/scripts/cli/test_system_ip.py
+++ b/smoketest/scripts/cli/test_system_ip.py
@@ -150,4 +150,4 @@ class TestSystemIP(VyOSUnitTestSHIM.TestCase):
self.assertNotIn(f'ip import-table {table_num} distance {distance}', frrconfig)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_system_ipv6.py b/smoketest/scripts/cli/test_system_ipv6.py
index 2b4a86a4d..c6d278082 100755
--- a/smoketest/scripts/cli/test_system_ipv6.py
+++ b/smoketest/scripts/cli/test_system_ipv6.py
@@ -150,4 +150,4 @@ class TestSystemIPv6(VyOSUnitTestSHIM.TestCase):
self.assertNotIn(f'no ipv6 nht resolve-via-default', frrconfig)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_system_lcd.py b/smoketest/scripts/cli/test_system_lcd.py
index fc440ca8a..52530f573 100755
--- a/smoketest/scripts/cli/test_system_lcd.py
+++ b/smoketest/scripts/cli/test_system_lcd.py
@@ -48,4 +48,4 @@ class TestSystemLCD(VyOSUnitTestSHIM.TestCase):
self.assertTrue(process_named_running('LCDd'))
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_system_login.py b/smoketest/scripts/cli/test_system_login.py
index 9a07505d0..a400eebff 100755
--- a/smoketest/scripts/cli/test_system_login.py
+++ b/smoketest/scripts/cli/test_system_login.py
@@ -578,4 +578,4 @@ class TestSystemLogin(VyOSUnitTestSHIM.TestCase):
self.op_mode(['reboot', 'cancel'])
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_system_logs.py b/smoketest/scripts/cli/test_system_logs.py
index d951ce43d..6c77182e4 100755
--- a/smoketest/scripts/cli/test_system_logs.py
+++ b/smoketest/scripts/cli/test_system_logs.py
@@ -114,4 +114,4 @@ class TestSystemLogs(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_system_option.py b/smoketest/scripts/cli/test_system_option.py
index 69f053a7f..4fb318fd8 100755
--- a/smoketest/scripts/cli/test_system_option.py
+++ b/smoketest/scripts/cli/test_system_option.py
@@ -156,4 +156,4 @@ class TestSystemOption(VyOSUnitTestSHIM.TestCase):
self.assertIn(f' initcall_blacklist=acpi_cpufreq_init amd_pstate={amd_pstate_mode}', tmp)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_system_resolvconf.py b/smoketest/scripts/cli/test_system_resolvconf.py
index d91e29230..45c2331e5 100755
--- a/smoketest/scripts/cli/test_system_resolvconf.py
+++ b/smoketest/scripts/cli/test_system_resolvconf.py
@@ -109,4 +109,4 @@ class TestSystemResolvConf(VyOSUnitTestSHIM.TestCase):
self.assertTrue(s not in domain_search)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_system_sflow.py b/smoketest/scripts/cli/test_system_sflow.py
index 69b35d1f0..6a933ab88 100755
--- a/smoketest/scripts/cli/test_system_sflow.py
+++ b/smoketest/scripts/cli/test_system_sflow.py
@@ -152,4 +152,4 @@ class TestSystemFlowAccounting(VyOSUnitTestSHIM.TestCase):
self.assertIn(PROCESS_NAME, tmp)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_system_syslog.py b/smoketest/scripts/cli/test_system_syslog.py
index c4e043a7c..a22647ebf 100755
--- a/smoketest/scripts/cli/test_system_syslog.py
+++ b/smoketest/scripts/cli/test_system_syslog.py
@@ -305,4 +305,4 @@ class TestRSYSLOGService(VyOSUnitTestSHIM.TestCase):
self.cli_delete(['interfaces', 'dummy', f'dum{idx}'])
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_vpn_ipsec.py b/smoketest/scripts/cli/test_vpn_ipsec.py
index 8206218b1..9e01be02f 100755
--- a/smoketest/scripts/cli/test_vpn_ipsec.py
+++ b/smoketest/scripts/cli/test_vpn_ipsec.py
@@ -1658,4 +1658,4 @@ class TestVPNIPsec(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_vpn_l2tp.py b/smoketest/scripts/cli/test_vpn_l2tp.py
index 98f04c088..6e7959056 100755
--- a/smoketest/scripts/cli/test_vpn_l2tp.py
+++ b/smoketest/scripts/cli/test_vpn_l2tp.py
@@ -17,14 +17,14 @@
import unittest
from base_accel_ppp_test import BasicAccelPPPTest
+from base_vyostest_shim import VyOSUnitTestSHIM
+
from configparser import ConfigParser
from vyos.utils.process import cmd
from vyos.utils.file import read_file
-
swanctl_file = '/etc/swanctl/swanctl.conf'
-
class TestVPNL2TPServer(BasicAccelPPPTest.TestCase):
@classmethod
def setUpClass(cls):
@@ -142,4 +142,4 @@ class TestVPNL2TPServer(BasicAccelPPPTest.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_vpn_openconnect.py b/smoketest/scripts/cli/test_vpn_openconnect.py
index 77f37b74d..34e6036c2 100755
--- a/smoketest/scripts/cli/test_vpn_openconnect.py
+++ b/smoketest/scripts/cli/test_vpn_openconnect.py
@@ -265,4 +265,4 @@ class TestVPNOpenConnect(VyOSUnitTestSHIM.TestCase):
self.assertIn('tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT:-RSA:-VERS-SSL3.0:-ARCFOUR-128:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-TLS1.2"', daemon_config)
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_vpn_pptp.py b/smoketest/scripts/cli/test_vpn_pptp.py
index f2e9d9868..6985454cf 100755
--- a/smoketest/scripts/cli/test_vpn_pptp.py
+++ b/smoketest/scripts/cli/test_vpn_pptp.py
@@ -17,6 +17,7 @@
import unittest
from base_accel_ppp_test import BasicAccelPPPTest
+from base_vyostest_shim import VyOSUnitTestSHIM
class TestVPNPPTPServer(BasicAccelPPPTest.TestCase):
@classmethod
@@ -36,4 +37,4 @@ class TestVPNPPTPServer(BasicAccelPPPTest.TestCase):
pass
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_vpn_sstp.py b/smoketest/scripts/cli/test_vpn_sstp.py
index d1e197246..07b6a82a4 100755
--- a/smoketest/scripts/cli/test_vpn_sstp.py
+++ b/smoketest/scripts/cli/test_vpn_sstp.py
@@ -17,6 +17,8 @@
import unittest
from base_accel_ppp_test import BasicAccelPPPTest
+from base_vyostest_shim import VyOSUnitTestSHIM
+
from vyos.utils.file import read_file
pki_path = ['pki']
@@ -87,4 +89,4 @@ class TestVPNSSTPServer(BasicAccelPPPTest.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_vpp.py b/smoketest/scripts/cli/test_vpp.py
index eb14fb2df..37485bd0d 100755
--- a/smoketest/scripts/cli/test_vpp.py
+++ b/smoketest/scripts/cli/test_vpp.py
@@ -1480,4 +1480,4 @@ class TestVPP(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())
diff --git a/smoketest/scripts/cli/test_vrf.py b/smoketest/scripts/cli/test_vrf.py
index 59b0b7254..82d5f3ddd 100755
--- a/smoketest/scripts/cli/test_vrf.py
+++ b/smoketest/scripts/cli/test_vrf.py
@@ -995,4 +995,4 @@ class VRFTest(VyOSUnitTestSHIM.TestCase):
if __name__ == '__main__':
- unittest.main(verbosity=2)
+ unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())