diff options
Diffstat (limited to 'smoketest/scripts/cli')
| -rwxr-xr-x | smoketest/scripts/cli/test_system_option.py | 3 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_vpp.py | 49 |
2 files changed, 34 insertions, 18 deletions
diff --git a/smoketest/scripts/cli/test_system_option.py b/smoketest/scripts/cli/test_system_option.py index 5a8e5b78c..e025c01ab 100755 --- a/smoketest/scripts/cli/test_system_option.py +++ b/smoketest/scripts/cli/test_system_option.py @@ -104,12 +104,10 @@ class TestSystemOption(VyOSUnitTestSHIM.TestCase): def test_kernel_options(self): amd_pstate_mode = 'active' - isolate_cpus = '1,2,3' nohz_full = '2' rcu_no_cbs = '1,2,4-5' self.cli_set(['system', 'option', 'kernel', 'cpu', 'disable-nmi-watchdog']) - self.cli_set(['system', 'option', 'kernel', 'cpu', 'isolate-cpus', isolate_cpus]) self.cli_set(['system', 'option', 'kernel', 'cpu', 'nohz-full', nohz_full]) self.cli_set(['system', 'option', 'kernel', 'cpu', 'rcu-no-cbs', rcu_no_cbs]) self.cli_set(['system', 'option', 'kernel', 'disable-hpet']) @@ -138,7 +136,6 @@ class TestSystemOption(VyOSUnitTestSHIM.TestCase): self.assertIn(' hpet=disable', tmp) self.assertIn(' mce=off', tmp) self.assertIn(' nosoftlockup', tmp) - self.assertIn(f' isolcpus={isolate_cpus}', tmp) self.assertIn(f' nohz_full={nohz_full}', tmp) self.assertIn(f' rcu_nocbs={rcu_no_cbs}', tmp) self.assertIn(' numa_balancing=disable', tmp) diff --git a/smoketest/scripts/cli/test_vpp.py b/smoketest/scripts/cli/test_vpp.py index 59dbb2272..a506ad4f0 100755 --- a/smoketest/scripts/cli/test_vpp.py +++ b/smoketest/scripts/cli/test_vpp.py @@ -26,7 +26,8 @@ from json import loads from base_vyostest_shim import VyOSUnitTestSHIM from vyos.configsession import ConfigSessionError -from vyos.utils.cpu import get_available_cpus +from vyos.utils.convert import range_str_to_list +from vyos.utils.convert import list_to_range_str from vyos.utils.process import process_named_running from vyos.utils.file import read_file from vyos.utils.process import rc_cmd @@ -86,12 +87,9 @@ def get_address(interface): return ip_address -def get_vpp_cpu_allocation(): - reserved_cpus = default_resource_map.get('reserved_cpu_cores') - # Get sorted list of available CPU IDs - available = sorted({cpu['cpu'] for cpu in get_available_cpus()}) - main_core = available[reserved_cpus] # first non-reserved CPU - return reserved_cpus, main_core +def get_isolated_cpus(): + isolated = read_file('/sys/devices/system/cpu/isolated') + return range_str_to_list(isolated) class TestVPP(VyOSUnitTestSHIM.TestCase): @@ -133,7 +131,7 @@ class TestVPP(VyOSUnitTestSHIM.TestCase): def test_01_vpp_basic(self): poll_sleep = '0' mtu = '2500' - skip_cores, main_core = get_vpp_cpu_allocation() + isolated_cores = get_isolated_cpus() self.cli_set(base_path + ['settings', 'poll-sleep-usec', poll_sleep]) @@ -142,8 +140,7 @@ class TestVPP(VyOSUnitTestSHIM.TestCase): config_entries = ( f'poll-sleep-usec {poll_sleep}', - f'skip-cores {skip_cores}', - f'main-core {main_core}', + f'main-core {str(isolated_cores[0])}', # first isolated core is set as main-core 'plugin default { disable }', 'plugin dpdk_plugin.so { enable }', 'plugin linux_cp_plugin.so { enable }', @@ -726,7 +723,9 @@ class TestVPP(VyOSUnitTestSHIM.TestCase): def test_10_vpp_cpu_cores(self): cpu_cores = '2' - skip_cores, main_core = get_vpp_cpu_allocation() + isolated_cpus = get_isolated_cpus() + main_core = str(isolated_cpus[0]) # first isolated core is set as main-core + corelist_workers = list_to_range_str(isolated_cpus[1 : int(cpu_cores)]) # verify 'cpu-cores' are set not correctly # expect raise ConfigError @@ -738,9 +737,8 @@ class TestVPP(VyOSUnitTestSHIM.TestCase): self.cli_commit() config_entries = ( - f'skip-cores {skip_cores}', # reserved cpus skipped for system use - f'main-core {main_core}', # first available core is set as main-core - f'workers {int(cpu_cores) - 1}', + f'main-core {main_core}', + f'corelist-workers {corelist_workers}', 'dev 0000:00:00.0', ) @@ -1218,7 +1216,7 @@ class TestVPP(VyOSUnitTestSHIM.TestCase): self.cli_delete(['interfaces', 'ethernet', interface, 'vif-s', vif_s]) self.cli_commit() - def test_18_kernel_options_hugepages(self): + def test_18_1_kernel_options_hugepages(self): default_hp_size = '2M' hp_size_1g = '1G' hp_size_2m = '2M' @@ -1251,6 +1249,27 @@ class TestVPP(VyOSUnitTestSHIM.TestCase): self.assertIn(f' hugepagesz={hp_size_1g} hugepages={hp_count_1g}', tmp) self.assertIn(f' hugepagesz={hp_size_2m} hugepages={hp_count_2m}', tmp) + def test_18_2_kernel_options_cpu(self): + isolate_cpus = '1,2' + + self.cli_set( + ['system', 'option', 'kernel', 'cpu', 'isolate-cpus', isolate_cpus] + ) + self.cli_commit() + + # Read GRUB config file for current running image + tmp = read_file( + f'{image.grub.GRUB_DIR_VYOS_VERS}/{image.get_running_image()}.cfg' + ) + self.assertIn(f' isolcpus={isolate_cpus}', tmp) + + # verify 'isolate-cpus' are set not correctly + # expect raise ConfigError + self.cli_set(['system', 'option', 'kernel', 'cpu', 'isolate-cpus', '1-99']) + with self.assertRaises(ConfigSessionError): + self.cli_commit() + self.cli_discard() + def test_19_static_arp(self): host = '192.0.2.10' mac = '00:01:02:03:04:0a' |
