[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)