All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fam Zheng <famz@redhat.com>
To: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
Cc: qemu-devel@nongnu.org, berrange@redhat.com,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	stefanha@redhat.com, "Cleber Rosa" <crosa@redhat.com>,
	pbonzini@redhat.com, eblake@redhat.com,
	"Kamil Rytarowski" <kamil@netbsd.org>
Subject: Re: [Qemu-devel] [PATCH v5 05/12] tests: Add ubuntu.i386 image
Date: Tue, 5 Sep 2017 10:00:13 +0800	[thread overview]
Message-ID: <20170905020013.GA22515@lemon.lan> (raw)
In-Reply-To: <2f969c4b-7568-5692-2763-21d1259981e9@amsat.org>

On Fri, 09/01 16:50, Philippe Mathieu-Daudé wrote:
> Hi Fam,
> 
> On 08/31/2017 03:42 AM, Fam Zheng wrote:
> > This adds a 32bit guest.
> > 
> > The official LTS cloud image is downloaded and initialized with
> > cloud-init.
> > 
> > Signed-off-by: Fam Zheng <famz@redhat.com>
> > ---
> >   tests/vm/ubuntu.i386 | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> >   1 file changed, 88 insertions(+)
> >   create mode 100755 tests/vm/ubuntu.i386
> > 
> > diff --git a/tests/vm/ubuntu.i386 b/tests/vm/ubuntu.i386
> > new file mode 100755
> > index 0000000000..1a55856d9c
> > --- /dev/null
> > +++ b/tests/vm/ubuntu.i386
> > @@ -0,0 +1,88 @@
> > +#!/usr/bin/env python
> > +#
> > +# Ubuntu i386 image
> > +#
> > +# Copyright (C) 2017 Red Hat Inc.
> > +#
> > +# Authors:
> > +#  Fam Zheng <famz@redhat.com>
> > +#
> > +# This work is licensed under the terms of the GNU GPL, version 2.  See
> > +# the COPYING file in the top-level directory.
> > +#
> > +
> > +import os
> > +import sys
> > +import subprocess
> > +import basevm
> > +import time
> > +
> > +class UbuntuX86VM(basevm.BaseVM):
> > +    name = "ubuntu.i386"
> > +    BUILD_SCRIPT = """
> > +        set -e;
> > +        cd $(mktemp -d);
> > +        sudo chmod a+r /dev/vdb;
> > +        tar -xf /dev/vdb;
> > +        ./configure {configure_opts};
> > +        make -j{jobs};
> > +        make check;
> > +    """
> > +
> > +    def _gen_cloud_init_iso(self):
> > +        cidir = self._tmpdir
> > +        mdata = open(os.path.join(cidir, "meta-data"), "w")
> > +        mdata.writelines(["instance-id: ubuntu-vm-0\n",
> > +                         "local-hostname: ubuntu-guest\n"])
> > +        mdata.close()
> > +        udata = open(os.path.join(cidir, "user-data"), "w")
> > +        udata.writelines(["#cloud-config\n",
> > +                          "chpasswd:\n",
> > +                          "  list: |\n",
> > +                          "    root:%s\n" % self.ROOT_PASS,
> > +                          "    %s:%s\n" % (self.GUEST_USER, self.GUEST_PASS),
> > +                          "  expire: False\n",
> > +                          "users:\n",
> > +                          "  - name: %s\n" % self.GUEST_USER,
> > +                          "    sudo: ALL=(ALL) NOPASSWD:ALL\n",
> > +                          "    ssh-authorized-keys:\n",
> > +                          "    - %s\n" % basevm.SSH_PUB_KEY,
> > +                          "  - name: root\n",
> > +                          "    ssh-authorized-keys:\n",
> > +                          "    - %s\n" % basevm.SSH_PUB_KEY])
> > +        udata.close()
> > +        subprocess.check_call(["genisoimage", "-output", "cloud-init.iso",
> > +                               "-volid", "cidata", "-joliet", "-rock",
> > +                               "user-data", "meta-data"],
> > +                               cwd=cidir,
> > +                               stdin=self._devnull, stdout=self._stdout,
> > +                               stderr=self._stdout)
> > +        return os.path.join(cidir, "cloud-init.iso")
> > +
> > +    def build_image(self, img):
> > +        cimg = self._download_with_cache("https://cloud-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-i386-disk1.img")
> > +        img_tmp = img + ".tmp"
> > +        subprocess.check_call(["cp", "-f", cimg, img_tmp])
> > +        subprocess.check_call(["qemu-img", "resize", img_tmp, "50G"])
> > +        self.boot(img_tmp, extra_args = ["-cdrom", self._gen_cloud_init_iso()])
> 
> I'd rather test a 32bit cpu, not 64bit cpu in 32bit mode.
> 
> I first tested with "-cpu pentium2" which worked, I then find it easier this
> way:
> 
> if /dev/kvm: "kvm32"
> else: "qemu32"
> 
> What do you think?

