qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v4 3/3] Add "boot_linux" acceptance test for x86


From: Cornelia Huck
Subject: Re: [Qemu-devel] [PATCH v4 3/3] Add "boot_linux" acceptance test for x86_64 and pc machine type
Date: Fri, 8 Feb 2019 11:52:02 +0100

On Thu,  7 Feb 2019 13:00:12 -0500
Cleber Rosa <address@hidden> wrote:


> diff --git a/tests/acceptance/boot_linux.py b/tests/acceptance/boot_linux.py
> new file mode 100644
> index 0000000000..927fac2959
> --- /dev/null
> +++ b/tests/acceptance/boot_linux.py
> @@ -0,0 +1,51 @@
> +# Functional test that boots a complete Linux system via a cloud image
> +#
> +# Copyright (c) 2018-2019 Red Hat, Inc.
> +#
> +# Author:
> +#  Cleber Rosa <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.
> +
> +import os
> +
> +from avocado_qemu import Test
> +
> +from avocado.utils import cloudinit
> +from avocado.utils import network
> +from avocado.utils import vmimage
> +
> +
> +class BootLinux(Test):
> +    """
> +    Boots a Linux system, checking for a successful initialization
> +
> +    :avocado: enable
> +    """
> +
> +    timeout = 600
> +
> +    def test_x86_64_pc(self):
> +        """
> +        :avocado: tags=arch:x86_64
> +        :avocado: tags=machine:pc
> +        """
> +        self.vm.set_machine('pc')
> +        self.vm.add_args('-m', '1024')
> +        boot = vmimage.get('fedora', arch='x86_64', version='29',
> +                           cache_dir=self.cache_dirs[0],

Somewhat related: I looked at
https://avocado-framework.readthedocs.io/en/67.0/api/utils/avocado.utils.html#module-avocado.utils.vmimage
to find out how caching works, but could not find it... does it match
the checksum?

I think we want to make this benign for people on a slow and/or
data-capped network connection. 'make check-acceptance' downloading
tons of stuff might come as a bad surprise, and it's probably best to
avoid doing more of that than strictly necessary.

> +                           snapshot_dir=self.workdir)
> +        self.vm.add_args('-drive', 'file=%s' % boot.path)
> +
> +        cloudinit_iso = os.path.join(self.workdir, 'cloudinit.iso')
> +        phone_home_port = network.find_free_port()
> +        cloudinit.iso(cloudinit_iso, self.name,
> +                      # QEMU's hard coded usermode router address
> +                      phone_home_host='10.0.2.2',
> +                      phone_home_port=phone_home_port)
> +        self.vm.add_args('-drive', 'file=%s' % cloudinit_iso)
> +
> +        self.vm.launch()
> +        self.log.info('VM launched, waiting for boot confirmation from 
> guest')
> +        cloudinit.wait_for_phone_home(('0.0.0.0', phone_home_port), 
> self.name)



reply via email to

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