diff --git a/generic/tests/pktgen_perf.py b/generic/tests/pktgen_perf.py index 99737efeb87f6a30824e6f0aa2b64810a26262ca..fbfcec2390d96ad822cf140c30f7dc6a5cf4763b 100644 --- a/generic/tests/pktgen_perf.py +++ b/generic/tests/pktgen_perf.py @@ -12,6 +12,7 @@ from virttest import utils_test from virttest import utils_misc from virttest import error_context +from functools import partial as Partial _system_output = functools.partial(process.system_output, shell=True) @@ -93,6 +94,29 @@ def run(test, params, env): for record in record_list.split(): record_line += "%s|" % format_result(record) + def install_package(ver, session=None): + """ check module pktgen, install kernel-modules-internal package """ + + output_cmd = Partial(process.system_output, timeout=timeout, shell=True) + kernel_ver = "kernel-modules-internal-%s" % ver + cmd_download = "cd /tmp && brew download-build %s --rpm" % kernel_ver + cmd_install = "cd /tmp && rpm -ivh %s.rpm --force --nodeps" % kernel_ver + output_cmd(cmd_download).decode() + cmd_clean = "rm -rf /tmp/%s.rpm" % kernel_ver + if session: + output_cmd = session.cmd_output + local_path = "/tmp/%s.rpm" % kernel_ver + remote_path = "/tmp/" + vm.copy_files_to(local_path, remote_path) + output_cmd(cmd_install) + output_cmd(cmd_clean) + + check_cmd = "uname -r |grep el8" + if process.run(check_cmd, shell=True): + install_package(host_ver) + if session.cmd(check_cmd): + install_package(guest_ver.strip(), session=session) + # get result tested by each scenario for pkt_cate in category.split(): result_file.write("Category:%s\n" % pkt_cate)