qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL v5 00/36] Build and test automation patches
@ 2017-09-22  7:46 Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 01/36] docker: ensure NOUSER for travis images Fam Zheng
                   ` (36 more replies)
  0 siblings, 37 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The following changes since commit 0a8066f0c068f1e318a1aacd7864fc00e455a37b:

  Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20170921' into staging (2017-09-21 17:42:27 +0100)

are available in the git repository at:

  git://github.com/famz/qemu.git tags/build-and-test-automation-pull-request

for you to fetch changes up to 4f6afe41f2ee3d8170eef7a9122d256588b707b2:

  docker: Drop 'set -e' from run script (2017-09-22 14:51:43 +0800)

----------------------------------------------------------------

Since v4:

- Drop three iffy -cflags patches from me (for gtk/vnc/curses).
- Revised VM test scripts after addressing comments.
- Add Eduardo's small tweak on MAINTAINERS.

----------------------------------------------------------------

Alex Bennée (4):
  docker: ensure NOUSER for travis images
  docker: docker.py make --no-cache skip checksum test
  docker: don't install device-tree-compiler build-deps in travis.docker
  docker: reduce noise when building travis.docker

Eduardo Habkost (1):
  MAINTAINERS: Fix subsystem name for "Build and test automation"

Fam Zheng (31):
  docker: Update ubuntu image
  docker: Enable features explicitly in test-full
  tests/docker: Clean up paths
  docker: Fix return code of build_qemu()
  docker: Add test_fail and prep_fail
  docker: Use unconfined security profile
  docker: Add nettle-devel to fedora image
  docker: Add test-block
  vl: Don't include vde header
  buildsys: Move vde libs to per object
  buildsys: Move sdl cflags/libs to per object
  buildsys: Move audio libs to per object
  buildsys: Move libcacard cflags/libs to per object
  buildsys: Move libusb cflags/libs to per object
  buildsys: Move usb redir cflags/libs to per object
  buildsys: Move brlapi libs to per object
  buildsys: Move rdma libs to per object
  gitignore: Ignore vm test images
  qemu.py: Add "wait()" method
  scripts: Add archive-source.sh
  tests: Add a test key pair
  tests: Add vm test lib
  tests: Add ubuntu.i386 image
  tests: Add FreeBSD image
  tests: Add NetBSD image
  tests: Add OpenBSD image
  Makefile: Add rules to run vm tests
  MAINTAINERS: Add tests/vm entry
  tests: Add README for vm tests
  docker: Use archive-source.py
  docker: Drop 'set -e' from run script

 .gitignore                             |   1 +
 MAINTAINERS                            |   2 +
 Makefile                               |   2 +
 audio/Makefile.objs                    |   6 +
 chardev/Makefile.objs                  |   1 +
 configure                              |  38 ++---
 hw/usb/Makefile.objs                   |  13 +-
 migration/Makefile.objs                |   1 +
 net/Makefile.objs                      |   2 +
 scripts/archive-source.sh              |  51 +++++++
 scripts/qemu.py                        |   7 +
 tests/.gitignore                       |   1 +
 tests/docker/Makefile.include          |  16 +-
 tests/docker/common.rc                 |  20 ++-
 tests/docker/docker.py                 |   3 +-
 tests/docker/dockerfiles/fedora.docker |   1 +
 tests/docker/dockerfiles/travis.docker |   6 +-
 tests/docker/dockerfiles/ubuntu.docker |  11 +-
 tests/docker/run                       |  18 +--
 tests/docker/test-block                |  21 +++
 tests/docker/test-full                 |  82 ++++++++++-
 tests/keys/README                      |   6 +
 tests/keys/id_rsa                      |  27 ++++
 tests/keys/id_rsa.pub                  |   1 +
 tests/vm/Makefile.include              |  42 ++++++
 tests/vm/README                        |  89 +++++++++++
 tests/vm/basevm.py                     | 262 +++++++++++++++++++++++++++++++++
 tests/vm/freebsd                       |  42 ++++++
 tests/vm/netbsd                        |  42 ++++++
 tests/vm/openbsd                       |  43 ++++++
 tests/vm/ubuntu.i386                   |  89 +++++++++++
 ui/Makefile.objs                       |   1 +
 vl.c                                   |   4 -
 33 files changed, 886 insertions(+), 65 deletions(-)
 create mode 100755 scripts/archive-source.sh
 create mode 100755 tests/docker/test-block
 create mode 100644 tests/keys/README
 create mode 100644 tests/keys/id_rsa
 create mode 100644 tests/keys/id_rsa.pub
 create mode 100644 tests/vm/Makefile.include
 create mode 100644 tests/vm/README
 create mode 100755 tests/vm/basevm.py
 create mode 100755 tests/vm/freebsd
 create mode 100755 tests/vm/netbsd
 create mode 100755 tests/vm/openbsd
 create mode 100755 tests/vm/ubuntu.i386

-- 
2.13.5

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 01/36] docker: ensure NOUSER for travis images
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 02/36] docker: docker.py make --no-cache skip checksum test Fam Zheng
                   ` (35 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

From: Alex Bennée <alex.bennee@linaro.org>

While adding the current user is a useful default behaviour for
creating new images it is not appropriate for Travis which already has
a default user.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20170725133425.436-2-alex.bennee@linaro.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/Makefile.include | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index aa566aa223..2c49930907 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -70,6 +70,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-travis: NOUSER=1
 
 # Expand all the pre-requistes for each docker image and test combination
 $(foreach i,$(DOCKER_IMAGES), \
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 02/36] docker: docker.py make --no-cache skip checksum test
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 01/36] docker: ensure NOUSER for travis images Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 03/36] docker: don't install device-tree-compiler build-deps in travis.docker Fam Zheng
                   ` (34 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

From: Alex Bennée <alex.bennee@linaro.org>

If you invoke with NOCACHE=1 we pass --no-cache in the argv to
docker.py but may still not force a rebuild if the dockerfile checksum
hasn't changed. By testing for its presence we can force builds
without having to manually remove the docker image.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20170725133425.436-5-alex.bennee@linaro.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/docker.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 81c87ee329..08122ca17d 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -263,7 +263,8 @@ class BuildCommand(SubCommand):
         tag = args.tag
 
         dkr = Docker()
-        if dkr.image_matches_dockerfile(tag, dockerfile):
+        if "--no-cache" not in argv and \
+           dkr.image_matches_dockerfile(tag, dockerfile):
             if not args.quiet:
                 print "Image is up to date."
         else:
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 03/36] docker: don't install device-tree-compiler build-deps in travis.docker
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 01/36] docker: ensure NOUSER for travis images Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 02/36] docker: docker.py make --no-cache skip checksum test Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 04/36] docker: reduce noise when building travis.docker Fam Zheng
                   ` (33 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

From: Alex Bennée <alex.bennee@linaro.org>

Installing the device-tree-compiler build-deps is a little extreme. We
only actually need the binary so include it with the other packages.

Suggested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20170725133425.436-6-alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/dockerfiles/travis.docker | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tests/docker/dockerfiles/travis.docker b/tests/docker/dockerfiles/travis.docker
index 636fa590a5..57ac8e1419 100644
--- a/tests/docker/dockerfiles/travis.docker
+++ b/tests/docker/dockerfiles/travis.docker
@@ -1,6 +1,5 @@
 FROM quay.io/travisci/travis-ruby
 RUN apt-get update
 RUN apt-get -y build-dep qemu
-RUN apt-get -y build-dep device-tree-compiler
-RUN apt-get -y install python2.7 python-yaml dh-autoreconf gdb strace lsof net-tools
+RUN apt-get -y install device-tree-compiler python2.7 python-yaml dh-autoreconf gdb strace lsof net-tools
 ENV FEATURES pyyaml
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 04/36] docker: reduce noise when building travis.docker
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (2 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 03/36] docker: don't install device-tree-compiler build-deps in travis.docker Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 05/36] docker: Update ubuntu image Fam Zheng
                   ` (32 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

From: Alex Bennée <alex.bennee@linaro.org>

Set the DEBIAN_FRONTEND and locale env vars to stop apt complaining so
much as we build the image.

Suggested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20170725133425.436-7-alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/dockerfiles/travis.docker | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tests/docker/dockerfiles/travis.docker b/tests/docker/dockerfiles/travis.docker
index 57ac8e1419..605b6e429b 100644
--- a/tests/docker/dockerfiles/travis.docker
+++ b/tests/docker/dockerfiles/travis.docker
@@ -1,4 +1,7 @@
 FROM quay.io/travisci/travis-ruby
+ENV DEBIAN_FRONTEND noninteractive
+ENV LANG en_US.UTF-8
+ENV LC_ALL en_US.UTF-8
 RUN apt-get update
 RUN apt-get -y build-dep qemu
 RUN apt-get -y install device-tree-compiler python2.7 python-yaml dh-autoreconf gdb strace lsof net-tools
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 05/36] docker: Update ubuntu image
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (3 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 04/36] docker: reduce noise when building travis.docker Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 06/36] docker: Enable features explicitly in test-full Fam Zheng
                   ` (31 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Base on the newer ubuntu-lts (16.06) and include more packages for
better build coverage.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907141245.31946-2-famz@redhat.com>
---
 tests/docker/dockerfiles/ubuntu.docker | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/tests/docker/dockerfiles/ubuntu.docker b/tests/docker/dockerfiles/ubuntu.docker
index a360a050a2..d73ce02246 100644
--- a/tests/docker/dockerfiles/ubuntu.docker
+++ b/tests/docker/dockerfiles/ubuntu.docker
@@ -1,12 +1,17 @@
-FROM ubuntu:14.04
+FROM ubuntu:16.04
 RUN echo "deb http://archive.ubuntu.com/ubuntu/ trusty universe multiverse" >> \
     /etc/apt/sources.list
 RUN apt-get update
 ENV PACKAGES flex bison \
-    libusb-1.0-0-dev libiscsi-dev librados-dev libncurses5-dev \
+    libusb-1.0-0-dev libiscsi-dev librados-dev libncurses5-dev libncursesw5-dev \
     libseccomp-dev libgnutls-dev libssh2-1-dev  libspice-server-dev \
     libspice-protocol-dev libnss3-dev libfdt-dev \
-    libgtk-3-dev libvte-2.90-dev libsdl1.2-dev libpng12-dev libpixman-1-dev \
+    libgtk-3-dev libvte-2.91-dev libsdl1.2-dev libpng12-dev libpixman-1-dev \
+    libvdeplug-dev liblzo2-dev libsnappy-dev libbz2-dev libxen-dev librdmacm-dev libibverbs-dev \
+    libsasl2-dev libjpeg-turbo8-dev xfslibs-dev libcap-ng-dev libbrlapi-dev libcurl4-gnutls-dev \
+    libbluetooth-dev librbd-dev libaio-dev glusterfs-common libnuma-dev libepoxy-dev libdrm-dev libgbm-dev \
+    libjemalloc-dev libcacard-dev libusbredirhost-dev libnfs-dev libcap-dev libattr1-dev \
+    texinfo \
     git make ccache python-yaml gcc clang sparse
 RUN apt-get -y install $PACKAGES
 RUN dpkg -l $PACKAGES | sort > /packages.txt
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 06/36] docker: Enable features explicitly in test-full
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (4 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 05/36] docker: Update ubuntu image Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-10-02 14:21   ` Paolo Bonzini
  2017-09-22  7:46 ` [Qemu-devel] [PULL 07/36] tests/docker: Clean up paths Fam Zheng
                   ` (30 subsequent siblings)
  36 siblings, 1 reply; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Also avoid "set -e".

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907141245.31946-3-famz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 tests/docker/test-full | 82 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 76 insertions(+), 6 deletions(-)

diff --git a/tests/docker/test-full b/tests/docker/test-full
index 05f0d491d1..d71bf9d275 100755
--- a/tests/docker/test-full
+++ b/tests/docker/test-full
@@ -1,8 +1,8 @@
-#!/bin/bash -e
+#!/bin/bash
 #
-# Compile all the targets.
+# Compile all the targets with as many features enabled as possible
 #
-# Copyright (c) 2016 Red Hat Inc.
+# Copyright 2016, 2017 Red Hat Inc.
 #
 # Authors:
 #  Fam Zheng <famz@redhat.com>
@@ -13,7 +13,77 @@
 
 . common.rc
 
-cd "$BUILD_DIR"
+cd "$BUILD_DIR" || exit 1
 
-build_qemu
-make check $MAKEFLAGS
+build_qemu \
+    --enable-attr \
+    --enable-bluez \
+    --enable-brlapi \
+    --enable-bsd-user \
+    --enable-bzip2 \
+    --enable-cap-ng \
+    --enable-coroutine-pool \
+    --enable-crypto-afalg \
+    --enable-curl \
+    --enable-curses \
+    --enable-debug \
+    --enable-debug-info \
+    --enable-debug-tcg \
+    --enable-docs \
+    --enable-fdt \
+    --enable-gcrypt \
+    --enable-glusterfs \
+    --enable-gnutls \
+    --enable-gprof \
+    --enable-gtk \
+    --enable-guest-agent \
+    --enable-jemalloc \
+    --enable-kvm \
+    --enable-libiscsi \
+    --enable-libnfs \
+    --enable-libssh2 \
+    --enable-libusb \
+    --enable-linux-aio \
+    --enable-linux-user \
+    --enable-live-block-migration \
+    --enable-lzo \
+    --enable-modules \
+    --enable-numa \
+    --enable-opengl \
+    --enable-pie \
+    --enable-profiler \
+    --enable-qom-cast-debug \
+    --enable-rbd \
+    --enable-rdma \
+    --enable-replication \
+    --enable-sdl \
+    --enable-seccomp \
+    --enable-smartcard \
+    --enable-snappy \
+    --enable-spice \
+    --enable-stack-protector \
+    --enable-system \
+    --enable-tcg \
+    --enable-tcg-interpreter \
+    --enable-tools \
+    --enable-tpm \
+    --enable-trace-backend=ftrace \
+    --enable-usb-redir \
+    --enable-user \
+    --enable-vde \
+    --enable-vhost-net \
+    --enable-vhost-scsi \
+    --enable-vhost-user \
+    --enable-vhost-vsock \
+    --enable-virtfs \
+    --enable-vnc \
+    --enable-vnc-jpeg \
+    --enable-vnc-png \
+    --enable-vnc-sasl \
+    --enable-vte \
+    --enable-werror \
+    --enable-xen \
+    --enable-xen-pci-passthrough \
+    --enable-xen-pv-domain-build \
+    --enable-xfsctl \
+&& make check $MAKEFLAGS
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 07/36] tests/docker: Clean up paths
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (5 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 06/36] docker: Enable features explicitly in test-full Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 08/36] docker: Fix return code of build_qemu() Fam Zheng
                   ` (29 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The 'run' script already creats src, build and install directories under
$TEST_DIR, use it in common.rc.

Also the tests always run from $QEMU_SRC/tests/docker, so use a relative
$CMD string.

Message-Id: <20170817035721.11064-1-famz@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/common.rc | 5 +----
 tests/docker/run       | 4 +++-
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/tests/docker/common.rc b/tests/docker/common.rc
index 6865689bb5..64b36ba2d0 100755
--- a/tests/docker/common.rc
+++ b/tests/docker/common.rc
@@ -11,9 +11,6 @@
 # or (at your option) any later version. See the COPYING file in
 # the top-level directory.
 
-BUILD_DIR=/var/tmp/qemu-build
-mkdir $BUILD_DIR
-
 requires()
 {
     for c in $@; do
@@ -28,7 +25,7 @@ build_qemu()
 {
     config_opts="--enable-werror \
                  ${TARGET_LIST:+--target-list=${TARGET_LIST}} \
-                 --prefix=$PWD/install \
+                 --prefix=$INSTALL_DIR \
                  $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS \
                  $@"
     echo "Configure options:"
diff --git a/tests/docker/run b/tests/docker/run
index c1e4513bce..ec2541cbd9 100755
--- a/tests/docker/run
+++ b/tests/docker/run
@@ -52,10 +52,12 @@ if test -n "$SHOW_ENV"; then
 fi
 
 export QEMU_SRC="$TEST_DIR/src"
+export BUILD_DIR="$TEST_DIR/build"
+export INSTALL_DIR="$TEST_DIR/install"
 
 cd "$QEMU_SRC/tests/docker"
 
-CMD="$QEMU_SRC/tests/docker/$@"
+CMD="./$@"
 
 if test -z "$DEBUG"; then
     exec $CMD
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 08/36] docker: Fix return code of build_qemu()
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (6 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 07/36] tests/docker: Clean up paths Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 09/36] docker: Add test_fail and prep_fail Fam Zheng
                   ` (28 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Without "set -e", the "&&" makes sure that the return code reflects the
result status, and that make only runs if configure succeeds.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905025614.579-2-famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Based-on: 20170905021201.25684-1-famz@redhat.com
---
 tests/docker/common.rc | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tests/docker/common.rc b/tests/docker/common.rc
index 64b36ba2d0..3b45eb91c6 100755
--- a/tests/docker/common.rc
+++ b/tests/docker/common.rc
@@ -30,6 +30,5 @@ build_qemu()
                  $@"
     echo "Configure options:"
     echo $config_opts
-    $QEMU_SRC/configure $config_opts
-    make $MAKEFLAGS
+    $QEMU_SRC/configure $config_opts && make $MAKEFLAGS
 }
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 09/36] docker: Add test_fail and prep_fail
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (7 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 08/36] docker: Fix return code of build_qemu() Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 10/36] docker: Use unconfined security profile Fam Zheng
                   ` (27 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

They both print a message and exit, but with different status code so
distinguish real test errors from env preparation failures.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905025614.579-3-famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Based-on: 20170905021201.25684-1-famz@redhat.com
---
 tests/docker/common.rc | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/tests/docker/common.rc b/tests/docker/common.rc
index 3b45eb91c6..87f5263757 100755
--- a/tests/docker/common.rc
+++ b/tests/docker/common.rc
@@ -32,3 +32,15 @@ build_qemu()
     echo $config_opts
     $QEMU_SRC/configure $config_opts && make $MAKEFLAGS
 }
+
+test_fail()
+{
+    echo "$@"
+    exit 1
+}
+
+prep_fail()
+{
+    echo "$@"
+    exit 2
+}
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 10/36] docker: Use unconfined security profile
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (8 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 09/36] docker: Add test_fail and prep_fail Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 11/36] docker: Add nettle-devel to fedora image Fam Zheng
                   ` (26 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Some by default blocked syscalls are required to run tests for example
userfaultfd.

Reviewed-by: Kashyap Chamarthy <kchamart@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905025614.579-4-famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Based-on: 20170905021201.25684-1-famz@redhat.com
---
 tests/docker/Makefile.include | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 2c49930907..2bed4c0e00 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -145,6 +145,7 @@ docker-run: docker-qemu-src
 	$(call quiet-command,						\
 		$(SRC_PATH)/tests/docker/docker.py run 			\
 			$(if $(NOUSER),,-u $(shell id -u)) -t 		\
+			--security-opt seccomp=unconfined		\
 			$(if $V,,--rm) 					\
 			$(if $(DEBUG),-i,)				\
 			$(if $(NETWORK),$(if $(subst $(NETWORK),,1),--net=$(NETWORK)),--net=none) \
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 11/36] docker: Add nettle-devel to fedora image
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (9 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 10/36] docker: Use unconfined security profile Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 12/36] docker: Add test-block Fam Zheng
                   ` (25 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The LUKS cases in qemu-iotests requires this.

Reviewed-by: Kashyap Chamarthy <kchamart@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905025614.579-5-famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Based-on: 20170905021201.25684-1-famz@redhat.com
---
 tests/docker/dockerfiles/fedora.docker | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker
index 4eaa8ed2a5..27e8201c54 100644
--- a/tests/docker/dockerfiles/fedora.docker
+++ b/tests/docker/dockerfiles/fedora.docker
@@ -3,6 +3,7 @@ ENV PACKAGES \
     ccache git tar PyYAML sparse flex bison python2 bzip2 hostname \
     glib2-devel pixman-devel zlib-devel SDL-devel libfdt-devel \
     gcc gcc-c++ clang make perl which bc findutils libaio-devel \
+    nettle-devel \
     mingw32-pixman mingw32-glib2 mingw32-gmp mingw32-SDL mingw32-pkg-config \
     mingw32-gtk2 mingw32-gtk3 mingw32-gnutls mingw32-nettle mingw32-libtasn1 \
     mingw32-libjpeg-turbo mingw32-libpng mingw32-curl mingw32-libssh2 \
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 12/36] docker: Add test-block
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (10 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 11/36] docker: Add nettle-devel to fedora image Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 13/36] vl: Don't include vde header Fam Zheng
                   ` (24 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905025614.579-6-famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Based-on: 20170905021201.25684-1-famz@redhat.com
---
 tests/docker/test-block | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100755 tests/docker/test-block

diff --git a/tests/docker/test-block b/tests/docker/test-block
new file mode 100755
index 0000000000..2ca1ce54f6
--- /dev/null
+++ b/tests/docker/test-block
@@ -0,0 +1,21 @@
+#!/bin/bash
+#
+# Run block test cases
+#
+# Copyright 2017 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This code is licensed under the GPL version 2 or later.  See
+# the COPYING file in the top-level directory.
+
+. ./common.rc
+
+cd "$BUILD_DIR"
+
+build_qemu --target-list=x86_64-softmmu
+cd tests/qemu-iotests
+for t in raw qcow2 nbd luks; do
+    ./check -g quick -$t || test_fail "Test failed: iotests $t"
+done
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 13/36] vl: Don't include vde header
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (11 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 12/36] docker: Add test-block Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 14/36] buildsys: Move vde libs to per object Fam Zheng
                   ` (23 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Nothing in vl.c uses anything from the vde package, do remove the
unnecessary include.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907083552.17725-2-famz@redhat.com>
Reviewed-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 vl.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/vl.c b/vl.c
index 9bb5058c3a..88ae727486 100644
--- a/vl.c
+++ b/vl.c
@@ -32,10 +32,6 @@
 #include "sys/prctl.h"
 #endif
 
-#if defined(CONFIG_VDE)
-#include <libvdeplug.h>
-#endif
-
 #ifdef CONFIG_SDL
 #if defined(__APPLE__) || defined(main)
 #include <SDL.h>
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 14/36] buildsys: Move vde libs to per object
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (12 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 13/36] vl: Don't include vde header Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 15/36] buildsys: Move sdl cflags/libs " Fam Zheng
                   ` (22 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907083552.17725-3-famz@redhat.com>
Reviewed-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 configure         | 3 +--
 net/Makefile.objs | 2 ++
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index cb0f7ed0ab..956ab367dc 100755
--- a/configure
+++ b/configure
@@ -2946,8 +2946,6 @@ int main(void)
 EOF
   if compile_prog "" "$vde_libs" ; then
     vde=yes
-    libs_softmmu="$vde_libs $libs_softmmu"
-    libs_tools="$vde_libs $libs_tools"
   else
     if test "$vde" = "yes" ; then
       feature_not_found "vde" "Install vde (Virtual Distributed Ethernet) devel"
@@ -5499,6 +5497,7 @@ if test "$slirp" = "yes" ; then
 fi
 if test "$vde" = "yes" ; then
   echo "CONFIG_VDE=y" >> $config_host_mak
+  echo "VDE_LIBS=$vde_libs" >> $config_host_mak
 fi
 if test "$netmap" = "yes" ; then
   echo "CONFIG_NETMAP=y" >> $config_host_mak
diff --git a/net/Makefile.objs b/net/Makefile.objs
index 67ba5e26fb..64adf32f40 100644
--- a/net/Makefile.objs
+++ b/net/Makefile.objs
@@ -21,3 +21,5 @@ tap-obj-$(CONFIG_SOLARIS) = tap-solaris.o
 tap-obj-y ?= tap-stub.o
 common-obj-$(CONFIG_POSIX) += tap.o $(tap-obj-y)
 common-obj-$(CONFIG_WIN32) += tap-win32.o
+
+vde.o-libs = $(VDE_LIBS)
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 15/36] buildsys: Move sdl cflags/libs to per object
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (13 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 14/36] buildsys: Move vde libs to per object Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 16/36] buildsys: Move audio libs " Fam Zheng
                   ` (21 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907082918.7299-3-famz@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 audio/Makefile.objs | 1 +
 configure           | 2 +-
 ui/Makefile.objs    | 1 +
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/audio/Makefile.objs b/audio/Makefile.objs
index 481d1aa30e..c20695668f 100644
--- a/audio/Makefile.objs
+++ b/audio/Makefile.objs
@@ -11,3 +11,4 @@ common-obj-$(CONFIG_AUDIO_WIN_INT) += audio_win_int.o
 common-obj-y += wavcapture.o
 
 sdlaudio.o-cflags := $(SDL_CFLAGS)
+sdlaudio.o-libs := $(SDL_LIBS)
diff --git a/configure b/configure
index 956ab367dc..3675ae816e 100755
--- a/configure
+++ b/configure
@@ -2788,7 +2788,6 @@ EOF
     sdl_cflags="$sdl_cflags $x11_cflags"
     sdl_libs="$sdl_libs $x11_libs"
   fi
-  libs_softmmu="$sdl_libs $libs_softmmu"
 fi
 
 ##########################################
@@ -5557,6 +5556,7 @@ if test "$sdl" = "yes" ; then
   echo "CONFIG_SDL=y" >> $config_host_mak
   echo "CONFIG_SDLABI=$sdlabi" >> $config_host_mak
   echo "SDL_CFLAGS=$sdl_cflags" >> $config_host_mak
+  echo "SDL_LIBS=$sdl_libs" >> $config_host_mak
 fi
 if test "$cocoa" = "yes" ; then
   echo "CONFIG_COCOA=y" >> $config_host_mak
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index 3369451285..ec8533d6d9 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -27,6 +27,7 @@ sdl.mo-objs += sdl2-gl.o
 endif
 endif
 sdl.mo-cflags := $(SDL_CFLAGS)
+sdl.mo-libs := $(SDL_LIBS)
 
 ifeq ($(CONFIG_OPENGL),y)
 common-obj-y += shader.o
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 16/36] buildsys: Move audio libs to per object
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (14 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 15/36] buildsys: Move sdl cflags/libs " Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 17/36] buildsys: Move libcacard cflags/libs " Fam Zheng
                   ` (20 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907082918.7299-5-famz@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 audio/Makefile.objs |  5 +++++
 configure           | 15 ++++++++++-----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/audio/Makefile.objs b/audio/Makefile.objs
index c20695668f..8a5ede6e2b 100644
--- a/audio/Makefile.objs
+++ b/audio/Makefile.objs
@@ -12,3 +12,8 @@ common-obj-y += wavcapture.o
 
 sdlaudio.o-cflags := $(SDL_CFLAGS)
 sdlaudio.o-libs := $(SDL_LIBS)
+alsaaudio.o-libs := $(ALSA_LIBS)
+paaudio.o-libs := $(PULSE_LIBS)
+coreaudio.o-libs := $(COREAUDIO_LIBS)
+dsoundaudio.o-libs := $(DSOUND_LIBS)
+ossaudio.o-libs := $(OSS_LIBS)
diff --git a/configure b/configure
index 3675ae816e..fd544e7b55 100755
--- a/configure
+++ b/configure
@@ -3032,13 +3032,13 @@ for drv in $audio_drv_list; do
     alsa)
     audio_drv_probe $drv alsa/asoundlib.h -lasound \
         "return snd_pcm_close((snd_pcm_t *)0);"
-    libs_softmmu="-lasound $libs_softmmu"
+    alsa_libs="-lasound"
     ;;
 
     pa)
     audio_drv_probe $drv pulse/pulseaudio.h "-lpulse" \
         "pa_context_set_source_output_volume(NULL, 0, NULL, NULL, NULL); return 0;"
-    libs_softmmu="-lpulse $libs_softmmu"
+    pulse_libs="-lpulse"
     audio_pt_int="yes"
     ;;
 
@@ -3049,16 +3049,16 @@ for drv in $audio_drv_list; do
     ;;
 
     coreaudio)
-      libs_softmmu="-framework CoreAudio $libs_softmmu"
+      coreaudio_libs="-framework CoreAudio"
     ;;
 
     dsound)
-      libs_softmmu="-lole32 -ldxguid $libs_softmmu"
+      dsound_libs="-lole32 -ldxguid"
       audio_win_int="yes"
     ;;
 
     oss)
-      libs_softmmu="$oss_lib $libs_softmmu"
+      oss_libs="$oss_lib"
     ;;
 
     wav)
@@ -5512,6 +5512,11 @@ for drv in $audio_drv_list; do
     def=CONFIG_$(echo $drv | LC_ALL=C tr '[a-z]' '[A-Z]')
     echo "$def=y" >> $config_host_mak
 done
+echo "ALSA_LIBS=$alsa_libs" >> $config_host_mak
+echo "PULSE_LIBS=$pulse_libs" >> $config_host_mak
+echo "COREAUDIO_LIBS=$coreaudio_libs" >> $config_host_mak
+echo "DSOUND_LIBS=$dsound_libs" >> $config_host_mak
+echo "OSS_LIBS=$oss_libs" >> $config_host_mak
 if test "$audio_pt_int" = "yes" ; then
   echo "CONFIG_AUDIO_PT_INT=y" >> $config_host_mak
 fi
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 17/36] buildsys: Move libcacard cflags/libs to per object
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (15 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 16/36] buildsys: Move audio libs " Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 18/36] buildsys: Move libusb " Fam Zheng
                   ` (19 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907082918.7299-8-famz@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 configure            | 4 ++--
 hw/usb/Makefile.objs | 6 ++++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/configure b/configure
index fd544e7b55..c5d5f02c08 100755
--- a/configure
+++ b/configure
@@ -4206,8 +4206,6 @@ if test "$smartcard" != "no"; then
     if $pkg_config libcacard; then
         libcacard_cflags=$($pkg_config --cflags libcacard)
         libcacard_libs=$($pkg_config --libs libcacard)
-        QEMU_CFLAGS="$QEMU_CFLAGS $libcacard_cflags"
-        libs_softmmu="$libs_softmmu $libcacard_libs"
         smartcard="yes"
     else
         if test "$smartcard" = "yes"; then
@@ -5785,6 +5783,8 @@ fi
 
 if test "$smartcard" = "yes" ; then
   echo "CONFIG_SMARTCARD=y" >> $config_host_mak
+  echo "SMARTCARD_CFLAGS=$libcacard_cflags" >> $config_host_mak
+  echo "SMARTCARD_LIBS=$libcacard_libs" >> $config_host_mak
 fi
 
 if test "$libusb" = "yes" ; then
diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
index 757e365562..9aceb6cc3d 100644
--- a/hw/usb/Makefile.objs
+++ b/hw/usb/Makefile.objs
@@ -26,8 +26,10 @@ common-obj-$(CONFIG_USB_BLUETOOTH)    += dev-bluetooth.o
 
 ifeq ($(CONFIG_USB_SMARTCARD),y)
 common-obj-y                          += dev-smartcard-reader.o
-common-obj-$(CONFIG_SMARTCARD)        += ccid-card-passthru.o
-common-obj-$(CONFIG_SMARTCARD)        += ccid-card-emulated.o
+common-obj-$(CONFIG_SMARTCARD)        += smartcard.mo
+smartcard.mo-objs := ccid-card-passthru.o ccid-card-emulated.o
+smartcard.mo-cflags := $(SMARTCARD_CFLAGS)
+smartcard.mo-libs := $(SMARTCARD_LIBS)
 endif
 
 ifeq ($(CONFIG_POSIX),y)
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 18/36] buildsys: Move libusb cflags/libs to per object
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (16 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 17/36] buildsys: Move libcacard cflags/libs " Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 19/36] buildsys: Move usb redir " Fam Zheng
                   ` (18 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907082918.7299-9-famz@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 configure            | 4 ++--
 hw/usb/Makefile.objs | 5 +++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index c5d5f02c08..a6204651d5 100755
--- a/configure
+++ b/configure
@@ -4221,8 +4221,6 @@ if test "$libusb" != "no" ; then
         libusb="yes"
         libusb_cflags=$($pkg_config --cflags libusb-1.0)
         libusb_libs=$($pkg_config --libs libusb-1.0)
-        QEMU_CFLAGS="$QEMU_CFLAGS $libusb_cflags"
-        libs_softmmu="$libs_softmmu $libusb_libs"
     else
         if test "$libusb" = "yes"; then
             feature_not_found "libusb" "Install libusb devel >= 1.0.13"
@@ -5789,6 +5787,8 @@ fi
 
 if test "$libusb" = "yes" ; then
   echo "CONFIG_USB_LIBUSB=y" >> $config_host_mak
+  echo "LIBUSB_CFLAGS=$libusb_cflags" >> $config_host_mak
+  echo "LIBUSB_LIBS=$libusb_libs" >> $config_host_mak
 fi
 
 if test "$usb_redir" = "yes" ; then
diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
index 9aceb6cc3d..05afbd36fa 100644
--- a/hw/usb/Makefile.objs
+++ b/hw/usb/Makefile.objs
@@ -46,6 +46,11 @@ else
 common-obj-y += host-stub.o
 endif
 
+host-libusb.o-cflags := $(LIBUSB_CFLAGS)
+host-libusb.o-libs := $(LIBUSB_LIBS)
+
 ifeq ($(CONFIG_USB_LIBUSB),y)
 common-obj-$(CONFIG_XEN) += xen-usb.o
+xen-usb.o-cflags := $(LIBUSB_CFLAGS)
+xen-usb.o-libs := $(LIBUSB_LIBS)
 endif
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 19/36] buildsys: Move usb redir cflags/libs to per object
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (17 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 18/36] buildsys: Move libusb " Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 20/36] buildsys: Move brlapi libs " Fam Zheng
                   ` (17 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907082918.7299-10-famz@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 configure            | 4 ++--
 hw/usb/Makefile.objs | 2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index a6204651d5..d8455d42e1 100755
--- a/configure
+++ b/configure
@@ -4235,8 +4235,6 @@ if test "$usb_redir" != "no" ; then
         usb_redir="yes"
         usb_redir_cflags=$($pkg_config --cflags libusbredirparser-0.5)
         usb_redir_libs=$($pkg_config --libs libusbredirparser-0.5)
-        QEMU_CFLAGS="$QEMU_CFLAGS $usb_redir_cflags"
-        libs_softmmu="$libs_softmmu $usb_redir_libs"
     else
         if test "$usb_redir" = "yes"; then
             feature_not_found "usb-redir" "Install usbredir devel"
@@ -5793,6 +5791,8 @@ fi
 
 if test "$usb_redir" = "yes" ; then
   echo "CONFIG_USB_REDIR=y" >> $config_host_mak
+  echo "USB_REDIR_CFLAGS=$usb_redir_cflags" >> $config_host_mak
+  echo "USB_REDIR_LIBS=$usb_redir_libs" >> $config_host_mak
 fi
 
 if test "$opengl" = "yes" ; then
diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
index 05afbd36fa..9255234c63 100644
--- a/hw/usb/Makefile.objs
+++ b/hw/usb/Makefile.objs
@@ -38,6 +38,8 @@ endif
 
 # usb redirection
 common-obj-$(CONFIG_USB_REDIR) += redirect.o quirks.o
+redirect.o-cflags = $(USB_REDIR_CFLAGS)
+redirect.o-libs = $(USB_REDIR_LIBS)
 
 # usb pass-through
 ifeq ($(CONFIG_LIBUSB)$(CONFIG_USB),yy)
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 20/36] buildsys: Move brlapi libs to per object
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (18 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 19/36] buildsys: Move usb redir " Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 21/36] buildsys: Move rdma " Fam Zheng
                   ` (16 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

baum.o already receives the sdl cflags in its per object variable, do
the same for brlapi libs to avoid cluttering libs_softmmu.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907084700.952-1-famz@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 chardev/Makefile.objs | 1 +
 configure             | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/chardev/Makefile.objs b/chardev/Makefile.objs
index 52a8127606..d68e1347f9 100644
--- a/chardev/Makefile.objs
+++ b/chardev/Makefile.objs
@@ -20,5 +20,6 @@ chardev-obj-$(CONFIG_WIN32) += char-win-stdio.o
 common-obj-y += msmouse.o wctablet.o testdev.o
 common-obj-$(CONFIG_BRLAPI) += baum.o
 baum.o-cflags := $(SDL_CFLAGS)
+baum.o-libs := $(BRLAPI_LIBS)
 
 common-obj-$(CONFIG_SPICE) += spice.o
diff --git a/configure b/configure
index d8455d42e1..9ffebeef2b 100755
--- a/configure
+++ b/configure
@@ -3086,7 +3086,6 @@ int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
 EOF
   if compile_prog "" "$brlapi_libs" ; then
     brlapi=yes
-    libs_softmmu="$brlapi_libs $libs_softmmu"
   else
     if test "$brlapi" = "yes" ; then
       feature_not_found "brlapi" "Install brlapi devel"
@@ -5645,6 +5644,7 @@ if test "$curl" = "yes" ; then
 fi
 if test "$brlapi" = "yes" ; then
   echo "CONFIG_BRLAPI=y" >> $config_host_mak
+  echo "BRLAPI_LIBS=$brlapi_libs" >> $config_host_mak
 fi
 if test "$bluez" = "yes" ; then
   echo "CONFIG_BLUEZ=y" >> $config_host_mak
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 21/36] buildsys: Move rdma libs to per object
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (19 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 20/36] buildsys: Move brlapi libs " Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 22/36] MAINTAINERS: Fix subsystem name for "Build and test automation" Fam Zheng
                   ` (15 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907084230.26493-1-famz@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 configure               | 2 +-
 migration/Makefile.objs | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 9ffebeef2b..84cdb2b0a0 100755
--- a/configure
+++ b/configure
@@ -2800,7 +2800,6 @@ EOF
   rdma_libs="-lrdmacm -libverbs"
   if compile_prog "" "$rdma_libs" ; then
     rdma="yes"
-    libs_softmmu="$libs_softmmu $rdma_libs"
   else
     if test "$rdma" = "yes" ; then
         error_exit \
@@ -5988,6 +5987,7 @@ echo "CONFIG_TRACE_FILE=$trace_file" >> $config_host_mak
 
 if test "$rdma" = "yes" ; then
   echo "CONFIG_RDMA=y" >> $config_host_mak
+  echo "RDMA_LIBS=$rdma_libs" >> $config_host_mak
 fi
 
 if test "$have_rtnetlink" = "yes" ; then
diff --git a/migration/Makefile.objs b/migration/Makefile.objs
index 1c7770da46..99e038024d 100644
--- a/migration/Makefile.objs
+++ b/migration/Makefile.objs
@@ -11,3 +11,4 @@ common-obj-$(CONFIG_RDMA) += rdma.o
 
 common-obj-$(CONFIG_LIVE_BLOCK_MIGRATION) += block.o
 
+rdma.o-libs := $(RDMA_LIBS)
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 22/36] MAINTAINERS: Fix subsystem name for "Build and test automation"
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (20 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 21/36] buildsys: Move rdma " Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 23/36] gitignore: Ignore vm test images Fam Zheng
                   ` (14 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

From: Eduardo Habkost <ehabkost@redhat.com>

The subsystem name for the "Build test automation" section is
"-------------------------", because an actual subsystem name
line is missing:

  $ ./scripts/get_maintainer.pl -f tests/docker/docker.py
  "Alex Bennée" <alex.bennee@linaro.org> (maintainer:-----------------...)
  Fam Zheng <famz@redhat.com> (maintainer:-----------------...)
  "Philippe Mathieu-Daudé" <f4bug@amsat.org> (reviewer:-----------------...)
  qemu-devel@nongnu.org (open list:-----------------...)

Fix the issue by inserting a subsystem name line where
get_maintainer.pl expects it.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Message-Id: <20170921170209.9101-1-ehabkost@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 MAINTAINERS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index e511ba780f..13c1ac65b7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1896,6 +1896,7 @@ F: docs/block-replication.txt
 
 Build and test automation
 -------------------------
+Build and test automation
 M: Alex Bennée <alex.bennee@linaro.org>
 M: Fam Zheng <famz@redhat.com>
 R: Philippe Mathieu-Daudé <f4bug@amsat.org>
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 23/36] gitignore: Ignore vm test images
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (21 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 22/36] MAINTAINERS: Fix subsystem name for "Build and test automation" Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 24/36] qemu.py: Add "wait()" method Fam Zheng
                   ` (13 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 .gitignore       | 1 +
 tests/.gitignore | 1 +
 2 files changed, 2 insertions(+)

diff --git a/.gitignore b/.gitignore
index cf65316863..40acfcb9e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,6 +52,7 @@
 /vscclient
 /vhost-user-scsi
 /fsdev/virtfs-proxy-helper
+*.tmp
 *.[1-9]
 *.a
 *.aux
diff --git a/tests/.gitignore b/tests/.gitignore
index fed0189a5a..cf6d99c91e 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -95,3 +95,4 @@ test-filter-mirror
 test-filter-redirector
 *-test
 qapi-schema/*.test.*
+vm/*.img
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 24/36] qemu.py: Add "wait()" method
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (22 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 23/36] gitignore: Ignore vm test images Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 25/36] scripts: Add archive-source.sh Fam Zheng
                   ` (12 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
---
 scripts/qemu.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/scripts/qemu.py b/scripts/qemu.py
index 5e02dd8e78..2b5c2accb5 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -215,6 +215,13 @@ class QEMUMachine(object):
                 LOG.debug('Output: %r', self._iolog)
             raise
 
+    def wait(self):
+        '''Wait for the VM to power off'''
+        self._popen.wait()
+        self._qmp.close()
+        self._load_io_log()
+        self._post_shutdown()
+
     def shutdown(self):
         '''Terminate the VM and clean up'''
         if self.is_running():
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 25/36] scripts: Add archive-source.sh
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (23 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 24/36] qemu.py: Add "wait()" method Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 26/36] tests: Add a test key pair Fam Zheng
                   ` (11 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 scripts/archive-source.sh | 51 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100755 scripts/archive-source.sh

diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
new file mode 100755
index 0000000000..c4e7d98f4d
--- /dev/null
+++ b/scripts/archive-source.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+#
+# Author: Fam Zheng <famz@redhat.com>
+#
+# Archive source tree, including submodules. This is created for test code to
+# export the source files, in order to be built in a different environment,
+# such as in a docker instance or VM.
+#
+# This code is licensed under the GPL version 2 or later.  See
+# the COPYING file in the top-level directory.
+
+error() {
+    printf %s\\n "$*" >&2
+    exit 1
+}
+
+if test $# -lt 1; then
+    error "Usage: $0 <output tarball>"
+fi
+
+tar_file="$1"
+list_file="$1.list"
+submodules=$(git submodule foreach --recursive --quiet 'echo $name')
+
+if test $? -ne 0; then
+    error "git submodule command failed"
+fi
+
+trap "status=$?; rm -f \"$list_file\"; exit \$status" 0 1 2 3 15
+
+if test -n "$submodules"; then
+    {
+        git ls-files || error "git ls-files failed"
+        for sm in $submodules; do
+            (cd $sm; git ls-files) | sed "s:^:$sm/:"
+            if test "${PIPESTATUS[*]}" != "0 0"; then
+                error "git ls-files in submodule $sm failed"
+            fi
+        done
+    } | grep -x -v $(for sm in $submodules; do echo "-e $sm"; done) > "$list_file"
+else
+    git ls-files > "$list_file"
+fi
+
+if test $? -ne 0; then
+    error "failed to generate list file"
+fi
+
+tar -cf "$tar_file" -T "$list_file" || error "failed to create tar file"
+
+exit 0
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 26/36] tests: Add a test key pair
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (24 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 25/36] scripts: Add archive-source.sh Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 27/36] tests: Add vm test lib Fam Zheng
                   ` (10 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

This will be used by setup test user ssh.

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 tests/keys/README     |  6 ++++++
 tests/keys/id_rsa     | 27 +++++++++++++++++++++++++++
 tests/keys/id_rsa.pub |  1 +
 3 files changed, 34 insertions(+)
 create mode 100644 tests/keys/README
 create mode 100644 tests/keys/id_rsa
 create mode 100644 tests/keys/id_rsa.pub

diff --git a/tests/keys/README b/tests/keys/README
new file mode 100644
index 0000000000..b995268f06
--- /dev/null
+++ b/tests/keys/README
@@ -0,0 +1,6 @@
+This folder contains a well-known ssh key pair used in QEMU tests.
+
+Some guests require the key to exist prior to provisioning the guest; also,
+reusing a pre-built key avoids consuming entropy every time the testsuite is
+run.  Because the private key is well-known, care must be taken to use the key
+ONLY in situations that cannot be compromised by external network clients.
diff --git a/tests/keys/id_rsa b/tests/keys/id_rsa
new file mode 100644
index 0000000000..2933eac3db
--- /dev/null
+++ b/tests/keys/id_rsa
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAopAuOlmLV6LVHdFBj8/eeOwI9CqguIJPp7eAQSZvOiB4Ag/R
+coEhl/RBbrV5Yc/SmSD4PTpJO/iM10RwliNjDb4a3I8q3sykRJu9c9PI/YsH8WN9
++NH2NjKPtJIcKTu287IM5JYxyB6nDoOzILbTyJ1TDR/xH6qYEfBAyiblggdjcvhA
+RTf93QIn39F/xLypXvT1K2O9BJEsnJ8lEUvB2UXhKo/JTfSeZF8wPBeowaP9EONk
+7b+nuJOWHGg68Ji6wVi62tjwl2Szch6lxIhZBpnV7QNRKMfYHP6eIyF4pusazzZq
+Telsq6xI2ghecWLzb/MF5A+rklsGx2FNuJSAJwIDAQABAoIBAHHi4o/8VZNivz0x
+cWXn8erzKV6tUoWQvW85Lj/2RiwJvSlsnYZDkx5af1CpEE2HA/pFT8PNRqsd+MWC
+7AEy710cVsM4BYerBFYQaYxwzblaoojo88LSjVPw3h5Z0iLM8+IMVd36nwuc9dpE
+R8TecMZ1+U4Tl6BgqkK+9xToZRdPKdjS8L5MoFhGN+xY0vRbbJbGaV9Q0IHxLBkB
+rEBV7T1mUynneCHRUQlJQEwJmKpT8MH3IjsUXlG5YvnuuvcQJSNTaW2iDLxuOKp8
+cxW8+qL88zpb1D5dppoIu6rlrugN0azSq70ruFJQPc/A8GQrDKoGgRQiagxNY3u+
+vHZzXlECgYEA0dKO3gfkSxsDBb94sQwskMScqLhcKhztEa8kPxTx6Yqh+x8/scx3
+XhJyOt669P8U1v8a/2Al+s81oZzzfQSzO1Q7gEwSrgBcRMSIoRBUw9uYcy02ngb/
+j/ng3DGivfJztjjiSJwb46FHkJ2JR8mF2UisC6UMXk3NgFY/3vWQx78CgYEAxlcG
+T3hfSWSmTgKRczMJuHQOX9ULfTBIqwP5VqkkkiavzigGRirzb5lgnmuTSPTpF0LB
+XVPjR2M4q+7gzP0Dca3pocrvLEoxjwIKnCbYKnyyvnUoE9qHv4Kr+vDbgWpa2LXG
+JbLmE7tgTCIp20jOPPT4xuDvlbzQZBJ5qCQSoZkCgYEAgrotSSihlCnAOFSTXbu4
+CHp3IKe8xIBBNENq0eK61kcJpOxTQvOha3sSsJsU4JAM6+cFaxb8kseHIqonCj1j
+bhOM/uJmwQJ4el/4wGDsbxriYOBKpyq1D38gGhDS1IW6kk3erl6VAb36WJ/OaGum
+eTpN9vNeQWM4Jj2WjdNx4QECgYAwTdd6mU1TmZCrJRL5ZG+0nYc2rbMrnQvFoqUi
+BvWiJovggHzur90zy73tNzPaq9Ls2FQxf5G1vCN8NCRJqEEjeYCR59OSDMu/EXc2
+CnvQ9SevHOdS1oEDEjcCWZCMFzPi3XpRih1gptzQDe31uuiHjf3cqcGPzTlPdfRt
+D8P92QKBgC4UaBvIRwREVJsdZzpIzm224Bpe8LOmA7DeTnjlT0b3lkGiBJ36/Q0p
+VhYh/6cjX4/iuIs7gJbGon7B+YPB8scmOi3fj0+nkJAONue1mMfBNkba6qQTc6Y2
+5mEKw2/O7/JpND7ucU3OK9plcw/qnrWDgHxl0Iz95+OzUIIagxne
+-----END RSA PRIVATE KEY-----
diff --git a/tests/keys/id_rsa.pub b/tests/keys/id_rsa.pub
new file mode 100644
index 0000000000..b5ec6d4712
--- /dev/null
+++ b/tests/keys/id_rsa.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCikC46WYtXotUd0UGPz9547Aj0KqC4gk+nt4BBJm86IHgCD9FygSGX9EFutXlhz9KZIPg9Okk7+IzXRHCWI2MNvhrcjyrezKREm71z08j9iwfxY3340fY2Mo+0khwpO7bzsgzkljHIHqcOg7MgttPInVMNH/EfqpgR8EDKJuWCB2Ny+EBFN/3dAiff0X/EvKle9PUrY70EkSycnyURS8HZReEqj8lN9J5kXzA8F6jBo/0Q42Ttv6e4k5YcaDrwmLrBWLra2PCXZLNyHqXEiFkGmdXtA1Eox9gc/p4jIXim6xrPNmpN6WyrrEjaCF5xYvNv8wXkD6uSWwbHYU24lIAn well-known key for qemu-test, do not use on any machine exposed to an external network
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 27/36] tests: Add vm test lib
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (25 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 26/36] tests: Add a test key pair Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 28/36] tests: Add ubuntu.i386 image Fam Zheng
                   ` (9 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

This is the common code to implement a "VM test" to

  1) Download and initialize a pre-defined VM that has necessary
  dependencies to build QEMU and SSH access.

  2) Archive $SRC_PATH to a .tar file.

  3) Boot the VM, and pass the source tar file to the guest.

  4) SSH into the VM, untar the source tarball, build from the source.

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/vm/basevm.py | 262 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 262 insertions(+)
 create mode 100755 tests/vm/basevm.py

diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
new file mode 100755
index 0000000000..3c863bc237
--- /dev/null
+++ b/tests/vm/basevm.py
@@ -0,0 +1,262 @@
+#!/usr/bin/env python
+#
+# VM testing base class
+#
+# Copyright 2017 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This code is licensed under the GPL version 2 or later.  See
+# the COPYING file in the top-level directory.
+#
+
+import os
+import sys
+import logging
+import time
+import datetime
+sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "scripts"))
+from qemu import QEMUMachine
+import subprocess
+import hashlib
+import optparse
+import atexit
+import tempfile
+import shutil
+import multiprocessing
+import traceback
+
+SSH_KEY = open(os.path.join(os.path.dirname(__file__),
+               "..", "keys", "id_rsa")).read()
+SSH_PUB_KEY = open(os.path.join(os.path.dirname(__file__),
+                   "..", "keys", "id_rsa.pub")).read()
+
+class BaseVM(object):
+    GUEST_USER = "qemu"
+    GUEST_PASS = "qemupass"
+    ROOT_PASS = "qemupass"
+
+    # The script to run in the guest that builds QEMU
+    BUILD_SCRIPT = ""
+    # The guest name, to be overridden by subclasses
+    name = "#base"
+    def __init__(self, debug=False, vcpus=None):
+        self._guest = None
+        self._tmpdir = os.path.realpath(tempfile.mkdtemp(prefix="vm-test-",
+                                                         suffix=".tmp",
+                                                         dir="."))
+        atexit.register(shutil.rmtree, self._tmpdir)
+
+        self._ssh_key_file = os.path.join(self._tmpdir, "id_rsa")
+        open(self._ssh_key_file, "w").write(SSH_KEY)
+        subprocess.check_call(["chmod", "600", self._ssh_key_file])
+
+        self._ssh_pub_key_file = os.path.join(self._tmpdir, "id_rsa.pub")
+        open(self._ssh_pub_key_file, "w").write(SSH_PUB_KEY)
+
+        self.debug = debug
+        self._stderr = sys.stderr
+        self._devnull = open(os.devnull, "w")
+        if self.debug:
+            self._stdout = sys.stdout
+        else:
+            self._stdout = self._devnull
+        self._args = [ \
+            "-nodefaults", "-m", "2G",
+            "-cpu", "host",
+            "-netdev", "user,id=vnet,hostfwd=:127.0.0.1:0-:22",
+            "-device", "virtio-net-pci,netdev=vnet",
+            "-vnc", "127.0.0.1:0,to=20",
+            "-serial", "file:%s" % os.path.join(self._tmpdir, "serial.out")]
+        if vcpus:
+            self._args += ["-smp", str(vcpus)]
+        if os.access("/dev/kvm", os.R_OK | os.W_OK):
+            self._args += ["-enable-kvm"]
+        else:
+            logging.info("KVM not available, not using -enable-kvm")
+        self._data_args = []
+
+    def _download_with_cache(self, url, sha256sum=None):
+        def check_sha256sum(fname):
+            if not sha256sum:
+                return True
+            checksum = subprocess.check_output(["sha256sum", fname]).split()[0]
+            return sha256sum == checksum
+
+        cache_dir = os.path.expanduser("~/.cache/qemu-vm/download")
+        if not os.path.exists(cache_dir):
+            os.makedirs(cache_dir)
+        fname = os.path.join(cache_dir, hashlib.sha1(url).hexdigest())
+        if os.path.exists(fname) and check_sha256sum(fname):
+            return fname
+        logging.debug("Downloading %s to %s...", url, fname)
+        subprocess.check_call(["wget", "-c", url, "-O", fname + ".download"],
+                              stdout=self._stdout, stderr=self._stderr)
+        os.rename(fname + ".download", fname)
+        return fname
+
+    def _ssh_do(self, user, cmd, check, interactive=False):
+        ssh_cmd = ["ssh", "-q",
+                   "-o", "StrictHostKeyChecking=no",
+                   "-o", "UserKnownHostsFile=" + os.devnull,
+                   "-o", "ConnectTimeout=1",
+                   "-p", self.ssh_port, "-i", self._ssh_key_file]
+        if interactive:
+            ssh_cmd += ['-t']
+        assert not isinstance(cmd, str)
+        ssh_cmd += ["%s@127.0.0.1" % user] + list(cmd)
+        logging.debug("ssh_cmd: %s", " ".join(ssh_cmd))
+        r = subprocess.call(ssh_cmd,
+                            stdin=sys.stdin if interactive else self._devnull,
+                            stdout=sys.stdout if interactive else self._stdout,
+                            stderr=sys.stderr if interactive else self._stderr)
+        if check and r != 0:
+            raise Exception("SSH command failed: %s" % cmd)
+        return r
+
+    def ssh(self, *cmd):
+        return self._ssh_do(self.GUEST_USER, cmd, False)
+
+    def ssh_interactive(self, *cmd):
+        return self._ssh_do(self.GUEST_USER, cmd, False, True)
+
+    def ssh_root(self, *cmd):
+        return self._ssh_do("root", cmd, False)
+
+    def ssh_check(self, *cmd):
+        self._ssh_do(self.GUEST_USER, cmd, True)
+
+    def ssh_root_check(self, *cmd):
+        self._ssh_do("root", cmd, True)
+
+    def build_image(self, img):
+        raise NotImplementedError
+
+    def add_source_dir(self, src_dir):
+        name = "data-" + hashlib.sha1(src_dir).hexdigest()[:5]
+        tarfile = os.path.join(self._tmpdir, name + ".tar")
+        logging.debug("Creating archive %s for src_dir dir: %s", tarfile, src_dir)
+        subprocess.check_call(["./scripts/archive-source.sh", tarfile],
+                              cwd=src_dir, stdin=self._devnull,
+                              stdout=self._stdout, stderr=self._stderr)
+        self._data_args += ["-drive",
+                            "file=%s,if=none,id=%s,cache=writeback,format=raw" % \
+                                    (tarfile, name),
+                            "-device",
+                            "virtio-blk,drive=%s,serial=%s,bootindex=1" % (name, name)]
+
+    def boot(self, img, extra_args=[]):
+        args = self._args + [
+            "-device", "VGA",
+            "-drive", "file=%s,if=none,id=drive0,cache=writeback" % img,
+            "-device", "virtio-blk,drive=drive0,bootindex=0"]
+        args += self._data_args + extra_args
+        logging.debug("QEMU args: %s", " ".join(args))
+        qemu_bin = os.environ.get("QEMU", "qemu-system-x86_64")
+        guest = QEMUMachine(binary=qemu_bin, args=args)
+        try:
+            guest.launch()
+        except:
+            logging.error("Failed to launch QEMU, command line:")
+            logging.error(" ".join([qemu_bin] + args))
+            logging.error("Log:")
+            logging.error(guest.get_log())
+            logging.error("QEMU version >= 2.10 is required")
+            raise
+        atexit.register(self.shutdown)
+        self._guest = guest
+        usernet_info = guest.qmp("human-monitor-command",
+                                 command_line="info usernet")
+        self.ssh_port = None
+        for l in usernet_info["return"].splitlines():
+            fields = l.split()
+            if "TCP[HOST_FORWARD]" in fields and "22" in fields:
+                self.ssh_port = l.split()[3]
+        if not self.ssh_port:
+            raise Exception("Cannot find ssh port from 'info usernet':\n%s" % \
+                            usernet_info)
+
+    def wait_ssh(self, seconds=120):
+        starttime = datetime.datetime.now()
+        guest_up = False
+        while (datetime.datetime.now() - starttime).total_seconds() < seconds:
+            if self.ssh("exit 0") == 0:
+                guest_up = True
+                break
+            time.sleep(1)
+        if not guest_up:
+            raise Exception("Timeout while waiting for guest ssh")
+
+    def shutdown(self):
+        self._guest.shutdown()
+
+    def wait(self):
+        self._guest.wait()
+
+    def qmp(self, *args, **kwargs):
+        return self._guest.qmp(*args, **kwargs)
+
+def parse_args(vm_name):
+    parser = optparse.OptionParser(
+        description="VM test utility.  Exit codes: "
+                    "0 = success, "
+                    "1 = command line error, "
+                    "2 = environment initialization failed, "
+                    "3 = test command failed")
+    parser.add_option("--debug", "-D", action="store_true",
+                      help="enable debug output")
+    parser.add_option("--image", "-i", default="%s.img" % vm_name,
+                      help="image file name")
+    parser.add_option("--force", "-f", action="store_true",
+                      help="force build image even if image exists")
+    parser.add_option("--jobs", type=int, default=multiprocessing.cpu_count() / 2,
+                      help="number of virtual CPUs")
+    parser.add_option("--build-image", "-b", action="store_true",
+                      help="build image")
+    parser.add_option("--build-qemu",
+                      help="build QEMU from source in guest")
+    parser.add_option("--interactive", "-I", action="store_true",
+                      help="Interactively run command")
+    parser.disable_interspersed_args()
+    return parser.parse_args()
+
+def main(vmcls):
+    try:
+        args, argv = parse_args(vmcls.name)
+        if not argv and not args.build_qemu and not args.build_image:
+            print "Nothing to do?"
+            return 1
+        if args.debug:
+            logging.getLogger().setLevel(logging.DEBUG)
+        vm = vmcls(debug=args.debug, vcpus=args.jobs)
+        if args.build_image:
+            if os.path.exists(args.image) and not args.force:
+                sys.stderr.writelines(["Image file exists: %s\n" % args.image,
+                                      "Use --force option to overwrite\n"])
+                return 1
+            return vm.build_image(args.image)
+        if args.build_qemu:
+            vm.add_source_dir(args.build_qemu)
+            cmd = [vm.BUILD_SCRIPT.format(
+                   configure_opts = " ".join(argv),
+                   jobs=args.jobs)]
+        else:
+            cmd = argv
+        vm.boot(args.image + ",snapshot=on")
+        vm.wait_ssh()
+    except Exception as e:
+        if isinstance(e, SystemExit) and e.code == 0:
+            return 0
+        sys.stderr.write("Failed to prepare guest environment\n")
+        traceback.print_exc()
+        return 2
+
+    if args.interactive:
+        if vm.ssh_interactive(*cmd) == 0:
+            return 0
+        vm.ssh_interactive()
+        return 3
+    else:
+        if vm.ssh(*cmd) != 0:
+            return 3
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 28/36] tests: Add ubuntu.i386 image
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (26 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 27/36] tests: Add vm test lib Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 29/36] tests: Add FreeBSD image Fam Zheng
                   ` (8 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

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 | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 89 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..fc319e0e6e
--- /dev/null
+++ b/tests/vm/ubuntu.i386
@@ -0,0 +1,89 @@
+#!/usr/bin/env python
+#
+# Ubuntu i386 image
+#
+# Copyright 2017 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This code is licensed under the GPL version 2 or later.  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,
+                          "locale: en_US.UTF-8\n"])
+        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()])
+        self.wait_ssh()
+        self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
+        self.ssh_root_check("apt-get update")
+        self.ssh_root_check("apt-get install -y cloud-initramfs-growroot")
+        # Don't check the status in case the guest hang up too quickly
+        self.ssh_root("sync && reboot")
+        time.sleep(5)
+        self.wait_ssh()
+        # The previous update sometimes doesn't survive a reboot, so do it again
+        self.ssh_root_check("apt-get update")
+        self.ssh_root_check("apt-get build-dep -y qemu")
+        self.ssh_root_check("apt-get install -y libfdt-dev")
+        self.ssh_root("poweroff")
+        self.wait()
+        if os.path.exists(img):
+            os.remove(img)
+        os.rename(img_tmp, img)
+        return 0
+
+if __name__ == "__main__":
+    sys.exit(basevm.main(UbuntuX86VM))
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 29/36] tests: Add FreeBSD image
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (27 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 28/36] tests: Add ubuntu.i386 image Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 30/36] tests: Add NetBSD image Fam Zheng
                   ` (7 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The image is prepared following instructions as in:

https://wiki.qemu.org/Hosts/BSD

Signed-off-by: Fam Zheng <famz@redhat.com>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/vm/freebsd | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100755 tests/vm/freebsd

diff --git a/tests/vm/freebsd b/tests/vm/freebsd
new file mode 100755
index 0000000000..039dad8f69
--- /dev/null
+++ b/tests/vm/freebsd
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+#
+# FreeBSD VM image
+#
+# Copyright 2017 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This code is licensed under the GPL version 2 or later.  See
+# the COPYING file in the top-level directory.
+#
+
+import os
+import sys
+import subprocess
+import basevm
+
+class FreeBSDVM(basevm.BaseVM):
+    name = "freebsd"
+    BUILD_SCRIPT = """
+        set -e;
+        cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
+        tar -xf /dev/vtbd1;
+        ./configure {configure_opts};
+        gmake -j{jobs};
+        gmake check;
+    """
+
+    def build_image(self, img):
+        cimg = self._download_with_cache("http://download.patchew.org/freebsd-11.1-amd64.img.xz",
+                sha256sum='adcb771549b37bc63826c501f05121a206ed3d9f55f49145908f7e1432d65891')
+        img_tmp_xz = img + ".tmp.xz"
+        img_tmp = img + ".tmp"
+        subprocess.check_call(["cp", "-f", cimg, img_tmp_xz])
+        subprocess.check_call(["xz", "-df", img_tmp_xz])
+        if os.path.exists(img):
+            os.remove(img)
+        os.rename(img_tmp, img)
+
+if __name__ == "__main__":
+    sys.exit(basevm.main(FreeBSDVM))
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 30/36] tests: Add NetBSD image
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (28 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 29/36] tests: Add FreeBSD image Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 31/36] tests: Add OpenBSD image Fam Zheng
                   ` (6 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The image is prepared following instructions as in:

https://wiki.qemu.org/Hosts/BSD

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Kamil Rytarowski <n54@gmx.com>
---
 tests/vm/netbsd | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100755 tests/vm/netbsd

diff --git a/tests/vm/netbsd b/tests/vm/netbsd
new file mode 100755
index 0000000000..3972d8b45c
--- /dev/null
+++ b/tests/vm/netbsd
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+#
+# NetBSD VM image
+#
+# Copyright 2017 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This code is licensed under the GPL version 2 or later.  See
+# the COPYING file in the top-level directory.
+#
+
+import os
+import sys
+import subprocess
+import basevm
+
+class NetBSDVM(basevm.BaseVM):
+    name = "netbsd"
+    BUILD_SCRIPT = """
+        set -e;
+        cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
+        tar -xf /dev/rld1a;
+        ./configure --python=python2.7 {configure_opts};
+        gmake -j{jobs};
+        gmake check;
+    """
+
+    def build_image(self, img):
+        cimg = self._download_with_cache("http://download.patchew.org/netbsd-7.1-amd64.img.xz",
+                                         sha256sum='b633d565b0eac3d02015cd0c81440bd8a7a8df8512615ac1ee05d318be015732')
+        img_tmp_xz = img + ".tmp.xz"
+        img_tmp = img + ".tmp"
+        subprocess.check_call(["cp", "-f", cimg, img_tmp_xz])
+        subprocess.check_call(["xz", "-df", img_tmp_xz])
+        if os.path.exists(img):
+            os.remove(img)
+        os.rename(img_tmp, img)
+
+if __name__ == "__main__":
+    sys.exit(basevm.main(NetBSDVM))
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 31/36] tests: Add OpenBSD image
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (29 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 30/36] tests: Add NetBSD image Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 32/36] Makefile: Add rules to run vm tests Fam Zheng
                   ` (5 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The image is prepared following instructions as in:

https://wiki.qemu.org/Hosts/BSD

Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/vm/openbsd | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100755 tests/vm/openbsd

diff --git a/tests/vm/openbsd b/tests/vm/openbsd
new file mode 100755
index 0000000000..6ae16d97fd
--- /dev/null
+++ b/tests/vm/openbsd
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+#
+# OpenBSD VM image
+#
+# Copyright 2017 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This code is licensed under the GPL version 2 or later.  See
+# the COPYING file in the top-level directory.
+#
+
+import os
+import sys
+import subprocess
+import basevm
+
+class OpenBSDVM(basevm.BaseVM):
+    name = "openbsd"
+    BUILD_SCRIPT = """
+        set -e;
+        cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
+        tar -xf /dev/rsd1c;
+        ./configure --cc=x86_64-unknown-openbsd6.1-gcc-4.9.4 --python=python2.7 {configure_opts};
+        gmake -j{jobs};
+        # XXX: "gmake check" seems to always hang or fail
+        #gmake check;
+    """
+
+    def build_image(self, img):
+        cimg = self._download_with_cache("http://download.patchew.org/openbsd-6.1-amd64.img.xz",
+                sha256sum='8c6cedc483e602cfee5e04f0406c64eb99138495e8ca580bc0293bcf0640c1bf')
+        img_tmp_xz = img + ".tmp.xz"
+        img_tmp = img + ".tmp"
+        subprocess.check_call(["cp", "-f", cimg, img_tmp_xz])
+        subprocess.check_call(["xz", "-df", img_tmp_xz])
+        if os.path.exists(img):
+            os.remove(img)
+        os.rename(img_tmp, img)
+
+if __name__ == "__main__":
+    sys.exit(basevm.main(OpenBSDVM))
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 32/36] Makefile: Add rules to run vm tests
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (30 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 31/36] tests: Add OpenBSD image Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 33/36] MAINTAINERS: Add tests/vm entry Fam Zheng
                   ` (4 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 Makefile                  |  2 ++
 configure                 |  2 +-
 tests/vm/Makefile.include | 42 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 45 insertions(+), 1 deletion(-)
 create mode 100644 tests/vm/Makefile.include

diff --git a/Makefile b/Makefile
index eb831b98d1..d1501a07ee 100644
--- a/Makefile
+++ b/Makefile
@@ -811,6 +811,7 @@ endif
 -include $(wildcard *.d tests/*.d)
 
 include $(SRC_PATH)/tests/docker/Makefile.include
+include $(SRC_PATH)/tests/vm/Makefile.include
 
 .PHONY: help
 help:
@@ -834,6 +835,7 @@ help:
 	@echo  'Test targets:'
 	@echo  '  check           - Run all tests (check-help for details)'
 	@echo  '  docker          - Help about targets running tests inside Docker containers'
+	@echo  '  vm-test         - Help about targets running tests inside VM'
 	@echo  ''
 	@echo  'Documentation targets:'
 	@echo  '  html info pdf txt'
diff --git a/configure b/configure
index 84cdb2b0a0..f4bbc2ca21 100755
--- a/configure
+++ b/configure
@@ -6509,7 +6509,7 @@ if test "$ccache_cpp2" = "yes"; then
 fi
 
 # build tree in object directory in case the source is not in the current directory
-DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32 tests/libqos tests/qapi-schema tests/tcg/xtensa tests/qemu-iotests"
+DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32 tests/libqos tests/qapi-schema tests/tcg/xtensa tests/qemu-iotests tests/vm"
 DIRS="$DIRS docs docs/interop fsdev"
 DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas pc-bios/s390-ccw"
 DIRS="$DIRS roms/seabios roms/vgabios"
diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
new file mode 100644
index 0000000000..5daa2a3b73
--- /dev/null
+++ b/tests/vm/Makefile.include
@@ -0,0 +1,42 @@
+# Makefile for VM tests
+
+.PHONY: vm-build-all
+
+IMAGES := ubuntu.i386 freebsd netbsd openbsd
+IMAGE_FILES := $(patsubst %, tests/vm/%.img, $(IMAGES))
+
+.PRECIOUS: $(IMAGE_FILES)
+
+vm-test:
+	@echo "vm-test: Test QEMU in preconfigured virtual machines"
+	@echo
+	@echo "  vm-build-ubuntu.i386            - Build QEMU in ubuntu i386 VM"
+	@echo "  vm-build-freebsd                - Build QEMU in FreeBSD VM"
+	@echo "  vm-build-netbsd                 - Build QEMU in NetBSD VM"
+	@echo "  vm-build-openbsd                - Build QEMU in OpenBSD VM"
+
+vm-build-all: $(addprefix vm-build-, $(IMAGES))
+
+tests/vm/%.img: $(SRC_PATH)/tests/vm/% \
+		$(SRC_PATH)/tests/vm/basevm.py \
+		$(SRC_PATH)/tests/vm/Makefile.include
+	$(call quiet-command, \
+		$< \
+		$(if $(V)$(DEBUG), --debug) \
+		--image "$@" \
+		--force \
+		--build-image $@, \
+		"  VM-IMAGE $*")
+
+
+# Build in VM $(IMAGE)
+vm-build-%: tests/vm/%.img
+	$(call quiet-command, \
+		$(SRC_PATH)/tests/vm/$* \
+		$(if $(V)$(DEBUG), --debug) \
+		$(if $(DEBUG), --interactive) \
+		$(if $(J),--jobs $(J)) \
+		--image "$<" \
+		--build-qemu $(SRC_PATH), \
+		"  VM-BUILD $*")
+
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 33/36] MAINTAINERS: Add tests/vm entry
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (31 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 32/36] Makefile: Add rules to run vm tests Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 34/36] tests: Add README for vm tests Fam Zheng
                   ` (3 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 MAINTAINERS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 13c1ac65b7..762e37bfd6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1905,6 +1905,7 @@ S: Maintained
 F: .travis.yml
 F: .shippable.yml
 F: tests/docker/
+F: tests/vm/
 W: https://travis-ci.org/qemu/qemu
 W: https://app.shippable.com/github/qemu/qemu
 W: http://patchew.org/QEMU/
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 34/36] tests: Add README for vm tests
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (32 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 33/36] MAINTAINERS: Add tests/vm entry Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 35/36] docker: Use archive-source.py Fam Zheng
                   ` (2 subsequent siblings)
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/vm/README | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 89 insertions(+)
 create mode 100644 tests/vm/README

diff --git a/tests/vm/README b/tests/vm/README
new file mode 100644
index 0000000000..ae53dce6ee
--- /dev/null
+++ b/tests/vm/README
@@ -0,0 +1,89 @@
+=== VM test suite to run build in guests ===
+
+== Intro ==
+
+This test suite contains scripts that bootstrap various guest images that have
+necessary packages to build QEMU. The basic usage is documented in Makefile
+help which is displayed with "make vm-test".
+
+== Quick start ==
+
+Run "make vm-test" to list available make targets. Invoke a specific make
+command to run build test in an image. For example, "make vm-build-freebsd"
+will build the source tree in the FreeBSD image. The command can be executed
+from either the source tree or the build dir; if the former, ./configure is not
+needed. The command will then generate the test image in ./tests/vm/ under the
+working directory.
+
+Note: images created by the scripts accept a well-known RSA key pair for SSH
+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 ==
+
+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+.
+
+== Make jobs ==
+
+The "-j$X" option in the make command line is not propagated into the VM,
+specify "J=$X" to control the make jobs in the guest.
+
+== Debugging ==
+
+Add "DEBUG=1" and/or "V=1" to the make command to allow interactive debugging
+and verbose output. If this is not enough, see the next section.
+
+== Manual invocation ==
+
+Each guest script is an executable script with the same command line options.
+For example to work with the netbsd guest, use $QEMU_SRC/tests/vm/netbsd:
+
+    $ cd $QEMU_SRC/tests/vm
+
+    # To bootstrap the image
+    $ ./netbsd --build-image --image /var/tmp/netbsd.img
+    <...>
+
+    # To run an arbitrary command in guest (the output will not be echoed unless
+    # --debug is added)
+    $ ./netbsd --debug --image /var/tmp/netbsd.img uname -a
+
+    # To build QEMU in guest
+    $ ./netbsd --debug --image /var/tmp/netbsd.img --build-qemu $QEMU_SRC
+
+    # To get to an interactive shell
+    $ ./netbsd --interactive --image /var/tmp/netbsd.img sh
+
+== Adding new guests ==
+
+Please look at existing guest scripts for how to add new guests.
+
+Most importantly, create a subclass of BaseVM and implement build_image()
+method and define BUILD_SCRIPT, then finally call basevm.main() from the
+script's main().
+
+  - Usually in build_image(), a template image is downloaded from a predefined
+    URL. BaseVM._download_with_cache() takes care of the cache and the
+    checksum, so consider using it.
+
+  - Once the image is downloaded, users, SSH server and QEMU build deps should
+    be set up:
+
+    * Root password set to BaseVM.ROOT_PASS
+    * User BaseVM.GUEST_USER is created, and password set to BaseVM.GUEST_PASS
+    * SSH service is enabled and started on boot,
+      $QEMU_SRC/tests/keys/id_rsa.pub is added to ssh's "authorized_keys" file
+      of both root and the normal user
+    * DHCP client service is enabled and started on boot, so that it can
+      automatically configure the virtio-net-pci NIC and communicate with QEMU
+      user net (10.0.2.2)
+    * Necessary packages are installed to untar the source tarball and build
+      QEMU
+
+  - Write a proper BUILD_SCRIPT template, which should be a shell script that
+    untars a raw virtio-blk block device, which is the tarball data blob of the
+    QEMU source tree, then configure/build it. Running "make check" is also
+    recommended.
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 35/36] docker: Use archive-source.py
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (33 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 34/36] tests: Add README for vm tests Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22  7:46 ` [Qemu-devel] [PULL 36/36] docker: Drop 'set -e' from run script Fam Zheng
  2017-09-22 11:55 ` [Qemu-devel] [PULL v5 00/36] Build and test automation patches Peter Maydell
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/Makefile.include | 14 ++------------
 tests/docker/run              |  8 +-------
 2 files changed, 3 insertions(+), 19 deletions(-)

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 2bed4c0e00..0e4f159619 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -17,23 +17,13 @@ DOCKER_TOOLS := travis
 TESTS ?= %
 IMAGES ?= %
 
-# Make archive from git repo $1 to tar.gz $2
-make-archive-maybe = $(if $(wildcard $1/*), \
-	$(call quiet-command, \
-		(cd $1; if git diff-index --quiet HEAD -- &>/dev/null; then \
-			git archive -1 HEAD --format=tar.gz; \
-		else \
-			git archive -1 $$(git stash create) --format=tar.gz; \
-		fi) > $2, \
-		"ARCHIVE","$(notdir $2)"))
-
 CUR_TIME := $(shell date +%Y-%m-%d-%H.%M.%S.$$$$)
 DOCKER_SRC_COPY := docker-src.$(CUR_TIME)
 
 $(DOCKER_SRC_COPY):
 	@mkdir $@
-	$(call make-archive-maybe, $(SRC_PATH), $@/qemu.tgz)
-	$(call make-archive-maybe, $(SRC_PATH)/dtc, $@/dtc.tgz)
+	$(call quiet-command, $(SRC_PATH)/scripts/archive-source.sh $@/qemu.tar, \
+		"GEN", "$@/qemu.tar")
 	$(call quiet-command, cp $(SRC_PATH)/tests/docker/run $@/run, \
 		"COPY","RUNNER")
 
diff --git a/tests/docker/run b/tests/docker/run
index ec2541cbd9..52b76e443d 100755
--- a/tests/docker/run
+++ b/tests/docker/run
@@ -32,13 +32,7 @@ export TEST_DIR=/tmp/qemu-test
 mkdir -p $TEST_DIR/{src,build,install}
 
 # Extract the source tarballs
-tar -C $TEST_DIR/src -xzf $BASE/qemu.tgz
-for p in dtc pixman; do
-    if test -f $BASE/$p.tgz; then
-        tar -C $TEST_DIR/src/$p -xzf $BASE/$p.tgz
-        export FEATURES="$FEATURES $p"
-    fi
-done
+tar -C $TEST_DIR/src -xf $BASE/qemu.tar
 
 if test -n "$SHOW_ENV"; then
     if test -f /packages.txt; then
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Qemu-devel] [PULL 36/36] docker: Drop 'set -e' from run script
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (34 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 35/36] docker: Use archive-source.py Fam Zheng
@ 2017-09-22  7:46 ` Fam Zheng
  2017-09-22 11:55 ` [Qemu-devel] [PULL v5 00/36] Build and test automation patches Peter Maydell
  36 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-09-22  7:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/run | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/tests/docker/run b/tests/docker/run
index 52b76e443d..c8f940de15 100755
--- a/tests/docker/run
+++ b/tests/docker/run
@@ -1,4 +1,4 @@
-#!/bin/bash -e
+#!/bin/bash
 #
 # Docker test runner
 #
@@ -11,8 +11,6 @@
 # or (at your option) any later version. See the COPYING file in
 # the top-level directory.
 
-set -e
-
 if test -n "$V"; then
     set -x
 fi
@@ -20,7 +18,7 @@ fi
 BASE="$(dirname $(readlink -e $0))"
 
 # Prepare the environment
-. /etc/profile || true
+. /etc/profile
 export PATH=/usr/lib/ccache:$PATH
 
 if test -n "$J"; then
@@ -32,7 +30,7 @@ export TEST_DIR=/tmp/qemu-test
 mkdir -p $TEST_DIR/{src,build,install}
 
 # Extract the source tarballs
-tar -C $TEST_DIR/src -xf $BASE/qemu.tar
+tar -C $TEST_DIR/src -xf $BASE/qemu.tar || prep_fail "Failed to untar source"
 
 if test -n "$SHOW_ENV"; then
     if test -f /packages.txt; then
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* Re: [Qemu-devel] [PULL v5 00/36] Build and test automation patches
  2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
                   ` (35 preceding siblings ...)
  2017-09-22  7:46 ` [Qemu-devel] [PULL 36/36] docker: Drop 'set -e' from run script Fam Zheng
@ 2017-09-22 11:55 ` Peter Maydell
  36 siblings, 0 replies; 40+ messages in thread
From: Peter Maydell @ 2017-09-22 11:55 UTC (permalink / raw)
  To: Fam Zheng; +Cc: QEMU Developers

On 22 September 2017 at 08:46, Fam Zheng <famz@redhat.com> wrote:
> The following changes since commit 0a8066f0c068f1e318a1aacd7864fc00e455a37b:
>
>   Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20170921' into staging (2017-09-21 17:42:27 +0100)
>
> are available in the git repository at:
>
>   git://github.com/famz/qemu.git tags/build-and-test-automation-pull-request
>
> for you to fetch changes up to 4f6afe41f2ee3d8170eef7a9122d256588b707b2:
>
>   docker: Drop 'set -e' from run script (2017-09-22 14:51:43 +0800)
>
> ----------------------------------------------------------------
>
> Since v4:
>
> - Drop three iffy -cflags patches from me (for gtk/vnc/curses).
> - Revised VM test scripts after addressing comments.
> - Add Eduardo's small tweak on MAINTAINERS.
>
> ----------------------------------------------------------------

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [Qemu-devel] [PULL 06/36] docker: Enable features explicitly in test-full
  2017-09-22  7:46 ` [Qemu-devel] [PULL 06/36] docker: Enable features explicitly in test-full Fam Zheng
@ 2017-10-02 14:21   ` Paolo Bonzini
  2017-10-18  8:09     ` Fam Zheng
  0 siblings, 1 reply; 40+ messages in thread
From: Paolo Bonzini @ 2017-10-02 14:21 UTC (permalink / raw)
  To: Fam Zheng, qemu-devel; +Cc: Peter Maydell

On 22/09/2017 09:46, Fam Zheng wrote:
> Also avoid "set -e".
> 
> Signed-off-by: Fam Zheng <famz@redhat.com>
> Message-Id: <20170907141245.31946-3-famz@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>

This broke docker-test-full with at least Fedora and CentOS 6 images.  I
wouldn't be surprised if some required packages do not even exist on
CentOS 6.  Should it be reverted?

Paolo

> ---
>  tests/docker/test-full | 82 ++++++++++++++++++++++++++++++++++++++++++++++----
>  1 file changed, 76 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/docker/test-full b/tests/docker/test-full
> index 05f0d491d1..d71bf9d275 100755
> --- a/tests/docker/test-full
> +++ b/tests/docker/test-full
> @@ -1,8 +1,8 @@
> -#!/bin/bash -e
> +#!/bin/bash
>  #
> -# Compile all the targets.
> +# Compile all the targets with as many features enabled as possible
>  #
> -# Copyright (c) 2016 Red Hat Inc.
> +# Copyright 2016, 2017 Red Hat Inc.
>  #
>  # Authors:
>  #  Fam Zheng <famz@redhat.com>
> @@ -13,7 +13,77 @@
>  
>  . common.rc
>  
> -cd "$BUILD_DIR"
> +cd "$BUILD_DIR" || exit 1
>  
> -build_qemu
> -make check $MAKEFLAGS
> +build_qemu \
> +    --enable-attr \
> +    --enable-bluez \
> +    --enable-brlapi \
> +    --enable-bsd-user \
> +    --enable-bzip2 \
> +    --enable-cap-ng \
> +    --enable-coroutine-pool \
> +    --enable-crypto-afalg \
> +    --enable-curl \
> +    --enable-curses \
> +    --enable-debug \
> +    --enable-debug-info \
> +    --enable-debug-tcg \
> +    --enable-docs \
> +    --enable-fdt \
> +    --enable-gcrypt \
> +    --enable-glusterfs \
> +    --enable-gnutls \
> +    --enable-gprof \
> +    --enable-gtk \
> +    --enable-guest-agent \
> +    --enable-jemalloc \
> +    --enable-kvm \
> +    --enable-libiscsi \
> +    --enable-libnfs \
> +    --enable-libssh2 \
> +    --enable-libusb \
> +    --enable-linux-aio \
> +    --enable-linux-user \
> +    --enable-live-block-migration \
> +    --enable-lzo \
> +    --enable-modules \
> +    --enable-numa \
> +    --enable-opengl \
> +    --enable-pie \
> +    --enable-profiler \
> +    --enable-qom-cast-debug \
> +    --enable-rbd \
> +    --enable-rdma \
> +    --enable-replication \
> +    --enable-sdl \
> +    --enable-seccomp \
> +    --enable-smartcard \
> +    --enable-snappy \
> +    --enable-spice \
> +    --enable-stack-protector \
> +    --enable-system \
> +    --enable-tcg \
> +    --enable-tcg-interpreter \
> +    --enable-tools \
> +    --enable-tpm \
> +    --enable-trace-backend=ftrace \
> +    --enable-usb-redir \
> +    --enable-user \
> +    --enable-vde \
> +    --enable-vhost-net \
> +    --enable-vhost-scsi \
> +    --enable-vhost-user \
> +    --enable-vhost-vsock \
> +    --enable-virtfs \
> +    --enable-vnc \
> +    --enable-vnc-jpeg \
> +    --enable-vnc-png \
> +    --enable-vnc-sasl \
> +    --enable-vte \
> +    --enable-werror \
> +    --enable-xen \
> +    --enable-xen-pci-passthrough \
> +    --enable-xen-pv-domain-build \
> +    --enable-xfsctl \
> +&& make check $MAKEFLAGS
> 

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [Qemu-devel] [PULL 06/36] docker: Enable features explicitly in test-full
  2017-10-02 14:21   ` Paolo Bonzini
@ 2017-10-18  8:09     ` Fam Zheng
  0 siblings, 0 replies; 40+ messages in thread
From: Fam Zheng @ 2017-10-18  8:09 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel, Peter Maydell

On Mon, 10/02 16:21, Paolo Bonzini wrote:
> On 22/09/2017 09:46, Fam Zheng wrote:
> > Also avoid "set -e".
> > 
> > Signed-off-by: Fam Zheng <famz@redhat.com>
> > Message-Id: <20170907141245.31946-3-famz@redhat.com>
> > Reviewed-by: Eric Blake <eblake@redhat.com>

Sorry for late reply, I've had a backlog due to holiday and KVM Forum.

> 
> This broke docker-test-full with at least Fedora and CentOS 6 images.  I
> wouldn't be surprised if some required packages do not even exist on
> CentOS 6.  Should it be reverted?

Packages not existing on CentOS 6 are supposed to be handled by "FEATURES" in
dockerfile and "requires" in test, but I suspect in this case the method scales,
the list will be cluttered and unmaintainable.

I'll send a reverting patch and continue hoping ./configure to detect features
automatically as before.

Fam

^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2017-10-18  8:09 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-22  7:46 [Qemu-devel] [PULL v5 00/36] Build and test automation patches Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 01/36] docker: ensure NOUSER for travis images Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 02/36] docker: docker.py make --no-cache skip checksum test Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 03/36] docker: don't install device-tree-compiler build-deps in travis.docker Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 04/36] docker: reduce noise when building travis.docker Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 05/36] docker: Update ubuntu image Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 06/36] docker: Enable features explicitly in test-full Fam Zheng
2017-10-02 14:21   ` Paolo Bonzini
2017-10-18  8:09     ` Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 07/36] tests/docker: Clean up paths Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 08/36] docker: Fix return code of build_qemu() Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 09/36] docker: Add test_fail and prep_fail Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 10/36] docker: Use unconfined security profile Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 11/36] docker: Add nettle-devel to fedora image Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 12/36] docker: Add test-block Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 13/36] vl: Don't include vde header Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 14/36] buildsys: Move vde libs to per object Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 15/36] buildsys: Move sdl cflags/libs " Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 16/36] buildsys: Move audio libs " Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 17/36] buildsys: Move libcacard cflags/libs " Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 18/36] buildsys: Move libusb " Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 19/36] buildsys: Move usb redir " Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 20/36] buildsys: Move brlapi libs " Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 21/36] buildsys: Move rdma " Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 22/36] MAINTAINERS: Fix subsystem name for "Build and test automation" Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 23/36] gitignore: Ignore vm test images Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 24/36] qemu.py: Add "wait()" method Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 25/36] scripts: Add archive-source.sh Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 26/36] tests: Add a test key pair Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 27/36] tests: Add vm test lib Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 28/36] tests: Add ubuntu.i386 image Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 29/36] tests: Add FreeBSD image Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 30/36] tests: Add NetBSD image Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 31/36] tests: Add OpenBSD image Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 32/36] Makefile: Add rules to run vm tests Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 33/36] MAINTAINERS: Add tests/vm entry Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 34/36] tests: Add README for vm tests Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 35/36] docker: Use archive-source.py Fam Zheng
2017-09-22  7:46 ` [Qemu-devel] [PULL 36/36] docker: Drop 'set -e' from run script Fam Zheng
2017-09-22 11:55 ` [Qemu-devel] [PULL v5 00/36] Build and test automation patches Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).