From 90843750e375f7c6701c8797ae04c14fad44fe89 Mon Sep 17 00:00:00 2001 From: Alex Bennée Date: Thu, 3 Sep 2020 12:21:02 +0100 Subject: tests/docker: add python3-setuptools the docker images We need these now for builds to work. Signed-off-by: Alex Bennée Message-Id: <20200903112107.27367-4-alex.bennee@linaro.org> Reviewed-by: Thomas Huth Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Thomas Huth --- tests/docker/dockerfiles/debian10.docker | 1 + tests/docker/dockerfiles/debian9.docker | 1 + 2 files changed, 2 insertions(+) (limited to 'tests') diff --git a/tests/docker/dockerfiles/debian10.docker b/tests/docker/dockerfiles/debian10.docker index bcdff04ddf..e3c11a454e 100644 --- a/tests/docker/dockerfiles/debian10.docker +++ b/tests/docker/dockerfiles/debian10.docker @@ -29,6 +29,7 @@ RUN apt update && \ pkg-config \ psmisc \ python3 \ + python3-setuptools \ python3-sphinx \ texinfo \ $(apt-get -s build-dep qemu | egrep ^Inst | fgrep '[all]' | cut -d\ -f2) diff --git a/tests/docker/dockerfiles/debian9.docker b/tests/docker/dockerfiles/debian9.docker index 0f0ebe530a..3edb5147ef 100644 --- a/tests/docker/dockerfiles/debian9.docker +++ b/tests/docker/dockerfiles/debian9.docker @@ -28,4 +28,5 @@ RUN apt update && \ pkg-config \ psmisc \ python3 \ + python3-setuptools \ $(apt-get -s build-dep qemu | egrep ^Inst | fgrep '[all]' | cut -d\ -f2) -- cgit v1.2.3-55-g7522 From fec7bcf16b1b77d648b23d7832a39aef9f11aea0 Mon Sep 17 00:00:00 2001 From: Yonggang Luo Date: Thu, 3 Sep 2020 01:00:53 +0800 Subject: tests: handling signal on win32 properly SIGABRT should use signal(SIGABRT, sigabrt_handler) to handle on win32 The error: E:/CI-Cor-Ready/xemu/qemu.org/tests/test-replication.c:559:33: error: invalid use of undefined type 'struct sigaction' 559 | sigact = (struct sigaction) { | ^ Signed-off-by: Yonggang Luo Message-Id: <20200902170054.810-6-luoyonggang@gmail.com> Signed-off-by: Thomas Huth --- tests/test-replication.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'tests') diff --git a/tests/test-replication.c b/tests/test-replication.c index e0b03dafc2..9ab3666a90 100644 --- a/tests/test-replication.c +++ b/tests/test-replication.c @@ -554,6 +554,9 @@ static void sigabrt_handler(int signo) static void setup_sigabrt_handler(void) { +#ifdef _WIN32 + signal(SIGABRT, sigabrt_handler); +#else struct sigaction sigact; sigact = (struct sigaction) { @@ -562,6 +565,7 @@ static void setup_sigabrt_handler(void) }; sigemptyset(&sigact.sa_mask); sigaction(SIGABRT, &sigact, NULL); +#endif } int main(int argc, char **argv) -- cgit v1.2.3-55-g7522 From 85c93c57f162e47025441ce39e2aadd0c1e0914f Mon Sep 17 00:00:00 2001 From: Yonggang Luo Date: Sat, 5 Sep 2020 14:38:13 +0800 Subject: tests: fixes test-vmstate.c compile error on msys2 ../tests/test-vmstate.c: In function 'int_cmp': ../tests/test-vmstate.c:884:5: error: unknown type name 'uint'; did you mean 'uInt'? 884 | uint ua = GPOINTER_TO_UINT(a); | ^~~~ | uInt ../tests/test-vmstate.c:885:5: error: unknown type name 'uint'; did you mean 'uInt'? 885 | uint ub = GPOINTER_TO_UINT(b); | ^~~~ | uInt make: *** [Makefile.ninja:5461:tests/test-vmstate.exe.p/test-vmstate.c.obj] 错误 1 Signed-off-by: Yonggang Luo Message-Id: <20200905063813.1875-1-luoyonggang@gmail.com> Reviewed-by: Thomas Huth Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Thomas Huth --- tests/test-vmstate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/test-vmstate.c b/tests/test-vmstate.c index f7b3868881..f8de709a0b 100644 --- a/tests/test-vmstate.c +++ b/tests/test-vmstate.c @@ -881,8 +881,8 @@ static gint interval_cmp(gconstpointer a, gconstpointer b, gpointer user_data) /* ID comparison function */ static gint int_cmp(gconstpointer a, gconstpointer b, gpointer user_data) { - uint ua = GPOINTER_TO_UINT(a); - uint ub = GPOINTER_TO_UINT(b); + guint ua = GPOINTER_TO_UINT(a); + guint ub = GPOINTER_TO_UINT(b); return (ua > ub) - (ua < ub); } -- cgit v1.2.3-55-g7522 From 0fdc1f2f5e0998f7daf49a8ead5a2007822c64be Mon Sep 17 00:00:00 2001 From: Yonggang Luo Date: Sun, 6 Sep 2020 04:34:25 +0800 Subject: tests: Fixes building test-util-filemonitor.c on msys2/mingw Fixes the following compiling error: ../tests/test-util-filemonitor.c: In function 'test_file_monitor_events': ../tests/test-util-filemonitor.c:620:17: error: too many arguments to function 'mkdir' 620 | if (mkdir(pathsrc, 0700) < 0) { | ^~~~~ In file included from C:/CI-Tools/msys64/mingw64/x86_64-w64-mingw32/include/unistd.h:10, from C:/work/xemu/qemu/include/qemu/osdep.h:93, from ../tests/test-util-filemonitor.c:21: C:/CI-Tools/msys64/mingw64/x86_64-w64-mingw32/include/io.h:282:15: note: declared here 282 | int __cdecl mkdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005; | ^~~~~ Signed-off-by: Yonggang Luo Message-Id: <20200905203425.1470-1-luoyonggang@gmail.com> Reviewed-by: Richard Henderson Signed-off-by: Thomas Huth --- tests/test-util-filemonitor.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/test-util-filemonitor.c b/tests/test-util-filemonitor.c index 8f0eff3d03..b629e10857 100644 --- a/tests/test-util-filemonitor.c +++ b/tests/test-util-filemonitor.c @@ -23,6 +23,8 @@ #include "qapi/error.h" #include "qemu/filemonitor.h" +#include + #include enum { @@ -617,7 +619,7 @@ test_file_monitor_events(void) if (debug) { g_printerr("Mkdir %s\n", pathsrc); } - if (mkdir(pathsrc, 0700) < 0) { + if (g_mkdir_with_parents(pathsrc, 0700) < 0) { g_printerr("Unable to mkdir %s: %s", pathsrc, strerror(errno)); goto cleanup; -- cgit v1.2.3-55-g7522 From ce4e510ac721fa3a48603e777700aef375f85c26 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Mon, 3 Aug 2020 08:31:19 +0200 Subject: tests/Makefile: test-image-locking needs CONFIG_POSIX test-image-locking.c uses the qemu_lock_fd_test() function which is only available on POSIX-like systems. Message-Id: <20200804170055.2851-4-thuth@redhat.com> Reviewed-by: John Snow Message-Id: <20200823111757.72002-4-thuth@redhat.com> Acked-by: Paolo Bonzini Reviewed-by: Daniel P. Berrangé Signed-off-by: Thomas Huth --- tests/Makefile.include | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tests') diff --git a/tests/Makefile.include b/tests/Makefile.include index 9ac8f5b86a..497f1f21ff 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -87,7 +87,9 @@ check-unit-$(CONFIG_BLOCK) += tests/test-blockjob$(EXESUF) check-unit-$(CONFIG_BLOCK) += tests/test-blockjob-txn$(EXESUF) check-unit-$(CONFIG_BLOCK) += tests/test-block-backend$(EXESUF) check-unit-$(CONFIG_BLOCK) += tests/test-block-iothread$(EXESUF) +ifeq ($(CONFIG_POSIX),y) check-unit-$(CONFIG_BLOCK) += tests/test-image-locking$(EXESUF) +endif check-unit-y += tests/test-x86-cpuid$(EXESUF) # all code tested by test-x86-cpuid is inside topology.h ifeq ($(CONFIG_SOFTMMU),y) -- cgit v1.2.3-55-g7522 From d3dd34a1e5e1341167a0d3a1d35eda85f47f52d8 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Tue, 4 Aug 2020 10:35:09 +0200 Subject: dockerfiles/debian-win64-cross: Download WHPX MinGW headers To compile-test the WHPX accelerator, we need to download these system headers first (they are unfortunately not part of any released and packaged MinGW toolchain yet). Idea taken from another patch by Stefan Weil. Message-Id: <20200804170055.2851-12-thuth@redhat.com> Message-Id: <20200823111757.72002-6-thuth@redhat.com> Reviewed-by: Daniel P. Berrangé Signed-off-by: Thomas Huth --- tests/docker/dockerfiles/debian-win64-cross.docker | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/docker/dockerfiles/debian-win64-cross.docker b/tests/docker/dockerfiles/debian-win64-cross.docker index 2fc9cfcbc6..4cc4a3f365 100644 --- a/tests/docker/dockerfiles/debian-win64-cross.docker +++ b/tests/docker/dockerfiles/debian-win64-cross.docker @@ -32,7 +32,14 @@ RUN apt-get update && \ mxe-$TARGET-w64-mingw32.shared-sdl2 \ mxe-$TARGET-w64-mingw32.shared-sdl2-mixer \ mxe-$TARGET-w64-mingw32.shared-sdl2-gfx \ - mxe-$TARGET-w64-mingw32.shared-zlib + mxe-$TARGET-w64-mingw32.shared-zlib \ + curl && \ + curl -s -S -o /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/include/WinHvEmulation.h \ + "https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/winhvemulation.h?format=raw" && \ + curl -s -S -o /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/include/WinHvPlatform.h \ + "https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/winhvplatform.h?format=raw" && \ + curl -s -S -o /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/include/winhvplatformdefs.h \ + "https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/winhvplatformdefs.h?format=raw" # Specify the cross prefix for this image (see tests/docker/common.rc) ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-w64-mingw32.shared- -- cgit v1.2.3-55-g7522 From affcc09c2d54780b76f135bca79a65a1343a7269 Mon Sep 17 00:00:00 2001 From: Daniel P. Berrangé Date: Tue, 1 Sep 2020 14:30:50 +0100 Subject: gitlab: expand test coverage for crypto builds Most jobs test the latest nettle library. This adds explicit coverage for latest gcrypt using Fedora, and old gcrypt and nettle using CentOS-7. The latter does a minimal tools-only build, as we only need to validate that the crypto code builds and unit tests pass. Finally a job disabling both nettle and gcrypt is provided to validate that gnutls still works. Signed-off-by: Daniel P. Berrangé Message-Id: <20200901133050.381844-3-berrange@redhat.com> Signed-off-by: Thomas Huth --- .gitlab-ci.yml | 68 +++++++++++++++++++++++++++++++++ tests/docker/dockerfiles/centos7.docker | 2 + tests/docker/dockerfiles/centos8.docker | 1 + 3 files changed, 71 insertions(+) (limited to 'tests') diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d677e00933..72e8604579 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -133,6 +133,7 @@ build-system-fedora: <<: *native_build_job_definition variables: IMAGE: fedora + CONFIGURE_ARGS: --disable-gcrypt --enable-nettle TARGETS: tricore-softmmu unicore32-softmmu microblaze-softmmu mips-softmmu xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu MAKE_CHECK_ARGS: check-build @@ -164,6 +165,7 @@ build-system-centos: <<: *native_build_job_definition variables: IMAGE: centos8 + CONFIGURE_ARGS: --disable-nettle --enable-gcrypt TARGETS: ppc64-softmmu lm32-softmmu or1k-softmmu s390x-softmmu x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu MAKE_CHECK_ARGS: check-build @@ -290,3 +292,69 @@ build-tci: done - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow + +# Most jobs test latest gcrypt or nettle builds +# +# These jobs test old gcrypt and nettle from RHEL7 +# which had some API differences. +build-crypto-old-nettle: + <<: *native_build_job_definition + variables: + IMAGE: centos7 + TARGETS: x86_64-softmmu x86_64-linux-user + CONFIGURE_ARGS: --disable-gcrypt --enable-nettle + MAKE_CHECK_ARGS: check-build + artifacts: + paths: + - build + +check-crypto-old-nettle: + <<: *native_test_job_definition + needs: + - job: build-crypto-old-nettle + artifacts: true + variables: + IMAGE: centos7 + MAKE_CHECK_ARGS: check + + +build-crypto-old-gcrypt: + <<: *native_build_job_definition + variables: + IMAGE: centos7 + TARGETS: x86_64-softmmu x86_64-linux-user + CONFIGURE_ARGS: --disable-nettle --enable-gcrypt + MAKE_CHECK_ARGS: check-build + artifacts: + paths: + - build + +check-crypto-old-gcrypt: + <<: *native_test_job_definition + needs: + - job: build-crypto-old-gcrypt + artifacts: true + variables: + IMAGE: centos7 + MAKE_CHECK_ARGS: check + + +build-crypto-only-gnutls: + <<: *native_build_job_definition + variables: + IMAGE: centos7 + TARGETS: x86_64-softmmu x86_64-linux-user + CONFIGURE_ARGS: --disable-nettle --disable-gcrypt --enable-gnutls + MAKE_CHECK_ARGS: check-build + artifacts: + paths: + - build + +check-crypto-only-gnutls: + <<: *native_test_job_definition + needs: + - job: build-crypto-only-gnutls + artifacts: true + variables: + IMAGE: centos7 + MAKE_CHECK_ARGS: check diff --git a/tests/docker/dockerfiles/centos7.docker b/tests/docker/dockerfiles/centos7.docker index e197acdc3c..46277773bf 100644 --- a/tests/docker/dockerfiles/centos7.docker +++ b/tests/docker/dockerfiles/centos7.docker @@ -15,9 +15,11 @@ ENV PACKAGES \ gettext \ git \ glib2-devel \ + gnutls-devel \ libaio-devel \ libepoxy-devel \ libfdt-devel \ + libgcrypt-devel \ librdmacm-devel \ libzstd-devel \ lzo-devel \ diff --git a/tests/docker/dockerfiles/centos8.docker b/tests/docker/dockerfiles/centos8.docker index 9852c5b9ee..f435616d6a 100644 --- a/tests/docker/dockerfiles/centos8.docker +++ b/tests/docker/dockerfiles/centos8.docker @@ -13,6 +13,7 @@ ENV PACKAGES \ glib2-devel \ libaio-devel \ libepoxy-devel \ + libgcrypt-devel \ lzo-devel \ make \ mesa-libEGL-devel \ -- cgit v1.2.3-55-g7522 From cc9962d8ea80b39118d921109fd2f8db308e1d4a Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 4 Sep 2020 08:03:42 -0400 Subject: tests/qtest: do not list ahci-test twice This is caught by "meson test", which complains about two tests with the same name. Signed-off-by: Paolo Bonzini Message-Id: <20200904120342.11370-1-pbonzini@redhat.com> Fixes: a2ce7dbd917 ("meson: convert tests/qtest to meson") Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Thomas Huth --- tests/qtest/meson.build | 1 - 1 file changed, 1 deletion(-) (limited to 'tests') diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index 8f8fdb1336..874b5be62b 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -49,7 +49,6 @@ qtests_i386 = \ qtests_pci + \ ['fdc-test', 'ide-test', - 'ahci-test', 'hd-geo-test', 'boot-order-test', 'bios-tables-test', -- cgit v1.2.3-55-g7522