No, I don't think so, I'm not testing the cpu emulation here. Let's focus on the
test subject which is what happens in the guest, not how it is emulated, as long
as it works.

Fam

  reply	other threads:[~2017-09-05  2:00 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-31  6:42 [Qemu-devel] [PATCH v5 00/12] tests: Add VM based build tests (for non-x86_64 and/or non-Linux) Fam Zheng
2017-08-31  6:42 ` [Qemu-devel] [PATCH v5 01/12] gitignore: Ignore vm test images Fam Zheng
2017-09-01 20:32   ` Philippe Mathieu-Daudé
2017-09-05  2:01     ` Fam Zheng
2017-08-31  6:42 ` [Qemu-devel] [PATCH v5 02/12] qemu.py: Add "wait()" method Fam Zheng
2017-08-31  6:42 ` [Qemu-devel] [PATCH v5 03/12] scripts: Add archive-source.sh Fam Zheng
2017-09-01 20:31   ` Philippe Mathieu-Daudé
2017-09-05  2:03     ` Fam Zheng
2017-08-31  6:42 ` [Qemu-devel] [PATCH v5 04/12] tests: Add vm test lib Fam Zheng
2017-08-31 15:59   ` Philippe Mathieu-Daudé
2017-09-01  8:39     ` Fam Zheng
2017-09-01  9:21       ` Daniel P. Berrange
2017-09-01  9:29         ` Kamil Rytarowski
2017-08-31  6:42 ` [Qemu-devel] [PATCH v5 05/12] tests: Add ubuntu.i386 image Fam Zheng
2017-09-01 19:50   ` Philippe Mathieu-Daudé
2017-09-05  2:00     ` Fam Zheng [this message]
2017-08-31  6:42 ` [Qemu-devel] [PATCH v5 06/12] tests: Add FreeBSD image Fam Zheng
2017-08-31  6:42 ` [Qemu-devel] [PATCH v5 07/12] tests: Add NetBSD image Fam Zheng
2017-08-31  6:42 ` [Qemu-devel] [PATCH v5 08/12] tests: Add OpenBSD image Fam Zheng
2017-08-31  6:42 ` [Qemu-devel] [PATCH v5 09/12] Makefile: Add rules to run vm tests Fam Zheng
2017-08-31  6:43 ` [Qemu-devel] [PATCH v5 10/12] MAINTAINERS: Add tests/vm entry Fam Zheng
2017-08-31  6:43 ` [Qemu-devel] [PATCH v5 11/12] tests: Add README for vm tests Fam Zheng
2017-08-31  6:43 ` [Qemu-devel] [PATCH v5 12/12] docker: Use archive-source.py Fam Zheng
2017-08-31  6:55 ` [Qemu-devel] [PATCH v5 00/12] tests: Add VM based build tests (for non-x86_64 and/or non-Linux) no-reply
2017-08-31 14:04 ` Kamil Rytarowski
2017-08-31 14:27   ` Peter Maydell
2017-08-31 14:42     ` Kamil Rytarowski
2017-08-31 14:49   ` Fam Zheng

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=20170905020013.GA22515@lemon.lan \
    --to=famz@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=crosa@redhat.com \
    --cc=eblake@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=kamil@netbsd.org \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@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.