[Buildroot] [PATCH] support/testing: add test for msr-tools
From: Vincent Stehlé via buildroot <hidden>
Date: 2022-07-15 09:59:49
Add a simple test to verify that msr-tools are working. The test needs to build a custom x86_64 kernel with support for CPUID and MSR. As the TSC_AUX MSR is emulated on qemu we can use it to test that a value written with wrmsr can indeed be read back with rdmsr. Signed-off-by: Vincent Stehlé <redacted> --- Hi, I have verified that this test works fine locally and on gitlab. It is expected to have a trivial conflict with this previous patch[1] on the DEVELOPERS file. Best regards, Vincent. [1]: https://lists.buildroot.org/pipermail/buildroot/2022-July/646008.html DEVELOPERS | 1 + .../testing/tests/package/test_msr_tools.py | 50 +++++++++++++++++++ .../tests/package/test_msr_tools/linux.config | 2 + 3 files changed, 53 insertions(+) create mode 100644 support/testing/tests/package/test_msr_tools.py create mode 100644 support/testing/tests/package/test_msr_tools/linux.config
diff --git a/DEVELOPERS b/DEVELOPERS
index 0afd697b6c..8753f0c17e 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS@@ -2917,6 +2917,7 @@ F: configs/uevm5432_defconfig F: package/i7z/ F: package/msr-tools/ F: package/pixz/ +F: support/testing/tests/package/test_msr_tools* N: Vinicius Tinti <viniciustinti@gmail.com> F: package/python-thrift/
diff --git a/support/testing/tests/package/test_msr_tools.py b/support/testing/tests/package/test_msr_tools.py
new file mode 100644
index 0000000000..4d62742a5f
--- /dev/null
+++ b/support/testing/tests/package/test_msr_tools.py@@ -0,0 +1,50 @@ +import os + +import infra.basetest + + +class TestMsrTools(infra.basetest.BRTest): + config = \ + """ + BR2_x86_64=y + BR2_x86_corei7=y + BR2_TOOLCHAIN_EXTERNAL=y + BR2_LINUX_KERNEL=y + BR2_LINUX_KERNEL_CUSTOM_VERSION=y + BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.55" + BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y + BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux.config" + BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="{}" + BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y + BR2_PACKAGE_MSR_TOOLS=y + BR2_TARGET_ROOTFS_CPIO=y + # BR2_TARGET_ROOTFS_TAR is not set + """.format( + infra.filepath("tests/package/test_msr_tools/linux.config")) + + def test_run(self): + kernel = os.path.join(self.builddir, "images", "bzImage") + cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") + self.emulator.boot( + arch="x86_64", + kernel=kernel, kernel_cmdline=["console=ttyS0"], + options=["-cpu", "Nehalem", "-m", "320", "-initrd", cpio_file] + ) + self.emulator.login() + + # CPU ID. + cmd = "cpuid" + self.assertRunOk(cmd) + + # Write MSR. + # We write to TSC_AUX. + cmd = "wrmsr 0xc0000103 0x1234567812345678" + self.assertRunOk(cmd) + + # Read MSR. + # We read back the TSC_AUX and we verify that we read back the correct + # value. + cmd = "rdmsr 0xc0000103" + output, exit_code = self.emulator.run(cmd) + self.assertEqual(exit_code, 0) + self.assertEqual(output[0], "1234567812345678")
diff --git a/support/testing/tests/package/test_msr_tools/linux.config b/support/testing/tests/package/test_msr_tools/linux.config
new file mode 100644
index 0000000000..8fe09db87b
--- /dev/null
+++ b/support/testing/tests/package/test_msr_tools/linux.config@@ -0,0 +1,2 @@ +CONFIG_X86_CPUID=y +CONFIG_X86_MSR=y
--
2.35.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot