All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: Fam Zheng <famz@redhat.com>, Alistair Francis <alistair.francis@wdc.com>
Cc: qemu-devel@nongnu.org, alex.bennee@linaro.org,
	alistair23@gmail.com, crosa@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 1/1] tests/docker: Add a Avocado Docker test
Date: Mon, 21 May 2018 14:26:51 -0300	[thread overview]
Message-ID: <26e052ac-47d4-2777-6791-d4a99c9a75cc@amsat.org> (raw)
In-Reply-To: <20180521031620.GE17725@lemon.usersys.redhat.com>

Hi Alistair, Fam,

On 05/21/2018 12:16 AM, Fam Zheng wrote:
> On Fri, 05/18 11:34, Alistair Francis wrote:
>> Avocado is not trivial to setup on non-Fedora systems. To simplfying
>> future testing add a docker test image that runs Avocado tests.

Can you add an entry in the "make docker" help menu?

>>
>> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
>> ---
>> v2:
>>  - Add a seperate fedora-avocado Docker image
>>  - Move the avocado vt-bootstrap into the Docker file
>>
>>  tests/docker/Makefile.include                 |  1 +
>>  .../docker/dockerfiles/fedora-avocado.docker  | 25 +++++++++++++++++
>>  tests/docker/test-avocado                     | 28 +++++++++++++++++++
>>  3 files changed, 54 insertions(+)
>>  create mode 100644 tests/docker/dockerfiles/fedora-avocado.docker
>>  create mode 100755 tests/docker/test-avocado
>>
>> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
>> index ef1a3e62eb..0e3d108dde 100644
>> --- a/tests/docker/Makefile.include
>> +++ b/tests/docker/Makefile.include
>> @@ -60,6 +60,7 @@ docker-image-debian-ppc64el-cross: docker-image-debian9
>>  docker-image-debian-s390x-cross: docker-image-debian9
>>  docker-image-debian-win32-cross: docker-image-debian8-mxe
>>  docker-image-debian-win64-cross: docker-image-debian8-mxe
>> +docker-image-fedora-avocado: docker-image-fedora
>>  docker-image-travis: NOUSER=1
>>  
>>  # Expand all the pre-requistes for each docker image and test combination
>> diff --git a/tests/docker/dockerfiles/fedora-avocado.docker b/tests/docker/dockerfiles/fedora-avocado.docker
>> new file mode 100644
>> index 0000000000..55b19eebbf
>> --- /dev/null
>> +++ b/tests/docker/dockerfiles/fedora-avocado.docker
>> @@ -0,0 +1,25 @@
>> +FROM qemu:fedora
>> +
>> +ENV PACKAGES \
>> +    libvirt-devel \
>> +    nc \
>> +    python-avocado \
>> +    python2-devel python3-devel \
>> +    qemu-kvm \
>> +    tcpdump \
>> +    xz
>> +ENV PIP_PACKAGES \
>> +    avocado-qemu \
>> +    avocado-framework-plugin-runner-remote \
>> +    avocado-framework-plugin-runner-vm \
>> +    avocado-framework-plugin-vt
>> +
>> +ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3
> 
> I think this is inherited from qemu:fedora, no?

Yes.

> 
>> +
>> +RUN dnf install -y $PACKAGES
>> +RUN pip install $PIP_PACKAGES
>> +RUN avocado vt-bootstrap --yes-to-all --vt-type qemu
>> +
>> +RUN rpm -q $PACKAGES | sort > /packages.txt
> 
> Can you keep the parent image's list with ">>" or appending to the old $PACKAGES
> in the above "ENV" directive?

Appending looks cleaner to me.

> 
>> +
>> +ENV FEATURES mingw clang pyyaml asan avocado
> 
> Similarly, is it possible to append to the parent list instead of overriding?
> 
>> diff --git a/tests/docker/test-avocado b/tests/docker/test-avocado
>> new file mode 100755
>> index 0000000000..40474db2ce
>> --- /dev/null
>> +++ b/tests/docker/test-avocado
>> @@ -0,0 +1,28 @@
>> +#!/bin/bash -e
>> +#
>> +# Avocado tests on Fedora, as these are a real pain on Debian systems
> 
> Shouldn't pip packages work just well on Debian too? What are the pain?
> (Cc'ing Cleber who may want to know this).

Avocado isn't packaged (yet?) on Debian.

> 
> Fam
> 
>> +#
>> +# Copyright (c) 2018 Western Digital.
>> +#
>> +# Authors:
>> +#  Alistair Francis <alistair.francis@wdc.com>
>> +#
>> +# This work is licensed under the terms of the GNU GPL, version 2
>> +# or (at your option) any later version. See the COPYING file in
>> +# the top-level directory.
>> +#
>> +# Run this test: NOUSER=1 make docker-test-avocado@fedora-avocado
>> +
>> +. common.rc
>> +
>> +requires avocado
>> +
>> +cd "$BUILD_DIR"
>> +
>> +DEF_TARGET_LIST="x86_64-softmmu"
>> +TARGET_LIST=${TARGET_LIST:-$DEF_TARGET_LIST} \
>> +build_qemu
>> +install_qemu
>> +
>> +export PATH="${PATH}:$(pwd)"
>> +avocado run boot --vt-qemu-bin ./x86_64-softmmu/qemu-system-x86_64

This failed when testing (I suppose due to too old corporate proxy...):

Step 7/11 : RUN avocado vt-bootstrap --yes-to-all --vt-type qemu
 ---> Running in 008e494971c7
[...]
8 - Verifying (and possibly downloading) guest image
Verifying expected SHA1 sum from
http://avocado-project.org/data/assets/jeos/27/SHA1SUM_JEOS_27_64
Failed to get SHA1 from file: HTTP Error 403: Forbidden file type or
location: http://avocado-project.org/data/assets/jeos/27/SHA1SUM_JEOS_27_64
File /var/lib/avocado/data/avocado-vt/images/jeos-27-x86_64.qcow2.xz not
found
Check your internet connection: HTTP Error 403: Forbidden file type or
location: http://avocado-project.org/data/assets/jeos/27/jeos-27-64.qcow2.xz
Uncompressing
/var/lib/avocado/data/avocado-vt/images/jeos-27-x86_64.qcow2.xz ->
/var/lib/avocado/data/avocado-vt/images/jeos-27-x86_64.qcow2
Bootstrap command failed
Command: xz -cd
/var/lib/avocado/data/avocado-vt/images/jeos-27-x86_64.qcow2.xz >
/var/lib/avocado/data/avocado-vt/images/jeos-27-x86_64.qcow2
stderr output:
xz: /var/lib/avocado/data/avocado-vt/images/jeos-27-x86_64.qcow2.xz:
File format not recognized

The command '/bin/sh -c avocado vt-bootstrap --yes-to-all --vt-type
qemu' returned a non-zero code: 1
Traceback (most recent call last):
  File "./tests/docker/docker.py", line 407, in <module>
    sys.exit(main())
  File "./tests/docker/docker.py", line 404, in main
    return args.cmdobj.run(args, argv)
  File "./tests/docker/docker.py", line 326, in run
    extra_files_cksum=cksum)
  File "./tests/docker/docker.py", line 209, in build_image
    quiet=quiet)
  File "./tests/docker/docker.py", line 147, in _do_check
    return subprocess.check_call(self._command + cmd, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
    raise CalledProcessError(retcode, cmd)
make: *** [tests/docker/Makefile.include:37:
docker-image-fedora-avocado] Error 1

We said we should use some userdir volume to cache the data/assets/,
1/ to avoid to keep downloading this file again and again,
2/ to share it between different docker instances,
3/ so I can download it via another way and put it there (proxy).

BTW Fam (unrelated) when building the intermediary Fedora image I hit:

[...]
(562/563): man-pages-4.12-1.fc27.noarch.rpm     270 kB/s | 5.9 MB
00:22
(563/563): glibc-common-2.26-27.fc27.x86_64.rpm  62 kB/s | 789 kB
00:12
--------------------------------------------------------------------------------
Total                                            10 kB/s | 425 MB
709:02
Running transaction check
Transaction check succeeded.
[...]
Error: Transaction check error:
  installing package glibc-common-2.26-27.fc27.x86_64 needs 4MB on the /
filesystem
  installing package dconf-0.26.1-1.fc27.x86_64 needs 2016MB on the /
filesystem
  installing package man-pages-4.12-1.fc27.noarch needs 2018MB on the /
filesystem
Error Summary
-------------
Disk Requirements:
   At least 2018MB more space needed on the / filesystem.
subprocess.CalledProcessError: Command '['docker', 'build', '-t',
'qemu:fedora', '-f', '/tmp/docker_buildd0ajZ0/tmp1jgnS6.docker',
'/tmp/docker_buildd0ajZ0']' returned non-zero exit status 1
make: *** [tests/docker/Makefile.include:37: docker-image-fedora] Error 1

I wonder if we should add an estimated size of image, to avoid (like in
my case, wait another night to test this due to my ****** internet
connection).

Regards,

Phil.

  reply	other threads:[~2018-05-21 17:27 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-18 18:34 [Qemu-devel] [PATCH v2 1/1] tests/docker: Add a Avocado Docker test Alistair Francis
2018-05-21  3:16 ` Fam Zheng
2018-05-21 17:26   ` Philippe Mathieu-Daudé [this message]
2018-05-21 22:37     ` Alistair Francis
2018-05-21 23:29       ` Philippe Mathieu-Daudé
2018-05-21 22:33   ` Alistair Francis
2018-05-21 23:32     ` Philippe Mathieu-Daudé
2018-05-22 19:50       ` Cleber Rosa
2018-05-22 20:14         ` Lucas Meneghel Rodrigues
2018-05-23  9:35           ` Lucas Meneghel Rodrigues
2018-05-23 10:14             ` Cleber Rosa

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=26e052ac-47d4-2777-6791-d4a99c9a75cc@amsat.org \
    --to=f4bug@amsat.org \
    --cc=alex.bennee@linaro.org \
    --cc=alistair.francis@wdc.com \
    --cc=alistair23@gmail.com \
    --cc=crosa@redhat.com \
    --cc=famz@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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.