[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/2] tests/acceptance: Add PVH boot test

From: Philippe Mathieu-Daudé
Subject: Re: [PATCH 1/2] tests/acceptance: Add PVH boot test
Date: Tue, 10 Dec 2019 12:16:41 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2

On 12/6/19 3:00 PM, Wainer dos Santos Moschetta wrote:
QEMU 4.0 onward is able to boot an uncompressed kernel
image by using the x86/HVM direct boot ABI. It needs
Linux >= 4.21 built with CONFIG_PVH=y.

This introduces an acceptance test which checks an
uncompressed Linux kernel image boots properly.

Signed-off-by: Wainer dos Santos Moschetta <address@hidden>
  tests/acceptance/pvh.py | 48 +++++++++++++++++++++++++++++++++++++++++
  1 file changed, 48 insertions(+)
  create mode 100644 tests/acceptance/pvh.py

diff --git a/tests/acceptance/pvh.py b/tests/acceptance/pvh.py
new file mode 100644
index 0000000000..c68489c273
--- /dev/null
+++ b/tests/acceptance/pvh.py
@@ -0,0 +1,48 @@
+# Copyright (c) 2019 Red Hat, Inc.
+# Author:
+#  Wainer dos Santos Moschetta <address@hidden>
+# This work is licensed under the terms of the GNU GPL, version 2 or
+# later.  See the COPYING file in the top-level directory.
+x86/HVM direct boot acceptance tests.
+from avocado.utils.kernel import KernelBuild
+from avocado_qemu import Test
+from avocado_qemu import wait_for_console_pattern
+class Pvh(Test):
+    """
+    Test suite for x86/HVM direct boot feature.
+    :avocado: tags=slow,arch=x86_64,machine=q35

Why is it slow? Because of the time spent to build the kernel?

This should be split in "prepare test" (here: slow) VS "run test", like we do when downloading assets.

+    """
+    def test_boot_vmlinux(self):
+        """
+        Boot uncompressed kernel image.
+        """
+        # QEMU can boot a vmlinux image for kernel >= 4.21 built
+        # with CONFIG_PVH=y
+        kernel_version = '5.4.1'
+        kbuild = KernelBuild(kernel_version, work_dir=self.workdir)
+        try:
+            kbuild.download()
+            kbuild.uncompress()
+            kbuild.configure(targets=['defconfig', 'kvmconfig'],
+                             extra_configs=['CONFIG_PVH=y'])
+            kbuild.build()

I like this feature, but I don't think it should be default for all users, they might start complaining, such:
- test drained battery while using laptop on the move
- test filled $HOME

This should be configurable, like users suggested they don't want the "download required assets from internet" feature.

Is it possible to build this once (ideally on some CI) and add the result binary + SHA1 hash in the Avocado assets public repository?

So users can fetch the prebuilt image, and are free to rebuild it.

+        except:
+            self.cancel("Unable to build vanilla kernel %s" % kernel_version)
+        self.vm.set_machine('q35')
+        self.vm.set_console()
+        kernel_command_line = 'printk.time=0 console=ttyS0'
+        self.vm.add_args('-kernel', kbuild.vmlinux,
+                         '-append', kernel_command_line)
+        self.vm.launch()
+        wait_for_console_pattern(self, 'Kernel command line: %s' %
+                                 kernel_command_line)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]