diff options
| author | Simon <965089+sarthurdev@users.noreply.github.com> | 2026-09-20 19:55:49 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-20 19:55:49 +0200 |
| commit | e559637d34e0169905ecb1c6875e8a67b38d4678 (patch) | |
| tree | 78c1d4b06e87e04d1855188823a579a3b424855b /smoketest/scripts/cli | |
| parent | 27383e4f15180184a45dfcafe36b7a4ca326370f (diff) | |
| parent | 13189cd9e82f4c4cf8ce90bfdef327a59e2e5716 (diff) | |
| download | vyos-1x-e559637d34e0169905ecb1c6875e8a67b38d4678.tar.gz vyos-1x-e559637d34e0169905ecb1c6875e8a67b38d4678.zip | |
Merge pull request #5490 from c-po/smoketest-vrf-process-fix
smoketest: T9316: match VRF process names by prefix, not equality
Diffstat (limited to 'smoketest/scripts/cli')
| -rw-r--r-- | smoketest/scripts/cli/base_vyostest_shim.py | 12 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_service_dns_dynamic.py | 4 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_service_https.py | 4 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_service_ntp.py | 4 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_service_ssh.py | 7 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_service_tftp-server.py | 4 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_system_sflow.py | 4 |
7 files changed, 19 insertions, 20 deletions
diff --git a/smoketest/scripts/cli/base_vyostest_shim.py b/smoketest/scripts/cli/base_vyostest_shim.py index 0fc146b0a..dfc1e6a14 100644 --- a/smoketest/scripts/cli/base_vyostest_shim.py +++ b/smoketest/scripts/cli/base_vyostest_shim.py @@ -27,6 +27,7 @@ from vyos.configsession import ConfigSession from vyos.configsession import ConfigSessionError from vyos.frrender import mgmt_daemon from vyos.utils.commit import commit_in_progress2 +from vyos.utils.network import get_vrf_pids from vyos.utils.process import cmdl from vyos.utils.process import process_named_running @@ -442,6 +443,17 @@ class VyOSUnitTestSHIM: break self.assertTrue(not matched if inverse else matched, msg=search) + def verify_process_in_vrf(self, process_name, vrf): + """ Verify that a process of a given name runs inside a VRF + + "ip vrf pids" reports the kernel comm, which is capped at 15 + characters and follows a process rewriting its title - ddclient + shows up as "ddclient - slee" - so match by prefix, not equality. + """ + names = [name for _, name in get_vrf_pids(vrf)] + self.assertTrue(any(name.startswith(process_name) for name in names), + f'no {process_name} process running in VRF {vrf}: {names}') + @staticmethod def wait_for_result(runnable, check, pause=1, timeout=10): """ diff --git a/smoketest/scripts/cli/test_service_dns_dynamic.py b/smoketest/scripts/cli/test_service_dns_dynamic.py index 0afb22d52..dc19a84ed 100755 --- a/smoketest/scripts/cli/test_service_dns_dynamic.py +++ b/smoketest/scripts/cli/test_service_dns_dynamic.py @@ -23,7 +23,6 @@ from vyos.configsession import ConfigSessionError from vyos.utils.file import read_file from vyos.utils.process import cmdl from vyos.utils.process import process_named_running -from vyos.utils.network import get_vrf_pids from vyos.xml_ref import default_value DDCLIENT_SYSTEMD_UNIT = '/run/systemd/system/ddclient.service.d/override.conf' @@ -372,8 +371,7 @@ class TestServiceDDNS(VyOSUnitTestSHIM.TestCase): ) # Check for process in VRF - vrf_procs = [name for _, name in get_vrf_pids(vrf_name)] - self.assertIn(DDCLIENT_PNAME, vrf_procs) + self.verify_process_in_vrf(DDCLIENT_PNAME, vrf_name) # Cleanup VRF self.cli_delete(['vrf', 'name', vrf_name]) diff --git a/smoketest/scripts/cli/test_service_https.py b/smoketest/scripts/cli/test_service_https.py index 93a4dff3d..e7a2ba60a 100755 --- a/smoketest/scripts/cli/test_service_https.py +++ b/smoketest/scripts/cli/test_service_https.py @@ -29,7 +29,6 @@ from vyos.utils.file import read_file from vyos.utils.file import write_file from vyos.utils.process import call from vyos.utils.process import process_named_running -from vyos.utils.network import get_vrf_pids from vyos.pki import CERT_BEGIN from vyos.pki import encode_certificate from vyos.pki import load_certificate @@ -248,8 +247,7 @@ class TestHTTPSService(VyOSUnitTestSHIM.TestCase): self.cli_commit() # Verify nginx is running inside the VRF - vrf_procs = [name for _, name in get_vrf_pids(vrf)] - self.assertIn(PROCESS_NAME, vrf_procs) + self.verify_process_in_vrf(PROCESS_NAME, vrf) self.cli_delete(['interfaces', 'dummy', interface]) self.cli_delete(['vrf', 'name', vrf]) diff --git a/smoketest/scripts/cli/test_service_ntp.py b/smoketest/scripts/cli/test_service_ntp.py index b0109ab51..fc5359b1c 100755 --- a/smoketest/scripts/cli/test_service_ntp.py +++ b/smoketest/scripts/cli/test_service_ntp.py @@ -21,7 +21,6 @@ from base_vyostest_shim import VyOSUnitTestSHIM from vyos.configsession import ConfigSessionError from vyos.utils.file import read_file from vyos.utils.process import process_named_running -from vyos.utils.network import get_vrf_pids from vyos.xml_ref import default_value PROCESS_NAME = 'chronyd' @@ -278,8 +277,7 @@ class TestSystemNTP(VyOSUnitTestSHIM.TestCase): self.cli_commit() # Check for process in VRF - vrf_procs = [name for _, name in get_vrf_pids(vrf_name)] - self.assertIn(PROCESS_NAME, vrf_procs) + self.verify_process_in_vrf(PROCESS_NAME, vrf_name) self.cli_delete(['vrf', 'name', vrf_name]) diff --git a/smoketest/scripts/cli/test_service_ssh.py b/smoketest/scripts/cli/test_service_ssh.py index 120afb12a..dad7bbe2c 100755 --- a/smoketest/scripts/cli/test_service_ssh.py +++ b/smoketest/scripts/cli/test_service_ssh.py @@ -29,7 +29,6 @@ from vyos.utils.process import is_systemd_service_running from vyos.utils.process import process_named_running from vyos.utils.file import read_file from vyos.utils.file import write_file -from vyos.utils.network import get_vrf_pids from vyos.xml_ref import default_value PROCESS_NAME = 'sshd' @@ -254,8 +253,7 @@ class TestServiceSSH(VyOSUnitTestSHIM.TestCase): self.cli_commit() # Check for process in VRF - vrf_procs = [name for _, name in get_vrf_pids(vrf)] - self.assertIn(PROCESS_NAME, vrf_procs) + self.verify_process_in_vrf(PROCESS_NAME, vrf) def test_ssh_vrf_multi(self): # Check if SSH service can be bound to multiple VRFs @@ -277,8 +275,7 @@ class TestServiceSSH(VyOSUnitTestSHIM.TestCase): # Check for process in VRF for vrf in vrfs: - vrf_procs = [name for _, name in get_vrf_pids(vrf)] - self.assertIn(PROCESS_NAME, vrf_procs) + self.verify_process_in_vrf(PROCESS_NAME, vrf) def test_ssh_login(self): # Perform SSH login and command execution with a predefined user. The diff --git a/smoketest/scripts/cli/test_service_tftp-server.py b/smoketest/scripts/cli/test_service_tftp-server.py index 2c04f2122..aa44274fc 100755 --- a/smoketest/scripts/cli/test_service_tftp-server.py +++ b/smoketest/scripts/cli/test_service_tftp-server.py @@ -22,7 +22,6 @@ from base_vyostest_shim import VyOSUnitTestSHIM from vyos.configsession import ConfigSessionError from vyos.utils.file import read_file from vyos.utils.process import process_named_running -from vyos.utils.network import get_vrf_pids from vyos.template import is_ipv6 PROCESS_NAME = 'in.tftpd' @@ -140,8 +139,7 @@ class TestServiceTFTPD(VyOSUnitTestSHIM.TestCase): self.assertIn('--create --umask 000', config) # Check for process in VRF - vrf_procs = [name for _, name in get_vrf_pids(vrf)] - self.assertIn(PROCESS_NAME, vrf_procs) + self.verify_process_in_vrf(PROCESS_NAME, vrf) # delete VRF self.cli_delete(dummy_if_path + ['vrf']) diff --git a/smoketest/scripts/cli/test_system_sflow.py b/smoketest/scripts/cli/test_system_sflow.py index 4822fc8dc..30e1175f9 100755 --- a/smoketest/scripts/cli/test_system_sflow.py +++ b/smoketest/scripts/cli/test_system_sflow.py @@ -22,7 +22,6 @@ from vyos.configsession import ConfigSessionError from vyos.ifconfig import Section from vyos.utils.process import process_named_running from vyos.utils.file import read_file -from vyos.utils.network import get_vrf_pids PROCESS_NAME = 'hsflowd' base_path = ['system', 'sflow'] @@ -148,8 +147,7 @@ class TestSystemFlowAccounting(VyOSUnitTestSHIM.TestCase): self.assertIn(f'pcap {{ dev=eth0 }}', hsflowd) # Check for process in VRF - vrf_procs = [name for _, name in get_vrf_pids(vrf)] - self.assertIn(PROCESS_NAME, vrf_procs) + self.verify_process_in_vrf(PROCESS_NAME, vrf) def test_sflow_egress(self): interface = 'eth0' |
