Skip to content

Commit

Permalink
vm_hugetlb_selftests: hugetlb kernel selftests execution in guest
Browse files Browse the repository at this point in the history
Creates a new test case that executes the hugetlb selftests from
the kernel source package that has been previosuly prepared
during the guest installation, to ensure the correct behavior
of this feature at the VM level.

Signed-off-by: mcasquer <[email protected]>
  • Loading branch information
mcasquer committed Sep 3, 2024
1 parent 050920b commit 083e5ca
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
7 changes: 7 additions & 0 deletions qemu/tests/cfg/vm_hugetlb_selftests.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
- vm_hugetlb_selftests:
only Linux
only x86_64
type = vm_hugetlb_selftests
virt_test_type = qemu
setup_hugepages = yes
kernel_path = "/home/kernel"
25 changes: 25 additions & 0 deletions qemu/tests/vm_hugetlb_selftests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from virttest import error_context


@error_context.context_aware
def run(test, params, env):
"""
vm_hugetlb_selftests test
1) Execute the hugetlb kernel selftests
:param test: QEMU test object
:param params: Dictionary with the test parameters
:param env: Dictionary with test environment
"""
vm = env.get_vm(params["main_vm"])
vm.verify_alive()
session = vm.wait_for_login()
kernel_path = params.get("kernel_path", "/home/kernel")

error_context.base_context("Execute the hugetlb selftests", test.log.info)
session.cmd("cd %s" % kernel_path)
session.cmd("cd linux-*/tools/testing/selftests/mm")
s, o = session.cmd_status_output("sh run_vmtests.sh -t hugetlb", 180)
if s != 0:
test.fail("Error during hugetlb selftests execution: %s" % o)

error_context.context("The hugetlb tests results: %s" % o, test.log.debug)

0 comments on commit 083e5ca

Please sign in to comment.