From 6283847857d8008046ceddf2db4bd908df0c063a Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 22 Sep 2017 17:49:31 +0200 Subject: docker: add installation to build tests Basic test that "make install" works; this requires msgfmt so add gettext to the packages. Signed-off-by: Paolo Bonzini Message-Id: <1506095371-23160-1-git-send-email-pbonzini@redhat.com> [Rebase to master. - Fam] Signed-off-by: Fam Zheng --- tests/docker/common.rc | 8 ++++++++ tests/docker/dockerfiles/centos6.docker | 1 + tests/docker/dockerfiles/centos7.docker | 1 + tests/docker/dockerfiles/debian-ports.docker | 1 + tests/docker/dockerfiles/debian8.docker | 1 + tests/docker/dockerfiles/debian9.docker | 1 + tests/docker/dockerfiles/fedora.docker | 2 +- tests/docker/dockerfiles/min-glib.docker | 2 +- tests/docker/dockerfiles/ubuntu.docker | 2 +- tests/docker/test-build | 1 + tests/docker/test-clang | 1 + tests/docker/test-full | 2 +- tests/docker/test-mingw | 1 + tests/docker/test-quick | 1 + 14 files changed, 21 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/docker/common.rc b/tests/docker/common.rc index 87f5263..7951555 100755 --- a/tests/docker/common.rc +++ b/tests/docker/common.rc @@ -44,3 +44,11 @@ prep_fail() echo "$@" exit 2 } + +install_qemu() +{ + make install $MAKEFLAGS DESTDIR=$PWD/=destdir + ret=$? + rm -rf $PWD/=destdir + return $ret +} diff --git a/tests/docker/dockerfiles/centos6.docker b/tests/docker/dockerfiles/centos6.docker index f6aae13..ad24319 100644 --- a/tests/docker/dockerfiles/centos6.docker +++ b/tests/docker/dockerfiles/centos6.docker @@ -8,6 +8,7 @@ ENV PACKAGES \ flex \ g++ \ gcc \ + gettext \ git \ glib2-devel \ libepoxy-devel \ diff --git a/tests/docker/dockerfiles/centos7.docker b/tests/docker/dockerfiles/centos7.docker index 0b59aa2..575de29 100644 --- a/tests/docker/dockerfiles/centos7.docker +++ b/tests/docker/dockerfiles/centos7.docker @@ -9,6 +9,7 @@ ENV PACKAGES \ flex \ g++ \ gcc \ + gettext \ git \ glib2-devel \ libepoxy-devel \ diff --git a/tests/docker/dockerfiles/debian-ports.docker b/tests/docker/dockerfiles/debian-ports.docker index fba224f..e05a9a9 100644 --- a/tests/docker/dockerfiles/debian-ports.docker +++ b/tests/docker/dockerfiles/debian-ports.docker @@ -27,6 +27,7 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \ clang \ debian-ports-archive-keyring \ flex \ + gettext \ git \ pkg-config \ psmisc \ diff --git a/tests/docker/dockerfiles/debian8.docker b/tests/docker/dockerfiles/debian8.docker index 3d09b4b..1bcf2e3 100644 --- a/tests/docker/dockerfiles/debian8.docker +++ b/tests/docker/dockerfiles/debian8.docker @@ -26,6 +26,7 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \ clang \ curl \ flex \ + gettext \ git \ gnupg \ pkg-config \ diff --git a/tests/docker/dockerfiles/debian9.docker b/tests/docker/dockerfiles/debian9.docker index a450995..154ae2a 100644 --- a/tests/docker/dockerfiles/debian9.docker +++ b/tests/docker/dockerfiles/debian9.docker @@ -22,6 +22,7 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \ ca-certificates \ clang \ flex \ + gettext \ git \ pkg-config \ psmisc \ diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker index 27e8201..4b26c3a 100644 --- a/tests/docker/dockerfiles/fedora.docker +++ b/tests/docker/dockerfiles/fedora.docker @@ -1,6 +1,6 @@ FROM fedora:latest ENV PACKAGES \ - ccache git tar PyYAML sparse flex bison python2 bzip2 hostname \ + ccache gettext 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 \ diff --git a/tests/docker/dockerfiles/min-glib.docker b/tests/docker/dockerfiles/min-glib.docker index 9f542d5..f2eed97 100644 --- a/tests/docker/dockerfiles/min-glib.docker +++ b/tests/docker/dockerfiles/min-glib.docker @@ -1,6 +1,6 @@ FROM centos:6 RUN yum install -y \ - tar git make gcc g++ \ + tar gettext git make gcc g++ \ zlib-devel SDL-devel pixman-devel \ epel-release RUN yum install -y libfdt-devel ccache diff --git a/tests/docker/dockerfiles/ubuntu.docker b/tests/docker/dockerfiles/ubuntu.docker index d73ce02..dabbf2a 100644 --- a/tests/docker/dockerfiles/ubuntu.docker +++ b/tests/docker/dockerfiles/ubuntu.docker @@ -12,7 +12,7 @@ ENV PACKAGES flex bison \ 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 + gettext git make ccache python-yaml gcc clang sparse RUN apt-get -y install $PACKAGES RUN dpkg -l $PACKAGES | sort > /packages.txt ENV FEATURES clang pyyaml diff --git a/tests/docker/test-build b/tests/docker/test-build index 031a7d9..22766cf 100755 --- a/tests/docker/test-build +++ b/tests/docker/test-build @@ -18,3 +18,4 @@ cd "$BUILD_DIR" DEF_TARGET_LIST="x86_64-softmmu,aarch64-softmmu" TARGET_LIST=${TARGET_LIST:-$DEF_TARGET_LIST} \ build_qemu +install_qemu diff --git a/tests/docker/test-clang b/tests/docker/test-clang index 16485e6..1eb61a3 100755 --- a/tests/docker/test-clang +++ b/tests/docker/test-clang @@ -24,3 +24,4 @@ OPTS="--enable-debug --cxx=clang++ --cc=clang --host-cc=clang" #--extra-cflags=-fno-sanitize=float-divide-by-zero" build_qemu $OPTS make $MAKEFLAGS check +install_qemu diff --git a/tests/docker/test-full b/tests/docker/test-full index d71bf9d..816d5a3 100755 --- a/tests/docker/test-full +++ b/tests/docker/test-full @@ -86,4 +86,4 @@ build_qemu \ --enable-xen-pci-passthrough \ --enable-xen-pv-domain-build \ --enable-xfsctl \ -&& make check $MAKEFLAGS +&& make check $MAKEFLAGS && install_qemu diff --git a/tests/docker/test-mingw b/tests/docker/test-mingw index 2adadcb..39a1da4 100755 --- a/tests/docker/test-mingw +++ b/tests/docker/test-mingw @@ -31,6 +31,7 @@ for prefix in x86_64-w64-mingw32- i686-w64-mingw32-; do --enable-guest-agent \ --with-sdlabi=1.2 \ --with-gtkabi=2.0 + install_qemu make clean done diff --git a/tests/docker/test-quick b/tests/docker/test-quick index c465dc0..3b7bce6 100755 --- a/tests/docker/test-quick +++ b/tests/docker/test-quick @@ -19,3 +19,4 @@ DEF_TARGET_LIST="x86_64-softmmu,aarch64-softmmu" TARGET_LIST=${TARGET_LIST:-$DEF_TARGET_LIST} \ build_qemu make check $MAKEFLAGS +install_qemu -- cgit v1.1 From 299d296ea90cca388b3a1fb316c797da5b6a6708 Mon Sep 17 00:00:00 2001 From: Fam Zheng Date: Mon, 25 Sep 2017 16:29:13 +0800 Subject: docker: Fix test-mingw Feature "dtc" is explicitly required by test-mingw, but is not detected by the run script since we switched to archive-source.sh in b7f404201e4. Since it isn't available in the Fedora image which runs this test on patchew, the way we get dtc is still from submodule. archive-source.sh takes care of bundling the submodule files already, so what we need to do is just checking if files are there. Makefile is chosen because it is one that is unlikely to get renamed in the future. Signed-off-by: Fam Zheng Message-Id: <20170925082913.22089-1-famz@redhat.com> Reviewed-by: Alistair Francis Signed-off-by: Fam Zheng --- tests/docker/run | 3 +++ 1 file changed, 3 insertions(+) (limited to 'tests') diff --git a/tests/docker/run b/tests/docker/run index c8f940d..0fd2f35 100755 --- a/tests/docker/run +++ b/tests/docker/run @@ -31,6 +31,9 @@ mkdir -p $TEST_DIR/{src,build,install} # Extract the source tarballs tar -C $TEST_DIR/src -xf $BASE/qemu.tar || prep_fail "Failed to untar source" +if test -f $TEST_DIR/src/Makefile; then + export FEATURES="$FEATURES dtc" +fi if test -n "$SHOW_ENV"; then if test -f /packages.txt; then -- cgit v1.1 From bcd7f06f57fb6f780a3e2f7a46c22b6f6c8238aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Tue, 26 Sep 2017 14:36:22 +0100 Subject: tests/docker/run: don't source /etc/profile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The usual behaviour of /etc/profile is to set the default PATH for users. This runs into problems when we have updated PATH in our dockerfile e.g. to access a cross-compiler in a non-standard location. It shouldn't be needed anyway as we inherit the env from the image when it was setup. Signed-off-by: Alex Bennée CC: Philippe Mathieu-Daudé Message-Id: <20170926133622.14991-1-alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Fam Zheng --- tests/docker/run | 1 - 1 file changed, 1 deletion(-) (limited to 'tests') diff --git a/tests/docker/run b/tests/docker/run index 0fd2f35..642084b 100755 --- a/tests/docker/run +++ b/tests/docker/run @@ -18,7 +18,6 @@ fi BASE="$(dirname $(readlink -e $0))" # Prepare the environment -. /etc/profile export PATH=/usr/lib/ccache:$PATH if test -n "$J"; then -- cgit v1.1 From 12b25a7d96dc01fc9710c4af5942c15a51b84db1 Mon Sep 17 00:00:00 2001 From: Fam Zheng Date: Tue, 26 Sep 2017 19:01:34 +0800 Subject: docker: test-block: Don't continue if build fails Report error and exit upon compiling error, otherwise the iotests output will be pure noise. Signed-off-by: Fam Zheng Message-Id: <20170926110134.2786-1-famz@redhat.com> Reviewed-by: Eric Blake Signed-off-by: Fam Zheng --- tests/docker/test-block | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/docker/test-block b/tests/docker/test-block index 2ca1ce5..5624b81 100755 --- a/tests/docker/test-block +++ b/tests/docker/test-block @@ -14,7 +14,7 @@ cd "$BUILD_DIR" -build_qemu --target-list=x86_64-softmmu +build_qemu --target-list=x86_64-softmmu || test_fail "Build failed" cd tests/qemu-iotests for t in raw qcow2 nbd luks; do ./check -g quick -$t || test_fail "Test failed: iotests $t" -- cgit v1.1 From 36ac78e65a0695f0e397865cceaf4ab5c4e52c64 Mon Sep 17 00:00:00 2001 From: Fam Zheng Date: Mon, 25 Sep 2017 15:54:58 +0800 Subject: docker: Don't mount ccache db if NOUSER=1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With NOUSER=1 the container runs code as root, which may create privileged files that will not be be accssible next time. Skip ccache dir mount in this case. Signed-off-by: Fam Zheng Message-Id: <20170925075458.18047-1-famz@redhat.com> Acked-by: Philippe Mathieu-Daudé Reviewed-by: Alex Bennée --- tests/docker/Makefile.include | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 0e4f1596..6f9ea19 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -143,9 +143,11 @@ docker-run: docker-qemu-src -e EXTRA_CONFIGURE_OPTS="$(EXTRA_CONFIGURE_OPTS)" \ -e V=$V -e J=$J -e DEBUG=$(DEBUG) \ -e SHOW_ENV=$(SHOW_ENV) \ - -e CCACHE_DIR=/var/tmp/ccache \ + $(if $(NOUSER),, \ + -e CCACHE_DIR=/var/tmp/ccache \ + -v $(DOCKER_CCACHE_DIR):/var/tmp/ccache:z \ + ) \ -v $$(readlink -e $(DOCKER_SRC_COPY)):/var/tmp/qemu:z$(COMMA)ro \ - -v $(DOCKER_CCACHE_DIR):/var/tmp/ccache:z \ $(IMAGE) \ /var/tmp/qemu/run \ $(TEST), " RUN $(TEST) in ${IMAGE}") -- cgit v1.1