aboutsummaryrefslogtreecommitdiff
path: root/tests/docker
AgeCommit message (Collapse)AuthorFilesLines
2018-04-09docker: fedora: test more componentsPaolo Bonzini1-3/+10
Install optional dependencies of QEMU to get better coverage. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <1520942752-19449-1-git-send-email-pbonzini@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
2018-04-09docker: Inline "prep_fail" in run scriptFam Zheng1-1/+1
We don't source common.rc where prep_fail is defined, so spell out the commands and do what was intended. Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <20180326090350.30014-1-famz@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
2018-04-09docker: dump 'config.log' if ./configure failsPhilippe Mathieu-Daudé1-1/+3
Suggested-by: Eric Blake <eblake@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20180315142713.30960-1-f4bug@amsat.org> Signed-off-by: Fam Zheng <famz@redhat.com>
2018-03-13tests: make docker-test-debug@fedora run sanitizersMarc-André Lureau2-4/+4
Since --enable-debug no longer enable sanitizers, we need explicit --enable-sanitizers. llvm package is required for llvm-symbolizer, to get symbols in backtraces. Add make V=1 to get details about failing tests. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20180312120849.20073-1-marcandre.lureau@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
2018-02-08docker: change Fedora base image to fedora:27Paolo Bonzini1-1/+1
Using "fedora:latest" makes behavior different depending on when you actually pulled the image from the docker repository. In my case, the supposedly "latest" image was a Fedora 25 download from 8 months ago, and the new "test-debug" test was failing. Use "27" to improve reproducibility and make it clear when the image is obsolete. Cc: Fam Zheng <famz@redhat.com> Cc: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <1515755504-21341-1-git-send-email-pbonzini@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
2018-02-05docker: change Fedora images to run with python3Daniel P. Berrange1-1/+2
Fedora has switched to Python 3 by default, so it makes sense to use that for testing QEMU builds, so we get testing of Python 3 compatibility. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Message-Id: <20180116134217.8725-15-berrange@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2018-01-12tests/docker: add test-debugMarc-André Lureau3-3/+27
Add a new test with --enable-debug using clang/asan/ubsan, remove --enable-debug from test-clang & test-mingw. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20180104160523.22995-7-marcandre.lureau@redhat.com> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2018-01-12tests/docker: add some sanitizers to fedora dockerfileMarc-André Lureau1-2/+2
Build fedora image with ASAN/UBSan support. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20180104160523.22995-6-marcandre.lureau@redhat.com> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2017-12-20Revert "docker: Enable features explicitly in test-full"Fam Zheng1-75/+4
This reverts commit 5e8a7fe673ca5949bd51939ee36faaf3b1320de8. It's hard to get all images to have all these packages, the usual "FEATURES" and "require" mechanism doesn't scale with so many features. With that change, the test basically only works in ubuntu. Until a better way comes up, leave the feature enabling to ./configure detection. But don't remove the "-e" removal. Reported-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <20171018082002.9406-1-famz@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-11-08docker: correctly escape $BACKEND in the help outputPhilippe Mathieu-Daudé1-1/+1
In Makefiles the $ must be escaped as $$ in shell uses. Since 8a2390a4f47: $ make docker [...] NETWORK=1 Enable virtual network interface with default backend. NETWORK=ACKEND Enable virtual network interface with ACKEND. Once escaped: $ make docker [...] NETWORK=1 Enable virtual network interface with default backend. NETWORK=$BACKEND Enable virtual network interface with $BACKEND. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Fam Zheng <famz@redhat.com> Message-Id: <20171108024719.8389-1-f4bug@amsat.org> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-11-08docker: Improved image checksumFam Zheng1-1/+23
When a base image locally defined by QEMU, such as in the debian images, is updated, the dockerfile checksum mechanism in docker.py still skips updating the derived image, because it only looks at the literal content of the dockerfile, without considering changes to the base image. For example we have a recent fix e58c1f9b35e81 that fixed debian-win64-cross by updating its base image, debian8-mxe, but due to above "feature" of docker.py the image in question is automatically NOT rebuilt unless you add NOCACHE=1. It is noticed on Shippable: https://app.shippable.com/github/qemu/qemu/runs/541/2/console because after the fix is merged, the error still occurs, and the log shows the container image is, as explained above, not updated. This is because at the time docker.py was written, there wasn't any dependencies between QEMU's docker images. Now improve this to preprocess any "FROM qemu:*" directives in the dockerfiles while doing checksum, and inline the base image's dockerfile content, recursively. This ensures any changes on the depended _QEMU_ images are taken into account. This means for external images that we expect to retrieve from docker registries, we still do it as before. It is not perfect, because registry images can get updated too. Technically we could substitute the image name with its hex ID as obtained with $(docker images $IMAGE --format="{{.Id}}"), but --format is not supported by RHEL 7, so leave it for now. Reported-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <20171103131229.4737-1-famz@redhat.com> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-11-02docker: add python stdlib dependency (required by keycodemapdb)Philippe Mathieu-Daudé1-0/+1
Since 927128222b0a QEMU depends of keycodemapdb, which uses the python 'csv' module from stdlib to parse keymaps.csv. Without this package the build fails: GEN ui/input-keymap-linux-to-qcode.c Traceback (most recent call last): File "ui/keycodemapdb/tools/keymap-gen", line 15, in <module> import csv ImportError: No module named csv GEN ui/input-keymap-qcode-to-qnum.c Traceback (most recent call last): File "ui/keycodemapdb/tools/keymap-gen", line 15, in <module> import csv ImportError: No module named csv [...] CC ui/input-keymap.o ui/input-keymap.c:8:44: fatal error: ui/input-keymap-linux-to-qcode.c: No such file or directory make: *** [ui/input-keymap.o] Error 1 Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2017-10-20docker: Fix PATH for ccacheFam Zheng1-1/+1
Before bcd7f06f57fb6f780a3e2f7a46c22b6f6c8238aa we source /etc/profile so the PATH included the right paths to ccache binaries. Now we need to update $PATH explicitly from run script. Keep the old /usr/lib around just so that in the future, ccache from 32 bit images will just work. Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <20171018073841.30062-1-famz@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-10-20docker: fix out-of-tree 'make docker-test-build@debian-powerpc-cross'Greg Kurz1-1/+1
Without this patch, it fails with: IOError: [Errno 2] No such file or directory: 'tests/docker/dockerfiles/debian-apt-fake.sh' Signed-off-by: Greg Kurz <groug@kaod.org> Message-Id: <150841324224.31292.4012464539983692364.stgit@bahia.lan> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-10-20docker: allow running from srcdir != builddir buildPaolo Bonzini1-2/+2
The new script uses "git submodule", which is picky about being invoked from the top of the git checkout. Invoke the script from $(SRC_PATH) to avoid git's wrath. Fixes: b7f404201e45e99da23b9764dec27ce5f965cdcd Cc: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <1508331989-142364-1-git-send-email-pbonzini@redhat.com> Reviewed-by: Daniel P. Berrange <berrange@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-10-20docker: cleanup temp directory after testPeter Xu1-0/+2
There are temp directories named "docker-src.*" after doing docker tests. I don't see much point in keeping that (it only contains the qemu.tar which is exactly current tree, and the copied "run" file). Let's remove it after test finished. CC: "Alex Bennée" <alex.bennee@linaro.org> CC: Fam Zheng <famz@redhat.com> CC: "Philippe Mathieu-Daudé" <f4bug@amsat.org> Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <20171017071247.32355-1-peterx@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-10-20docker: Don't allocate tty unless DEBUG=1Fam Zheng1-2/+2
The existence of tty in the container seems to urge gcc into colorizing the errors, but the escape chars will clutter the report once turned into email replies on patchew. Move -t to debug mode. Reported-by: Eric Blake <eblake@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <20171013011954.9975-1-famz@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-09-29docker: Don't mount ccache db if NOUSER=1Fam Zheng1-2/+4
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 <famz@redhat.com> Message-Id: <20170925075458.18047-1-famz@redhat.com> Acked-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
2017-09-29docker: test-block: Don't continue if build failsFam Zheng1-1/+1
Report error and exit upon compiling error, otherwise the iotests output will be pure noise. Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <20170926110134.2786-1-famz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-09-29tests/docker/run: don't source /etc/profileAlex Bennée1-1/+0
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 <alex.bennee@linaro.org> CC: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20170926133622.14991-1-alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-09-29docker: Fix test-mingwFam Zheng1-0/+3
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 <famz@redhat.com> Message-Id: <20170925082913.22089-1-famz@redhat.com> Reviewed-by: Alistair Francis <alistair.francis@xilinx.com> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-09-29docker: add installation to build testsPaolo Bonzini14-4/+21
Basic test that "make install" works; this requires msgfmt so add gettext to the packages. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <1506095371-23160-1-git-send-email-pbonzini@redhat.com> [Rebase to master. - Fam] Signed-off-by: Fam Zheng <famz@redhat.com>
2017-09-22docker: Drop 'set -e' from run scriptFam Zheng1-5/+3
Signed-off-by: Fam Zheng <famz@redhat.com>
2017-09-22docker: Use archive-source.pyFam Zheng2-19/+3
Signed-off-by: Fam Zheng <famz@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
2017-09-22docker: Add test-blockFam Zheng1-0/+21
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
2017-09-22docker: Add nettle-devel to fedora imageFam Zheng1-0/+1
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
2017-09-22docker: Use unconfined security profileFam Zheng1-0/+1
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
2017-09-22docker: Add test_fail and prep_failFam Zheng1-0/+12
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
2017-09-22docker: Fix return code of build_qemu()Fam Zheng1-2/+1
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
2017-09-22tests/docker: Clean up pathsFam Zheng2-5/+4
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>
2017-09-22docker: Enable features explicitly in test-fullFam Zheng1-6/+76
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>
2017-09-22docker: Update ubuntu imageFam Zheng1-3/+8
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>
2017-09-22docker: reduce noise when building travis.dockerAlex Bennée1-0/+3
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>
2017-09-22docker: don't install device-tree-compiler build-deps in travis.dockerAlex Bennée1-2/+1
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>
2017-09-22docker: docker.py make --no-cache skip checksum testAlex Bennée1-1/+2
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>
2017-09-22docker: ensure NOUSER for travis imagesAlex Bennée1-0/+1
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>
2017-09-19docker: fix creation of archivesPaolo Bonzini1-1/+0
The pixman submodule does not exist anymore, and its removal broke docker-based tests. Fix it. Cc: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2017-08-30docker.py: Python 2.6 argparse compatibilityStefan Hajnoczi1-1/+3
Add the scripts/ directory to sys.path so Python 2.6 will be able to import argparse. Cc: Fam Zheng <famz@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Acked-by: John Snow <jsnow@redhat.com> Acked-by: Fam Zheng <famz@redhat.com> Message-id: 20170825155732.15665-3-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2017-08-15docker: add centos7 imagePhilippe Mathieu-Daudé1-0/+31
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20170728233316.13352-5-f4bug@amsat.org> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-08-15docker: install more packages on CentOS to extend code coveragePhilippe Mathieu-Daudé1-0/+10
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20170728233316.13352-4-f4bug@amsat.org> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-08-15docker: add Xen libs to centos6 imagePhilippe Mathieu-Daudé1-1/+2
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20170728233316.13352-3-f4bug@amsat.org> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-08-15docker: use one package per line in CentOS configPhilippe Mathieu-Daudé1-4/+14
This ease rebase/cherry-pick, also it is faster to visually find if a package is here. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20170728233316.13352-2-f4bug@amsat.org> Signed-off-by: Fam Zheng <famz@redhat.com>
2017-07-18docker: install clang since Shippable setup_ve() verify it is availablePhilippe Mathieu-Daudé1-0/+1
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2017-07-18docker: warn users to use newer debian8/debian9 base imagePhilippe Mathieu-Daudé2-0/+14
to stay backward incompatible. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2017-07-18docker: add debian Ports base imagePhilippe Mathieu-Daudé1-0/+35
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2017-07-18docker: add MXE (M cross environment) base image for MinGW-w64Philippe Mathieu-Daudé4-0/+85
see http://mxe.cc/ Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2017-07-18docker: add debian/mips64el imagePhilippe Mathieu-Daudé2-0/+31
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2017-07-18docker: add debian/mips[eb] imagesPhilippe Mathieu-Daudé3-4/+36
change image mips little -> big endian Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2017-07-18docker: add debian/powerpc based on JessieAlex Bennée2-0/+43
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> [AJB: split from merged patch] Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2017-07-18docker: add 'apt-fake' script which generate fake debian packagesPhilippe Mathieu-Daudé1-0/+46
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>