From: "Alex Bennée" <alex.bennee@linaro.org>
To: Wainer dos Santos Moschetta <wainersm@redhat.com>
Cc: fam@euphon.net, philmd@redhat.com, qemu-devel@nongnu.org
Subject: Re: [PATCH 1/1] tests/vm: Allow to set qemu-img path
Date: Tue, 03 Dec 2019 11:35:06 +0000 [thread overview]
Message-ID: <87fti1bq1h.fsf@linaro.org> (raw)
In-Reply-To: <20191114134246.12073-2-wainersm@redhat.com>
Wainer dos Santos Moschetta <wainersm@redhat.com> writes:
> By default VM build test use qemu-img from system's PATH to
> create the image disk. Due the lack of qemu-img on the system
> or the desire to simply use a version built with QEMU, it would
> be nice to allow one to set its path. So this patch makes that
> possible by reading the path to qemu-img from QEMU_IMG if set,
> otherwise it fallback to default behavior.
>
> Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
Queued to testing/next, thanks.
> ---
> docs/devel/testing.rst | 6 ++++--
> tests/vm/Makefile.include | 1 +
> tests/vm/basevm.py | 5 +++++
> tests/vm/centos | 2 +-
> tests/vm/fedora | 4 +---
> tests/vm/freebsd | 3 +--
> tests/vm/netbsd | 3 +--
> tests/vm/openbsd | 3 +--
> tests/vm/ubuntu.i386 | 2 +-
> 9 files changed, 16 insertions(+), 13 deletions(-)
>
> diff --git a/docs/devel/testing.rst b/docs/devel/testing.rst
> index 8e981e062d..9be6cd4410 100644
> --- a/docs/devel/testing.rst
> +++ b/docs/devel/testing.rst
> @@ -418,13 +418,15 @@ access, so they SHOULD NOT be exposed to external interfaces if you are
> concerned about attackers taking control of the guest and potentially
> exploiting a QEMU security bug to compromise the host.
>
> -QEMU binary
> ------------
> +QEMU binaries
> +-------------
>
> By default, qemu-system-x86_64 is searched in $PATH to run the guest. If there
> isn't one, or if it is older than 2.10, the test won't work. In this case,
> provide the QEMU binary in env var: ``QEMU=/path/to/qemu-2.10+``.
>
> +Likewise the path to qemu-img can be set in QEMU_IMG environment variable.
> +
> Make jobs
> ---------
>
> diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
> index fea348e845..9e7c46a473 100644
> --- a/tests/vm/Makefile.include
> +++ b/tests/vm/Makefile.include
> @@ -34,6 +34,7 @@ vm-help vm-test:
> @echo " DEBUG=1 - Enable verbose output on host and interactive debugging"
> @echo " V=1 - Enable verbose ouput on host and guest commands"
> @echo " QEMU=/path/to/qemu - Change path to QEMU binary"
> + @echo " QEMU_IMG=/path/to/qemu-img - Change path to qemu-img tool"
>
> vm-build-all: $(addprefix vm-build-, $(IMAGES))
>
> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
> index 91a9226026..d1efeb3646 100755
> --- a/tests/vm/basevm.py
> +++ b/tests/vm/basevm.py
> @@ -152,6 +152,11 @@ class BaseVM(object):
> def build_image(self, img):
> raise NotImplementedError
>
> + def exec_qemu_img(self, *args):
> + cmd = [os.environ.get("QEMU_IMG", "qemu-img")]
> + cmd.extend(list(args))
> + subprocess.check_call(cmd)
> +
> def add_source_dir(self, src_dir):
> name = "data-" + hashlib.sha1(src_dir.encode("utf-8")).hexdigest()[:5]
> tarfile = os.path.join(self._tmpdir, name + ".tar")
> diff --git a/tests/vm/centos b/tests/vm/centos
> index 53976f1c4c..eac07dacd6 100755
> --- a/tests/vm/centos
> +++ b/tests/vm/centos
> @@ -68,7 +68,7 @@ class CentosVM(basevm.BaseVM):
> sys.stderr.write("Extracting the image...\n")
> subprocess.check_call(["ln", "-f", cimg, img_tmp + ".xz"])
> subprocess.check_call(["xz", "--keep", "-dvf", img_tmp + ".xz"])
> - subprocess.check_call(["qemu-img", "resize", img_tmp, "50G"])
> + self.exec_qemu_img("resize", img_tmp, "50G")
> self.boot(img_tmp, extra_args = ["-cdrom", self._gen_cloud_init_iso()])
> self.wait_ssh()
> self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
> diff --git a/tests/vm/fedora b/tests/vm/fedora
> index 7fec1479fb..8e270fc0f0 100755
> --- a/tests/vm/fedora
> +++ b/tests/vm/fedora
> @@ -74,9 +74,7 @@ class FedoraVM(basevm.BaseVM):
>
> self.print_step("Preparing iso and disk image")
> subprocess.check_call(["cp", "-f", cimg, iso])
> - subprocess.check_call(["qemu-img", "create", "-f", "qcow2",
> - img_tmp, self.size])
> -
> + self.exec_qemu_img("create", "-f", "qcow2", img_tmp, self.size)
> self.print_step("Booting installer")
> self.boot(img_tmp, extra_args = [
> "-bios", "pc-bios/bios-256k.bin",
> diff --git a/tests/vm/freebsd b/tests/vm/freebsd
> index 2a19461a90..1825cc5821 100755
> --- a/tests/vm/freebsd
> +++ b/tests/vm/freebsd
> @@ -82,8 +82,7 @@ class FreeBSDVM(basevm.BaseVM):
> self.print_step("Preparing iso and disk image")
> subprocess.check_call(["cp", "-f", cimg, iso_xz])
> subprocess.check_call(["xz", "-dvf", iso_xz])
> - subprocess.check_call(["qemu-img", "create", "-f", "qcow2",
> - img_tmp, self.size])
> + self.exec_qemu_img("create", "-f", "qcow2", img_tmp, self.size)
>
> self.print_step("Booting installer")
> self.boot(img_tmp, extra_args = [
> diff --git a/tests/vm/netbsd b/tests/vm/netbsd
> index 611e6cc5b5..ec6f3563b2 100755
> --- a/tests/vm/netbsd
> +++ b/tests/vm/netbsd
> @@ -77,8 +77,7 @@ class NetBSDVM(basevm.BaseVM):
>
> self.print_step("Preparing iso and disk image")
> subprocess.check_call(["ln", "-f", cimg, iso])
> - subprocess.check_call(["qemu-img", "create", "-f", "qcow2",
> - img_tmp, self.size])
> + self.exec_qemu_img("create", "-f", "qcow2", img_tmp, self.size)
>
> self.print_step("Booting installer")
> self.boot(img_tmp, extra_args = [
> diff --git a/tests/vm/openbsd b/tests/vm/openbsd
> index b92c39f89a..6df5162dbf 100755
> --- a/tests/vm/openbsd
> +++ b/tests/vm/openbsd
> @@ -73,8 +73,7 @@ class OpenBSDVM(basevm.BaseVM):
>
> self.print_step("Preparing iso and disk image")
> subprocess.check_call(["cp", "-f", cimg, iso])
> - subprocess.check_call(["qemu-img", "create", "-f", "qcow2",
> - img_tmp, self.size])
> + self.exec_qemu_img("create", "-f", "qcow2", img_tmp, self.size)
>
> self.print_step("Booting installer")
> self.boot(img_tmp, extra_args = [
> diff --git a/tests/vm/ubuntu.i386 b/tests/vm/ubuntu.i386
> index 38f740eabf..39bbe9cc21 100755
> --- a/tests/vm/ubuntu.i386
> +++ b/tests/vm/ubuntu.i386
> @@ -70,7 +70,7 @@ class UbuntuX86VM(basevm.BaseVM):
> sha256sum="e30091144c73483822b7c27193e9d47346dd1064229da577c3fedcf943f7cfcc")
> img_tmp = img + ".tmp"
> subprocess.check_call(["cp", "-f", cimg, img_tmp])
> - subprocess.check_call(["qemu-img", "resize", img_tmp, "50G"])
> + self.exec_qemu_img("resize", img_tmp, "50G")
> self.boot(img_tmp, extra_args = ["-cdrom", self._gen_cloud_init_iso()])
> self.wait_ssh()
> self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
--
Alex Bennée
next prev parent reply other threads:[~2019-12-03 11:40 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-14 13:42 [PATCH 0/1] tests/vm: Allow to set path to qemu-img Wainer dos Santos Moschetta
2019-11-14 13:42 ` [PATCH 1/1] tests/vm: Allow to set qemu-img path Wainer dos Santos Moschetta
2019-12-03 11:35 ` Alex Bennée [this message]
2019-12-03 16:17 ` Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fti1bq1h.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=fam@euphon.net \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=wainersm@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.