* [PULL 00/21] s390x and qtest patches
@ 2022-10-28 13:22 Thomas Huth
2022-10-28 13:22 ` [PULL 01/21] s390x/pv: remove semicolon from macro definition Thomas Huth
` (22 more replies)
0 siblings, 23 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel
Hello Stefan!
The following changes since commit 344744e148e6e865f5a57e745b02a87e5ea534ad:
Merge tag 'dump-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2022-10-26 10:53:49 -0400)
are available in the Git repository at:
https://gitlab.com/thuth/qemu.git tags/pull-request-2022-10-28
for you to fetch changes up to db8fca024fa98241ed40470f87b8ecfb82c57d32:
tests/qtest: libqtest: Correct the timeout unit of blocking receive calls for win32 (2022-10-28 14:32:09 +0200)
----------------------------------------------------------------
* Fix and test the VISTR instruction on s390x
* Some more small s390x fixes and maintainer updates
* Make sure to remove all temporary files from qtests
* OpenBSD VM test update to version 7.2
* Add sndio to FreeBSD tests
* More patches to enable the qtests on Windows
----------------------------------------------------------------
Akihiko Odaki (1):
tests/qtest/libqos/e1000e: Use e1000_regs.h
Bin Meng (6):
tests/qtest: Support libqtest to build and run on Windows
tests/qtest: device-plug-test: Reverse the usage of double/single quotes
tests/qtest: Use EXIT_FAILURE instead of magic number
tests/qtest: libqtest: Introduce qtest_wait_qemu()
tests/qtest: libqos: Do not build virtio-9p unconditionally
tests/qtest: libqtest: Correct the timeout unit of blocking receive calls for win32
Brad Smith (2):
tests/vm: update openbsd to release 7.2
tests: Add sndio to the FreeBSD CI containers / VM
Christian Borntraeger (1):
MAINTAINERS: target/s390x/: add Ilya as reviewer
Claudio Imbrenda (1):
s390x/pv: remove semicolon from macro definition
Cornelia Huck (1):
s390x: step down as general arch maintainer
Nico Boehr (1):
s390x/tod-kvm: don't save/restore the TOD in PV guests
Thomas Huth (5):
tests/tcg/s390x: Test compiler flags only once, not every time
target/s390x: Fix emulation of the VISTR instruction
tests/tcg/s390x: Add a test for the vistr instruction
tests/qtest/tpm: Clean up remainders of swtpm
tests/qtest/cxl-test: Remove temporary directories after testing
Xuzhou Cheng (3):
accel/qtest: Support qtest accelerator for Windows
tests/qtest: Use send/recv for socket communication
tests/qtest: migration-test: Make sure QEMU process "to" exited after migration is canceled
hw/net/e1000_regs.h | 1 +
include/hw/core/cpu.h | 1 +
include/qemu/sockets.h | 13 ++
tests/qtest/libqtest.h | 9 +
tests/qtest/tpm-util.h | 1 +
accel/dummy-cpus.c | 14 +-
hw/s390x/pv.c | 2 +-
hw/s390x/tod-kvm.c | 9 +
softmmu/cpus.c | 9 +-
tests/qtest/cxl-test.c | 3 +
tests/qtest/dbus-vmstate-test.c | 2 +-
tests/qtest/device-plug-test.c | 16 +-
tests/qtest/libqmp.c | 5 +-
tests/qtest/libqos/e1000e.c | 119 ++++-------
tests/qtest/libqtest.c | 151 +++++++++++--
tests/qtest/migration-test.c | 8 +-
tests/qtest/tpm-crb-swtpm-test.c | 5 +-
tests/qtest/tpm-tis-device-swtpm-test.c | 5 +-
tests/qtest/tpm-tis-swtpm-test.c | 5 +-
tests/qtest/tpm-util.c | 19 ++
tests/tcg/s390x/vistr.c | 45 ++++
util/osdep.c | 22 ++
target/s390x/tcg/translate_vx.c.inc | 2 +-
.gitlab-ci.d/cirrus/freebsd-12.vars | 2 +-
.gitlab-ci.d/cirrus/freebsd-13.vars | 2 +-
MAINTAINERS | 3 +-
accel/meson.build | 2 +-
accel/qtest/meson.build | 3 +-
tests/docker/dockerfiles/alpine.docker | 3 +-
tests/docker/dockerfiles/centos8.docker | 2 +-
tests/docker/dockerfiles/debian-amd64-cross.docker | 235 ++++++++++----------
tests/docker/dockerfiles/debian-amd64.docker | 237 +++++++++++----------
tests/docker/dockerfiles/debian-arm64-cross.docker | 233 ++++++++++----------
tests/docker/dockerfiles/debian-armel-cross.docker | 231 ++++++++++----------
tests/docker/dockerfiles/debian-armhf-cross.docker | 233 ++++++++++----------
.../dockerfiles/debian-mips64el-cross.docker | 227 ++++++++++----------
.../docker/dockerfiles/debian-mipsel-cross.docker | 227 ++++++++++----------
.../docker/dockerfiles/debian-ppc64el-cross.docker | 231 ++++++++++----------
tests/docker/dockerfiles/debian-s390x-cross.docker | 229 ++++++++++----------
tests/docker/dockerfiles/fedora.docker | 230 ++++++++++----------
tests/docker/dockerfiles/opensuse-leap.docker | 3 +-
tests/docker/dockerfiles/ubuntu2004.docker | 235 ++++++++++----------
tests/lcitool/libvirt-ci | 2 +-
tests/lcitool/projects/qemu.yml | 1 +
tests/qtest/libqos/meson.build | 6 +-
tests/tcg/s390x/Makefile.target | 31 ++-
tests/vm/freebsd | 3 +
tests/vm/openbsd | 7 +-
48 files changed, 1667 insertions(+), 1417 deletions(-)
create mode 100644 tests/tcg/s390x/vistr.c
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PULL 01/21] s390x/pv: remove semicolon from macro definition
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 02/21] s390x: step down as general arch maintainer Thomas Huth
` (21 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Claudio Imbrenda, Cornelia Huck
From: Claudio Imbrenda <imbrenda@linux.ibm.com>
Remove spurious semicolon at the end of the macro s390_pv_cmd
Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20221010151041.89071-1-imbrenda@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/s390x/pv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/s390x/pv.c b/hw/s390x/pv.c
index 728ba24547..8dfe92d8df 100644
--- a/hw/s390x/pv.c
+++ b/hw/s390x/pv.c
@@ -50,7 +50,7 @@ static int __s390_pv_cmd(uint32_t cmd, const char *cmdname, void *data)
* This macro lets us pass the command as a string to the function so
* we can print it on an error.
*/
-#define s390_pv_cmd(cmd, data) __s390_pv_cmd(cmd, #cmd, data);
+#define s390_pv_cmd(cmd, data) __s390_pv_cmd(cmd, #cmd, data)
#define s390_pv_cmd_exit(cmd, data) \
{ \
int rc; \
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 02/21] s390x: step down as general arch maintainer
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
2022-10-28 13:22 ` [PULL 01/21] s390x/pv: remove semicolon from macro definition Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 03/21] s390x/tod-kvm: don't save/restore the TOD in PV guests Thomas Huth
` (20 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Cornelia Huck
From: Cornelia Huck <cohuck@redhat.com>
I haven't really been working on s390x for some time now, and in
practice, I don't have time for it, either. So let's remove myself
from this entry.
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20221010160957.40779-1-cohuck@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
MAINTAINERS | 2 --
1 file changed, 2 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 32e495e165..17ff0a0138 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -84,7 +84,6 @@ T: git https://github.com/vivier/qemu.git trivial-patches
Architecture support
--------------------
S390 general architecture support
-M: Cornelia Huck <cohuck@redhat.com>
M: Thomas Huth <thuth@redhat.com>
S: Supported
F: configs/devices/s390x-softmmu/default.mak
@@ -106,7 +105,6 @@ F: docs/system/target-s390x.rst
F: docs/system/s390x/
F: tests/migration/s390x/
K: ^Subject:.*(?i)s390x?
-T: git https://gitlab.com/cohuck/qemu.git s390-next
L: qemu-s390x@nongnu.org
MIPS general architecture support
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 03/21] s390x/tod-kvm: don't save/restore the TOD in PV guests
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
2022-10-28 13:22 ` [PULL 01/21] s390x/pv: remove semicolon from macro definition Thomas Huth
2022-10-28 13:22 ` [PULL 02/21] s390x: step down as general arch maintainer Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 04/21] tests/tcg/s390x: Test compiler flags only once, not every time Thomas Huth
` (19 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Nico Boehr
From: Nico Boehr <nrb@linux.ibm.com>
Under PV, the guest's TOD clock is under control of the ultravisor and the
hypervisor cannot change it.
With upcoming kernel changes[1], the Linux kernel will reject QEMU's
request to adjust the guest's clock in this case, so don't attempt to set
the clock.
This avoids the following warning message on save/restore of a PV guest:
warning: Unable to set KVM guest TOD clock: Operation not supported
[1] https://lore.kernel.org/all/20221011160712.928239-2-nrb@linux.ibm.com/
Fixes: c3347ed0d2ee ("s390x: protvirt: Support unpack facility")
Signed-off-by: Nico Boehr <nrb@linux.ibm.com>
Message-Id: <20221012123229.1196007-1-nrb@linux.ibm.com>
[thuth: Add curly braces]
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/s390x/tod-kvm.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/hw/s390x/tod-kvm.c b/hw/s390x/tod-kvm.c
index 9d0cbfbce2..e2202dae2d 100644
--- a/hw/s390x/tod-kvm.c
+++ b/hw/s390x/tod-kvm.c
@@ -13,6 +13,7 @@
#include "qemu/module.h"
#include "sysemu/runstate.h"
#include "hw/s390x/tod.h"
+#include "hw/s390x/pv.h"
#include "kvm/kvm_s390x.h"
static void kvm_s390_get_tod_raw(S390TOD *tod, Error **errp)
@@ -84,6 +85,14 @@ static void kvm_s390_tod_vm_state_change(void *opaque, bool running,
S390TODState *td = opaque;
Error *local_err = NULL;
+ /*
+ * Under PV, the clock is under ultravisor control, hence we cannot restore
+ * it on resume.
+ */
+ if (s390_is_pv()) {
+ return;
+ }
+
if (running && td->stopped) {
/* Set the old TOD when running the VM - start the TOD clock. */
kvm_s390_set_tod_raw(&td->base, &local_err);
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 04/21] tests/tcg/s390x: Test compiler flags only once, not every time
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (2 preceding siblings ...)
2022-10-28 13:22 ` [PULL 03/21] s390x/tod-kvm: don't save/restore the TOD in PV guests Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 05/21] target/s390x: Fix emulation of the VISTR instruction Thomas Huth
` (18 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel
Cc: Alex Bennée, Richard Henderson, David Hildenbrand
This is common practice, see the Makefile.target in the aarch64
folder for example.
Suggested-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20221012182755.1014853-2-thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/tcg/s390x/Makefile.target | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/tests/tcg/s390x/Makefile.target b/tests/tcg/s390x/Makefile.target
index c830313e67..29c8af8207 100644
--- a/tests/tcg/s390x/Makefile.target
+++ b/tests/tcg/s390x/Makefile.target
@@ -1,6 +1,13 @@
S390X_SRC=$(SRC_PATH)/tests/tcg/s390x
VPATH+=$(S390X_SRC)
CFLAGS+=-march=zEC12 -m64
+
+config-cc.mak: Makefile
+ $(quiet-@)( \
+ $(call cc-option,-march=z14, CROSS_CC_HAS_Z14); \
+ $(call cc-option,-march=z15, CROSS_CC_HAS_Z15)) 3> config-cc.mak
+-include config-cc.mak
+
TESTS+=hello-s390x
TESTS+=csst
TESTS+=ipm
@@ -18,20 +25,20 @@ TESTS+=signals-s390x
TESTS+=branch-relative-long
TESTS+=noexec
+ifneq ($(CROSS_CC_HAS_Z14),)
Z14_TESTS=vfminmax
vfminmax: LDFLAGS+=-lm
$(Z14_TESTS): CFLAGS+=-march=z14 -O2
+TESTS+=$(Z14_TESTS)
+endif
-TESTS+=$(if $(shell $(CC) -march=z14 -S -o /dev/null -xc /dev/null \
- >/dev/null 2>&1 && echo OK),$(Z14_TESTS))
-
-VECTOR_TESTS=vxeh2_vs
-VECTOR_TESTS+=vxeh2_vcvt
-VECTOR_TESTS+=vxeh2_vlstr
-$(VECTOR_TESTS): CFLAGS+=-march=z15 -O2
-
-TESTS+=$(if $(shell $(CC) -march=z15 -S -o /dev/null -xc /dev/null \
- >/dev/null 2>&1 && echo OK),$(VECTOR_TESTS))
+ifneq ($(CROSS_CC_HAS_Z15),)
+Z15_TESTS=vxeh2_vs
+Z15_TESTS+=vxeh2_vcvt
+Z15_TESTS+=vxeh2_vlstr
+$(Z15_TESTS): CFLAGS+=-march=z15 -O2
+TESTS+=$(Z15_TESTS)
+endif
ifneq ($(HAVE_GDB_BIN),)
GDB_SCRIPT=$(SRC_PATH)/tests/guest-debug/run-test.py
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 05/21] target/s390x: Fix emulation of the VISTR instruction
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (3 preceding siblings ...)
2022-10-28 13:22 ` [PULL 04/21] tests/tcg/s390x: Test compiler flags only once, not every time Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 06/21] tests/tcg/s390x: Add a test for the vistr instruction Thomas Huth
` (17 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Richard Henderson, David Hildenbrand
The element size is encoded in the M3 field, not in the M4
field.
Fixes: be6324c6b734 ("s390x/tcg: Implement VECTOR ISOLATE STRING")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1248
Message-Id: <20221012182755.1014853-3-thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
target/s390x/tcg/translate_vx.c.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/s390x/tcg/translate_vx.c.inc b/target/s390x/tcg/translate_vx.c.inc
index 3526ba3e3b..b69c1a111c 100644
--- a/target/s390x/tcg/translate_vx.c.inc
+++ b/target/s390x/tcg/translate_vx.c.inc
@@ -2723,7 +2723,7 @@ static DisasJumpType op_vfene(DisasContext *s, DisasOps *o)
static DisasJumpType op_vistr(DisasContext *s, DisasOps *o)
{
- const uint8_t es = get_field(s, m4);
+ const uint8_t es = get_field(s, m3);
const uint8_t m5 = get_field(s, m5);
static gen_helper_gvec_2 * const g[3] = {
gen_helper_gvec_vistr8,
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 06/21] tests/tcg/s390x: Add a test for the vistr instruction
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (4 preceding siblings ...)
2022-10-28 13:22 ` [PULL 05/21] target/s390x: Fix emulation of the VISTR instruction Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 07/21] MAINTAINERS: target/s390x/: add Ilya as reviewer Thomas Huth
` (16 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Richard Henderson, David Hildenbrand
This test can be used to verify that the change in the previous
commit is indeed fixing the problem with the M3 vs. M4 field
mixup.
Message-Id: <20221012182755.1014853-4-thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/tcg/s390x/vistr.c | 45 +++++++++++++++++++++++++++++++++
tests/tcg/s390x/Makefile.target | 4 +++
2 files changed, 49 insertions(+)
create mode 100644 tests/tcg/s390x/vistr.c
diff --git a/tests/tcg/s390x/vistr.c b/tests/tcg/s390x/vistr.c
new file mode 100644
index 0000000000..8e3e987d71
--- /dev/null
+++ b/tests/tcg/s390x/vistr.c
@@ -0,0 +1,45 @@
+/*
+ * Test the VECTOR ISOLATE STRING (vistr) instruction
+ */
+#include <stdint.h>
+#include <stdio.h>
+#include "vx.h"
+
+static inline void vistr(S390Vector *v1, S390Vector *v2,
+ const uint8_t m3, const uint8_t m5)
+{
+ asm volatile("vistr %[v1], %[v2], %[m3], %[m5]\n"
+ : [v1] "=v" (v1->v)
+ : [v2] "v" (v2->v)
+ , [m3] "i" (m3)
+ , [m5] "i" (m5)
+ : "cc");
+}
+
+int main(int argc, char *argv[])
+{
+ S390Vector vd = {};
+ S390Vector vs16 = {
+ .h[0] = 0x1234, .h[1] = 0x0056, .h[2] = 0x7800, .h[3] = 0x0000,
+ .h[4] = 0x0078, .h[5] = 0x0000, .h[6] = 0x6543, .h[7] = 0x2100
+ };
+ S390Vector vs32 = {
+ .w[0] = 0x12340000, .w[1] = 0x78654300,
+ .w[2] = 0x0, .w[3] = 0x12,
+ };
+
+ vistr(&vd, &vs16, 1, 0);
+ if (vd.h[0] != 0x1234 || vd.h[1] != 0x0056 || vd.h[2] != 0x7800 ||
+ vd.h[3] || vd.h[4] || vd.h[5] || vd.h[6] || vd.h[7]) {
+ puts("ERROR: vitrh failed!");
+ return 1;
+ }
+
+ vistr(&vd, &vs32, 2, 0);
+ if (vd.w[0] != 0x12340000 || vd.w[1] != 0x78654300 || vd.w[2] || vd.w[3]) {
+ puts("ERROR: vitrf failed!");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/tests/tcg/s390x/Makefile.target b/tests/tcg/s390x/Makefile.target
index 29c8af8207..07fcc6d0ce 100644
--- a/tests/tcg/s390x/Makefile.target
+++ b/tests/tcg/s390x/Makefile.target
@@ -25,6 +25,10 @@ TESTS+=signals-s390x
TESTS+=branch-relative-long
TESTS+=noexec
+Z13_TESTS=vistr
+$(Z13_TESTS): CFLAGS+=-march=z13 -O2
+TESTS+=$(Z13_TESTS)
+
ifneq ($(CROSS_CC_HAS_Z14),)
Z14_TESTS=vfminmax
vfminmax: LDFLAGS+=-lm
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 07/21] MAINTAINERS: target/s390x/: add Ilya as reviewer
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (5 preceding siblings ...)
2022-10-28 13:22 ` [PULL 06/21] tests/tcg/s390x: Add a test for the vistr instruction Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 08/21] tests/qtest/tpm: Clean up remainders of swtpm Thomas Huth
` (15 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel
Cc: Christian Borntraeger, David Hildenbrand, Richard Henderson,
Ilya Leoshkevich
From: Christian Borntraeger <borntraeger@linux.ibm.com>
Ilya has volunteered to review TCG patches for s390x.
Signed-off-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Acked-by: David Hildenbrand <david@redhat.com>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
Message-Id: <20221019125640.3014143-1-borntraeger@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
MAINTAINERS | 1 +
1 file changed, 1 insertion(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 17ff0a0138..0a331eec7a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -303,6 +303,7 @@ F: target/rx/
S390 TCG CPUs
M: Richard Henderson <richard.henderson@linaro.org>
M: David Hildenbrand <david@redhat.com>
+R: Ilya Leoshkevich <iii@linux.ibm.com>
S: Maintained
F: target/s390x/
F: target/s390x/tcg
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 08/21] tests/qtest/tpm: Clean up remainders of swtpm
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (6 preceding siblings ...)
2022-10-28 13:22 ` [PULL 07/21] MAINTAINERS: target/s390x/: add Ilya as reviewer Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 09/21] tests/qtest/cxl-test: Remove temporary directories after testing Thomas Huth
` (14 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Stefan Berger
After running "make check", there are remainders of the tpm
tests left in the /tmp directory, slowly filling it up.
Seems like "swtpm" leaves a ".lock" and a "tpm2-00.permall"
file behind, so that the g_rmdir() calls on the temporary
directories fail. Introduce a helper function to remove those
leftovers before doing the g_rmdir().
Message-Id: <20221012084334.794253-1-thuth@redhat.com>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/tpm-util.h | 1 +
tests/qtest/tpm-crb-swtpm-test.c | 5 ++---
tests/qtest/tpm-tis-device-swtpm-test.c | 5 ++---
tests/qtest/tpm-tis-swtpm-test.c | 5 ++---
tests/qtest/tpm-util.c | 19 +++++++++++++++++++
5 files changed, 26 insertions(+), 9 deletions(-)
diff --git a/tests/qtest/tpm-util.h b/tests/qtest/tpm-util.h
index 3b97d69017..80720afac0 100644
--- a/tests/qtest/tpm-util.h
+++ b/tests/qtest/tpm-util.h
@@ -53,5 +53,6 @@ void tpm_util_migration_start_qemu(QTestState **src_qemu,
const char *machine_options);
void tpm_util_wait_for_migration_complete(QTestState *who);
+void tpm_util_rmdir(const char *path);
#endif /* TESTS_TPM_UTIL_H */
diff --git a/tests/qtest/tpm-crb-swtpm-test.c b/tests/qtest/tpm-crb-swtpm-test.c
index 55fdb5657d..40254f762f 100644
--- a/tests/qtest/tpm-crb-swtpm-test.c
+++ b/tests/qtest/tpm-crb-swtpm-test.c
@@ -13,7 +13,6 @@
*/
#include "qemu/osdep.h"
-#include <glib/gstdio.h>
#include "libqtest.h"
#include "qemu/module.h"
@@ -62,9 +61,9 @@ int main(int argc, char **argv)
tpm_crb_swtpm_migration_test);
ret = g_test_run();
- g_rmdir(ts.dst_tpm_path);
+ tpm_util_rmdir(ts.dst_tpm_path);
g_free(ts.dst_tpm_path);
- g_rmdir(ts.src_tpm_path);
+ tpm_util_rmdir(ts.src_tpm_path);
g_free(ts.src_tpm_path);
g_free(ts.uri);
diff --git a/tests/qtest/tpm-tis-device-swtpm-test.c b/tests/qtest/tpm-tis-device-swtpm-test.c
index 7b20035142..8c067fddd4 100644
--- a/tests/qtest/tpm-tis-device-swtpm-test.c
+++ b/tests/qtest/tpm-tis-device-swtpm-test.c
@@ -14,7 +14,6 @@
*/
#include "qemu/osdep.h"
-#include <glib/gstdio.h>
#include "libqtest.h"
#include "qemu/module.h"
@@ -66,9 +65,9 @@ int main(int argc, char **argv)
tpm_tis_swtpm_migration_test);
ret = g_test_run();
- g_rmdir(ts.dst_tpm_path);
+ tpm_util_rmdir(ts.dst_tpm_path);
g_free(ts.dst_tpm_path);
- g_rmdir(ts.src_tpm_path);
+ tpm_util_rmdir(ts.src_tpm_path);
g_free(ts.src_tpm_path);
g_free(ts.uri);
diff --git a/tests/qtest/tpm-tis-swtpm-test.c b/tests/qtest/tpm-tis-swtpm-test.c
index 90131cb3c4..11539c0a52 100644
--- a/tests/qtest/tpm-tis-swtpm-test.c
+++ b/tests/qtest/tpm-tis-swtpm-test.c
@@ -13,7 +13,6 @@
*/
#include "qemu/osdep.h"
-#include <glib/gstdio.h>
#include "libqtest.h"
#include "qemu/module.h"
@@ -61,9 +60,9 @@ int main(int argc, char **argv)
tpm_tis_swtpm_migration_test);
ret = g_test_run();
- g_rmdir(ts.dst_tpm_path);
+ tpm_util_rmdir(ts.dst_tpm_path);
g_free(ts.dst_tpm_path);
- g_rmdir(ts.src_tpm_path);
+ tpm_util_rmdir(ts.src_tpm_path);
g_free(ts.src_tpm_path);
g_free(ts.uri);
diff --git a/tests/qtest/tpm-util.c b/tests/qtest/tpm-util.c
index e0dc5da0af..a7efe2d0d2 100644
--- a/tests/qtest/tpm-util.c
+++ b/tests/qtest/tpm-util.c
@@ -13,6 +13,7 @@
*/
#include "qemu/osdep.h"
+#include <glib/gstdio.h>
#include "hw/acpi/tpm.h"
#include "libqtest.h"
@@ -292,3 +293,21 @@ void tpm_util_migration_start_qemu(QTestState **src_qemu,
g_free(src_qemu_args);
g_free(dst_qemu_args);
}
+
+/* Remove directory with remainders of swtpm */
+void tpm_util_rmdir(const char *path)
+{
+ char *filename;
+ int ret;
+
+ filename = g_strdup_printf("%s/tpm2-00.permall", path);
+ g_unlink(filename);
+ g_free(filename);
+
+ filename = g_strdup_printf("%s/.lock", path);
+ g_unlink(filename);
+ g_free(filename);
+
+ ret = g_rmdir(path);
+ g_assert(!ret);
+}
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 09/21] tests/qtest/cxl-test: Remove temporary directories after testing
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (7 preceding siblings ...)
2022-10-28 13:22 ` [PULL 08/21] tests/qtest/tpm: Clean up remainders of swtpm Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 10/21] tests/qtest/libqos/e1000e: Use e1000_regs.h Thomas Huth
` (13 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Zhang Chen, Jonathan Cameron
The cxl-test leaves some temporary directories behind. Let's
clean them up now!
Message-Id: <20221012091435.893570-1-thuth@redhat.com>
Reviewed-by: Zhang Chen <chen.zhang@intel.com>
Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/cxl-test.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tests/qtest/cxl-test.c b/tests/qtest/cxl-test.c
index cbe0fb549b..61f25a72b6 100644
--- a/tests/qtest/cxl-test.c
+++ b/tests/qtest/cxl-test.c
@@ -101,6 +101,7 @@ static void cxl_t3d(void)
qtest_start(cmdline->str);
qtest_end();
+ rmdir(tmpfs);
}
static void cxl_1pxb_2rp_2t3d(void)
@@ -115,6 +116,7 @@ static void cxl_1pxb_2rp_2t3d(void)
qtest_start(cmdline->str);
qtest_end();
+ rmdir(tmpfs);
}
static void cxl_2pxb_4rp_4t3d(void)
@@ -130,6 +132,7 @@ static void cxl_2pxb_4rp_4t3d(void)
qtest_start(cmdline->str);
qtest_end();
+ rmdir(tmpfs);
}
#endif /* CONFIG_POSIX */
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 10/21] tests/qtest/libqos/e1000e: Use e1000_regs.h
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (8 preceding siblings ...)
2022-10-28 13:22 ` [PULL 09/21] tests/qtest/cxl-test: Remove temporary directories after testing Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 11/21] tests/vm: update openbsd to release 7.2 Thomas Huth
` (12 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Akihiko Odaki
From: Akihiko Odaki <akihiko.odaki@daynix.com>
The register definitions in tests/qtest/libqos/e1000e.c had names
different from hw/net/e1000_regs.h, which made it hard to understand
what test codes corresponds to the implementation. Use
hw/net/e1000_regs.h from tests/qtest/libqos/e1000e.c to remove
these duplications.
E1000E_CTRL_EXT_TXLSFLOW is removed from E1000E_CTRL_EXT settings
because hw/net/e1000_regs.h does not have the definition and it is for
TCP segmentation offload, which does not matter for the implemented
tests.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20221013055245.28102-1-akihiko.odaki@daynix.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/net/e1000_regs.h | 1 +
tests/qtest/libqos/e1000e.c | 119 +++++++++++++-----------------------
2 files changed, 45 insertions(+), 75 deletions(-)
diff --git a/hw/net/e1000_regs.h b/hw/net/e1000_regs.h
index ae99f58bab..9d423f6c09 100644
--- a/hw/net/e1000_regs.h
+++ b/hw/net/e1000_regs.h
@@ -793,6 +793,7 @@
#define E1000_CTRL_EXT_ASDCHK 0x00001000 /* auto speed detection check */
#define E1000_CTRL_EXT_EE_RST 0x00002000 /* EEPROM reset */
#define E1000_CTRL_EXT_LINK_EN 0x00010000 /* enable link status from external LINK_0 and LINK_1 pins */
+#define E1000_CTRL_EXT_DRV_LOAD 0x10000000 /* Driver loaded bit for FW */
#define E1000_CTRL_EXT_EIAME 0x01000000
#define E1000_CTRL_EXT_IAME 0x08000000 /* Int ACK Auto-mask */
#define E1000_CTRL_EXT_PBA_CLR 0x80000000 /* PBA Clear */
diff --git a/tests/qtest/libqos/e1000e.c b/tests/qtest/libqos/e1000e.c
index fc14b07884..ed47e34044 100644
--- a/tests/qtest/libqos/e1000e.c
+++ b/tests/qtest/libqos/e1000e.c
@@ -17,6 +17,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/net/e1000_regs.h"
#include "../libqtest.h"
#include "pci-pc.h"
#include "qemu/sockets.h"
@@ -27,49 +28,13 @@
#include "qgraph.h"
#include "e1000e.h"
-#define E1000E_IMS (0x00d0)
+#define E1000E_IVAR_TEST_CFG \
+ (E1000E_RX0_MSG_ID | E1000_IVAR_INT_ALLOC_VALID | \
+ ((E1000E_TX0_MSG_ID | E1000_IVAR_INT_ALLOC_VALID) << 8) | \
+ ((E1000E_OTHER_MSG_ID | E1000_IVAR_INT_ALLOC_VALID) << 16) | \
+ E1000_IVAR_TX_INT_EVERY_WB)
-#define E1000E_STATUS (0x0008)
-#define E1000E_STATUS_LU BIT(1)
-#define E1000E_STATUS_ASDV1000 BIT(9)
-
-#define E1000E_CTRL (0x0000)
-#define E1000E_CTRL_RESET BIT(26)
-
-#define E1000E_RCTL (0x0100)
-#define E1000E_RCTL_EN BIT(1)
-#define E1000E_RCTL_UPE BIT(3)
-#define E1000E_RCTL_MPE BIT(4)
-
-#define E1000E_RFCTL (0x5008)
-#define E1000E_RFCTL_EXTEN BIT(15)
-
-#define E1000E_TCTL (0x0400)
-#define E1000E_TCTL_EN BIT(1)
-
-#define E1000E_CTRL_EXT (0x0018)
-#define E1000E_CTRL_EXT_DRV_LOAD BIT(28)
-#define E1000E_CTRL_EXT_TXLSFLOW BIT(22)
-
-#define E1000E_IVAR (0x00E4)
-#define E1000E_IVAR_TEST_CFG ((E1000E_RX0_MSG_ID << 0) | BIT(3) | \
- (E1000E_TX0_MSG_ID << 8) | BIT(11) | \
- (E1000E_OTHER_MSG_ID << 16) | BIT(19) | \
- BIT(31))
-
-#define E1000E_RING_LEN (0x1000)
-
-#define E1000E_TDBAL (0x3800)
-
-#define E1000E_TDBAH (0x3804)
-#define E1000E_TDH (0x3810)
-
-#define E1000E_RDBAL (0x2800)
-#define E1000E_RDBAH (0x2804)
-#define E1000E_RDH (0x2810)
-
-#define E1000E_TXD_LEN (16)
-#define E1000E_RXD_LEN (16)
+#define E1000E_RING_LEN (0x1000)
static void e1000e_macreg_write(QE1000E *d, uint32_t reg, uint32_t val)
{
@@ -87,30 +52,34 @@ void e1000e_tx_ring_push(QE1000E *d, void *descr)
{
QE1000E_PCI *d_pci = container_of(d, QE1000E_PCI, e1000e);
uint32_t tail = e1000e_macreg_read(d, E1000E_TDT);
- uint32_t len = e1000e_macreg_read(d, E1000E_TDLEN) / E1000E_TXD_LEN;
+ uint32_t len = e1000e_macreg_read(d, E1000E_TDLEN) / E1000_RING_DESC_LEN;
- qtest_memwrite(d_pci->pci_dev.bus->qts, d->tx_ring + tail * E1000E_TXD_LEN,
- descr, E1000E_TXD_LEN);
+ qtest_memwrite(d_pci->pci_dev.bus->qts,
+ d->tx_ring + tail * E1000_RING_DESC_LEN,
+ descr, E1000_RING_DESC_LEN);
e1000e_macreg_write(d, E1000E_TDT, (tail + 1) % len);
/* Read WB data for the packet transmitted */
- qtest_memread(d_pci->pci_dev.bus->qts, d->tx_ring + tail * E1000E_TXD_LEN,
- descr, E1000E_TXD_LEN);
+ qtest_memread(d_pci->pci_dev.bus->qts,
+ d->tx_ring + tail * E1000_RING_DESC_LEN,
+ descr, E1000_RING_DESC_LEN);
}
void e1000e_rx_ring_push(QE1000E *d, void *descr)
{
QE1000E_PCI *d_pci = container_of(d, QE1000E_PCI, e1000e);
uint32_t tail = e1000e_macreg_read(d, E1000E_RDT);
- uint32_t len = e1000e_macreg_read(d, E1000E_RDLEN) / E1000E_RXD_LEN;
+ uint32_t len = e1000e_macreg_read(d, E1000E_RDLEN) / E1000_RING_DESC_LEN;
- qtest_memwrite(d_pci->pci_dev.bus->qts, d->rx_ring + tail * E1000E_RXD_LEN,
- descr, E1000E_RXD_LEN);
+ qtest_memwrite(d_pci->pci_dev.bus->qts,
+ d->rx_ring + tail * E1000_RING_DESC_LEN,
+ descr, E1000_RING_DESC_LEN);
e1000e_macreg_write(d, E1000E_RDT, (tail + 1) % len);
/* Read WB data for the packet received */
- qtest_memread(d_pci->pci_dev.bus->qts, d->rx_ring + tail * E1000E_RXD_LEN,
- descr, E1000E_RXD_LEN);
+ qtest_memread(d_pci->pci_dev.bus->qts,
+ d->rx_ring + tail * E1000_RING_DESC_LEN,
+ descr, E1000_RING_DESC_LEN);
}
static void e1000e_foreach_callback(QPCIDevice *dev, int devfn, void *data)
@@ -151,53 +120,53 @@ static void e1000e_pci_start_hw(QOSGraphObject *obj)
qpci_device_enable(&d->pci_dev);
/* Reset the device */
- val = e1000e_macreg_read(&d->e1000e, E1000E_CTRL);
- e1000e_macreg_write(&d->e1000e, E1000E_CTRL, val | E1000E_CTRL_RESET);
+ val = e1000e_macreg_read(&d->e1000e, E1000_CTRL);
+ e1000e_macreg_write(&d->e1000e, E1000_CTRL, val | E1000_CTRL_RST);
/* Enable and configure MSI-X */
qpci_msix_enable(&d->pci_dev);
- e1000e_macreg_write(&d->e1000e, E1000E_IVAR, E1000E_IVAR_TEST_CFG);
+ e1000e_macreg_write(&d->e1000e, E1000_IVAR, E1000E_IVAR_TEST_CFG);
/* Check the device status - link and speed */
- val = e1000e_macreg_read(&d->e1000e, E1000E_STATUS);
- g_assert_cmphex(val & (E1000E_STATUS_LU | E1000E_STATUS_ASDV1000),
- ==, E1000E_STATUS_LU | E1000E_STATUS_ASDV1000);
+ val = e1000e_macreg_read(&d->e1000e, E1000_STATUS);
+ g_assert_cmphex(val & (E1000_STATUS_LU | E1000_STATUS_LAN_INIT_DONE),
+ ==, E1000_STATUS_LU | E1000_STATUS_LAN_INIT_DONE);
/* Initialize TX/RX logic */
- e1000e_macreg_write(&d->e1000e, E1000E_RCTL, 0);
- e1000e_macreg_write(&d->e1000e, E1000E_TCTL, 0);
+ e1000e_macreg_write(&d->e1000e, E1000_RCTL, 0);
+ e1000e_macreg_write(&d->e1000e, E1000_TCTL, 0);
/* Notify the device that the driver is ready */
- val = e1000e_macreg_read(&d->e1000e, E1000E_CTRL_EXT);
- e1000e_macreg_write(&d->e1000e, E1000E_CTRL_EXT,
- val | E1000E_CTRL_EXT_DRV_LOAD | E1000E_CTRL_EXT_TXLSFLOW);
+ val = e1000e_macreg_read(&d->e1000e, E1000_CTRL_EXT);
+ e1000e_macreg_write(&d->e1000e, E1000_CTRL_EXT,
+ val | E1000_CTRL_EXT_DRV_LOAD);
- e1000e_macreg_write(&d->e1000e, E1000E_TDBAL,
+ e1000e_macreg_write(&d->e1000e, E1000_TDBAL,
(uint32_t) d->e1000e.tx_ring);
- e1000e_macreg_write(&d->e1000e, E1000E_TDBAH,
+ e1000e_macreg_write(&d->e1000e, E1000_TDBAH,
(uint32_t) (d->e1000e.tx_ring >> 32));
e1000e_macreg_write(&d->e1000e, E1000E_TDLEN, E1000E_RING_LEN);
e1000e_macreg_write(&d->e1000e, E1000E_TDT, 0);
- e1000e_macreg_write(&d->e1000e, E1000E_TDH, 0);
+ e1000e_macreg_write(&d->e1000e, E1000_TDH, 0);
/* Enable transmit */
- e1000e_macreg_write(&d->e1000e, E1000E_TCTL, E1000E_TCTL_EN);
- e1000e_macreg_write(&d->e1000e, E1000E_RDBAL,
+ e1000e_macreg_write(&d->e1000e, E1000_TCTL, E1000_TCTL_EN);
+ e1000e_macreg_write(&d->e1000e, E1000_RDBAL,
(uint32_t)d->e1000e.rx_ring);
- e1000e_macreg_write(&d->e1000e, E1000E_RDBAH,
+ e1000e_macreg_write(&d->e1000e, E1000_RDBAH,
(uint32_t)(d->e1000e.rx_ring >> 32));
e1000e_macreg_write(&d->e1000e, E1000E_RDLEN, E1000E_RING_LEN);
e1000e_macreg_write(&d->e1000e, E1000E_RDT, 0);
- e1000e_macreg_write(&d->e1000e, E1000E_RDH, 0);
+ e1000e_macreg_write(&d->e1000e, E1000_RDH, 0);
/* Enable receive */
- e1000e_macreg_write(&d->e1000e, E1000E_RFCTL, E1000E_RFCTL_EXTEN);
- e1000e_macreg_write(&d->e1000e, E1000E_RCTL, E1000E_RCTL_EN |
- E1000E_RCTL_UPE |
- E1000E_RCTL_MPE);
+ e1000e_macreg_write(&d->e1000e, E1000_RFCTL, E1000_RFCTL_EXTEN);
+ e1000e_macreg_write(&d->e1000e, E1000_RCTL, E1000_RCTL_EN |
+ E1000_RCTL_UPE |
+ E1000_RCTL_MPE);
/* Enable all interrupts */
- e1000e_macreg_write(&d->e1000e, E1000E_IMS, 0xFFFFFFFF);
+ e1000e_macreg_write(&d->e1000e, E1000_IMS, 0xFFFFFFFF);
}
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 11/21] tests/vm: update openbsd to release 7.2
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (9 preceding siblings ...)
2022-10-28 13:22 ` [PULL 10/21] tests/qtest/libqos/e1000e: Use e1000_regs.h Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 12/21] tests: Add sndio to the FreeBSD CI containers / VM Thomas Huth
` (11 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Brad Smith
From: Brad Smith <brad@comstyle.com>
tests/vm: update openbsd to release 7.2
Signed-off-by: Brad Smith <brad@comstyle.com>
Message-Id: <Y1TKVwNKvk+euT/s@humpty.home.comstyle.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/vm/openbsd | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/tests/vm/openbsd b/tests/vm/openbsd
index 6f1b6f5b98..eaeb201e91 100755
--- a/tests/vm/openbsd
+++ b/tests/vm/openbsd
@@ -22,8 +22,8 @@ class OpenBSDVM(basevm.BaseVM):
name = "openbsd"
arch = "x86_64"
- link = "https://cdn.openbsd.org/pub/OpenBSD/7.1/amd64/install71.iso"
- csum = "d3a7c5b9bf890bc404304a1c96f9ee72e1d9bbcf9cc849c1133bdb0d67843396"
+ link = "https://cdn.openbsd.org/pub/OpenBSD/7.2/amd64/install72.iso"
+ csum = "0369ef40a3329efcb978c578c7fdc7bda71e502aecec930a74b44160928c91d3"
size = "20G"
pkgs = [
# tools
@@ -56,6 +56,9 @@ class OpenBSDVM(basevm.BaseVM):
# libs: migration
"zstd",
+
+ # libs: networking
+ "libslirp",
]
BUILD_SCRIPT = """
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 12/21] tests: Add sndio to the FreeBSD CI containers / VM
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (10 preceding siblings ...)
2022-10-28 13:22 ` [PULL 11/21] tests/vm: update openbsd to release 7.2 Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 13/21] accel/qtest: Support qtest accelerator for Windows Thomas Huth
` (10 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel
Cc: Brad Smith, Daniel P . Berrangé, Warner Losh
From: Brad Smith <brad@comstyle.com>
Add sndio to the FreeBSD CI containers / VM
Signed-off-by: Brad Smith <brad@comstyle.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Warner Losh <imp@bsdimp.com>
Message-Id: <Y1f6dxjvD01DtXyG@humpty.home.comstyle.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
.gitlab-ci.d/cirrus/freebsd-12.vars | 2 +-
.gitlab-ci.d/cirrus/freebsd-13.vars | 2 +-
tests/docker/dockerfiles/alpine.docker | 3 +-
tests/docker/dockerfiles/centos8.docker | 2 +-
.../dockerfiles/debian-amd64-cross.docker | 235 ++++++++---------
tests/docker/dockerfiles/debian-amd64.docker | 237 +++++++++---------
.../dockerfiles/debian-arm64-cross.docker | 233 ++++++++---------
.../dockerfiles/debian-armel-cross.docker | 231 ++++++++---------
.../dockerfiles/debian-armhf-cross.docker | 233 ++++++++---------
.../dockerfiles/debian-mips64el-cross.docker | 227 ++++++++---------
.../dockerfiles/debian-mipsel-cross.docker | 227 ++++++++---------
.../dockerfiles/debian-ppc64el-cross.docker | 231 ++++++++---------
.../dockerfiles/debian-s390x-cross.docker | 229 ++++++++---------
tests/docker/dockerfiles/fedora.docker | 230 ++++++++---------
tests/docker/dockerfiles/opensuse-leap.docker | 3 +-
tests/docker/dockerfiles/ubuntu2004.docker | 235 ++++++++---------
tests/lcitool/libvirt-ci | 2 +-
tests/lcitool/projects/qemu.yml | 1 +
tests/vm/freebsd | 3 +
19 files changed, 1291 insertions(+), 1275 deletions(-)
diff --git a/.gitlab-ci.d/cirrus/freebsd-12.vars b/.gitlab-ci.d/cirrus/freebsd-12.vars
index c3db1d7d30..e3fc3235b9 100644
--- a/.gitlab-ci.d/cirrus/freebsd-12.vars
+++ b/.gitlab-ci.d/cirrus/freebsd-12.vars
@@ -11,6 +11,6 @@ MAKE='/usr/local/bin/gmake'
NINJA='/usr/local/bin/ninja'
PACKAGING_COMMAND='pkg'
PIP3='/usr/local/bin/pip-3.8'
-PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage cmocka ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson ncurses nettle ninja opencv perl5 pixman pkgconf png py39-numpy py39-pillow py39-pip py39-sphinx py39-sphinx_rtd_theme py39-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
+PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage cmocka ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson ncurses nettle ninja opencv perl5 pixman pkgconf png py39-numpy py39-pillow py39-pip py39-sphinx py39-sphinx_rtd_theme py39-yaml python3 rpm2cpio sdl2 sdl2_image snappy sndio spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
PYPI_PKGS=''
PYTHON='/usr/local/bin/python3'
diff --git a/.gitlab-ci.d/cirrus/freebsd-13.vars b/.gitlab-ci.d/cirrus/freebsd-13.vars
index d31faa787f..9f56babd9c 100644
--- a/.gitlab-ci.d/cirrus/freebsd-13.vars
+++ b/.gitlab-ci.d/cirrus/freebsd-13.vars
@@ -11,6 +11,6 @@ MAKE='/usr/local/bin/gmake'
NINJA='/usr/local/bin/ninja'
PACKAGING_COMMAND='pkg'
PIP3='/usr/local/bin/pip-3.8'
-PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage cmocka ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson ncurses nettle ninja opencv perl5 pixman pkgconf png py39-numpy py39-pillow py39-pip py39-sphinx py39-sphinx_rtd_theme py39-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
+PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage cmocka ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson ncurses nettle ninja opencv perl5 pixman pkgconf png py39-numpy py39-pillow py39-pip py39-sphinx py39-sphinx_rtd_theme py39-yaml python3 rpm2cpio sdl2 sdl2_image snappy sndio spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
PYPI_PKGS=''
PYTHON='/usr/local/bin/python3'
diff --git a/tests/docker/dockerfiles/alpine.docker b/tests/docker/dockerfiles/alpine.docker
index 9b7541261a..094f66f4eb 100644
--- a/tests/docker/dockerfiles/alpine.docker
+++ b/tests/docker/dockerfiles/alpine.docker
@@ -94,6 +94,7 @@ RUN apk update && \
sdl2_image-dev \
sed \
snappy-dev \
+ sndio-dev \
sparse \
spice-dev \
spice-protocol \
@@ -119,8 +120,8 @@ RUN apk update && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/tests/docker/dockerfiles/centos8.docker b/tests/docker/dockerfiles/centos8.docker
index d89113c0df..1f70d41aeb 100644
--- a/tests/docker/dockerfiles/centos8.docker
+++ b/tests/docker/dockerfiles/centos8.docker
@@ -130,8 +130,8 @@ RUN dnf distro-sync -y && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/tests/docker/dockerfiles/debian-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker
index 9047759e76..5e57309361 100644
--- a/tests/docker/dockerfiles/debian-amd64-cross.docker
+++ b/tests/docker/dockerfiles/debian-amd64-cross.docker
@@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get install -y eatmydata && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y \
- bash \
- bc \
- bison \
- bsdextrautils \
- bzip2 \
- ca-certificates \
- ccache \
- dbus \
- debianutils \
- diffutils \
- exuberant-ctags \
- findutils \
- flex \
- gcovr \
- genisoimage \
- gettext \
- git \
- hostname \
- libglib2.0-dev \
- libpcre2-dev \
- libspice-protocol-dev \
- llvm \
- locales \
- make \
- meson \
- ncat \
- ninja-build \
- openssh-client \
- perl-base \
- pkgconf \
- python3 \
- python3-numpy \
- python3-opencv \
- python3-pillow \
- python3-pip \
- python3-sphinx \
- python3-sphinx-rtd-theme \
- python3-venv \
- python3-yaml \
- rpm2cpio \
- sed \
- sparse \
- tar \
- tesseract-ocr \
- tesseract-ocr-eng \
- texinfo && \
+ bash \
+ bc \
+ bison \
+ bsdextrautils \
+ bzip2 \
+ ca-certificates \
+ ccache \
+ dbus \
+ debianutils \
+ diffutils \
+ exuberant-ctags \
+ findutils \
+ flex \
+ gcovr \
+ genisoimage \
+ gettext \
+ git \
+ hostname \
+ libglib2.0-dev \
+ libpcre2-dev \
+ libsndio-dev \
+ libspice-protocol-dev \
+ llvm \
+ locales \
+ make \
+ meson \
+ ncat \
+ ninja-build \
+ openssh-client \
+ perl-base \
+ pkgconf \
+ python3 \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-sphinx \
+ python3-sphinx-rtd-theme \
+ python3-venv \
+ python3-yaml \
+ rpm2cpio \
+ sed \
+ sparse \
+ tar \
+ tesseract-ocr \
+ tesseract-ocr-eng \
+ texinfo && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture amd64 && \
@@ -74,76 +75,76 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
eatmydata apt-get install --no-install-recommends -y \
- g++-x86-64-linux-gnu \
- gcc-x86-64-linux-gnu \
- libaio-dev:amd64 \
- libasan5:amd64 \
- libasound2-dev:amd64 \
- libattr1-dev:amd64 \
- libbpf-dev:amd64 \
- libbrlapi-dev:amd64 \
- libbz2-dev:amd64 \
- libc6-dev:amd64 \
- libcacard-dev:amd64 \
- libcap-ng-dev:amd64 \
- libcapstone-dev:amd64 \
- libcmocka-dev:amd64 \
- libcurl4-gnutls-dev:amd64 \
- libdaxctl-dev:amd64 \
- libdrm-dev:amd64 \
- libepoxy-dev:amd64 \
- libfdt-dev:amd64 \
- libffi-dev:amd64 \
- libfuse3-dev:amd64 \
- libgbm-dev:amd64 \
- libgcrypt20-dev:amd64 \
- libglib2.0-dev:amd64 \
- libglusterfs-dev:amd64 \
- libgnutls28-dev:amd64 \
- libgtk-3-dev:amd64 \
- libibumad-dev:amd64 \
- libibverbs-dev:amd64 \
- libiscsi-dev:amd64 \
- libjemalloc-dev:amd64 \
- libjpeg62-turbo-dev:amd64 \
- libjson-c-dev:amd64 \
- liblttng-ust-dev:amd64 \
- liblzo2-dev:amd64 \
- libncursesw5-dev:amd64 \
- libnfs-dev:amd64 \
- libnuma-dev:amd64 \
- libpam0g-dev:amd64 \
- libpixman-1-dev:amd64 \
- libpmem-dev:amd64 \
- libpng-dev:amd64 \
- libpulse-dev:amd64 \
- librbd-dev:amd64 \
- librdmacm-dev:amd64 \
- libsasl2-dev:amd64 \
- libsdl2-dev:amd64 \
- libsdl2-image-dev:amd64 \
- libseccomp-dev:amd64 \
- libselinux1-dev:amd64 \
- libslirp-dev:amd64 \
- libsnappy-dev:amd64 \
- libspice-server-dev:amd64 \
- libssh-gcrypt-dev:amd64 \
- libsystemd-dev:amd64 \
- libtasn1-6-dev:amd64 \
- libubsan1:amd64 \
- libudev-dev:amd64 \
- liburing-dev:amd64 \
- libusb-1.0-0-dev:amd64 \
- libusbredirhost-dev:amd64 \
- libvdeplug-dev:amd64 \
- libvirglrenderer-dev:amd64 \
- libvte-2.91-dev:amd64 \
- libxen-dev:amd64 \
- libzstd-dev:amd64 \
- nettle-dev:amd64 \
- systemtap-sdt-dev:amd64 \
- xfslibs-dev:amd64 \
- zlib1g-dev:amd64 && \
+ g++-x86-64-linux-gnu \
+ gcc-x86-64-linux-gnu \
+ libaio-dev:amd64 \
+ libasan5:amd64 \
+ libasound2-dev:amd64 \
+ libattr1-dev:amd64 \
+ libbpf-dev:amd64 \
+ libbrlapi-dev:amd64 \
+ libbz2-dev:amd64 \
+ libc6-dev:amd64 \
+ libcacard-dev:amd64 \
+ libcap-ng-dev:amd64 \
+ libcapstone-dev:amd64 \
+ libcmocka-dev:amd64 \
+ libcurl4-gnutls-dev:amd64 \
+ libdaxctl-dev:amd64 \
+ libdrm-dev:amd64 \
+ libepoxy-dev:amd64 \
+ libfdt-dev:amd64 \
+ libffi-dev:amd64 \
+ libfuse3-dev:amd64 \
+ libgbm-dev:amd64 \
+ libgcrypt20-dev:amd64 \
+ libglib2.0-dev:amd64 \
+ libglusterfs-dev:amd64 \
+ libgnutls28-dev:amd64 \
+ libgtk-3-dev:amd64 \
+ libibumad-dev:amd64 \
+ libibverbs-dev:amd64 \
+ libiscsi-dev:amd64 \
+ libjemalloc-dev:amd64 \
+ libjpeg62-turbo-dev:amd64 \
+ libjson-c-dev:amd64 \
+ liblttng-ust-dev:amd64 \
+ liblzo2-dev:amd64 \
+ libncursesw5-dev:amd64 \
+ libnfs-dev:amd64 \
+ libnuma-dev:amd64 \
+ libpam0g-dev:amd64 \
+ libpixman-1-dev:amd64 \
+ libpmem-dev:amd64 \
+ libpng-dev:amd64 \
+ libpulse-dev:amd64 \
+ librbd-dev:amd64 \
+ librdmacm-dev:amd64 \
+ libsasl2-dev:amd64 \
+ libsdl2-dev:amd64 \
+ libsdl2-image-dev:amd64 \
+ libseccomp-dev:amd64 \
+ libselinux1-dev:amd64 \
+ libslirp-dev:amd64 \
+ libsnappy-dev:amd64 \
+ libspice-server-dev:amd64 \
+ libssh-gcrypt-dev:amd64 \
+ libsystemd-dev:amd64 \
+ libtasn1-6-dev:amd64 \
+ libubsan1:amd64 \
+ libudev-dev:amd64 \
+ liburing-dev:amd64 \
+ libusb-1.0-0-dev:amd64 \
+ libusbredirhost-dev:amd64 \
+ libvdeplug-dev:amd64 \
+ libvirglrenderer-dev:amd64 \
+ libvte-2.91-dev:amd64 \
+ libxen-dev:amd64 \
+ libzstd-dev:amd64 \
+ nettle-dev:amd64 \
+ systemtap-sdt-dev:amd64 \
+ xfslibs-dev:amd64 \
+ zlib1g-dev:amd64 && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
diff --git a/tests/docker/dockerfiles/debian-amd64.docker b/tests/docker/dockerfiles/debian-amd64.docker
index a8b728ca64..bfeab01ee3 100644
--- a/tests/docker/dockerfiles/debian-amd64.docker
+++ b/tests/docker/dockerfiles/debian-amd64.docker
@@ -11,123 +11,124 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get install -y eatmydata && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y \
- bash \
- bc \
- bison \
- bsdextrautils \
- bzip2 \
- ca-certificates \
- ccache \
- clang \
- dbus \
- debianutils \
- diffutils \
- exuberant-ctags \
- findutils \
- flex \
- g++ \
- gcc \
- gcovr \
- genisoimage \
- gettext \
- git \
- hostname \
- libaio-dev \
- libasan5 \
- libasound2-dev \
- libattr1-dev \
- libbpf-dev \
- libbrlapi-dev \
- libbz2-dev \
- libc6-dev \
- libcacard-dev \
- libcap-ng-dev \
- libcapstone-dev \
- libcmocka-dev \
- libcurl4-gnutls-dev \
- libdaxctl-dev \
- libdrm-dev \
- libepoxy-dev \
- libfdt-dev \
- libffi-dev \
- libfuse3-dev \
- libgbm-dev \
- libgcrypt20-dev \
- libglib2.0-dev \
- libglusterfs-dev \
- libgnutls28-dev \
- libgtk-3-dev \
- libibumad-dev \
- libibverbs-dev \
- libiscsi-dev \
- libjemalloc-dev \
- libjpeg62-turbo-dev \
- libjson-c-dev \
- liblttng-ust-dev \
- liblzo2-dev \
- libncursesw5-dev \
- libnfs-dev \
- libnuma-dev \
- libpam0g-dev \
- libpcre2-dev \
- libpixman-1-dev \
- libpmem-dev \
- libpng-dev \
- libpulse-dev \
- librbd-dev \
- librdmacm-dev \
- libsasl2-dev \
- libsdl2-dev \
- libsdl2-image-dev \
- libseccomp-dev \
- libselinux1-dev \
- libslirp-dev \
- libsnappy-dev \
- libspice-protocol-dev \
- libspice-server-dev \
- libssh-gcrypt-dev \
- libsystemd-dev \
- libtasn1-6-dev \
- libubsan1 \
- libudev-dev \
- liburing-dev \
- libusb-1.0-0-dev \
- libusbredirhost-dev \
- libvdeplug-dev \
- libvirglrenderer-dev \
- libvte-2.91-dev \
- libxen-dev \
- libzstd-dev \
- llvm \
- locales \
- make \
- meson \
- multipath-tools \
- ncat \
- nettle-dev \
- ninja-build \
- openssh-client \
- perl-base \
- pkgconf \
- python3 \
- python3-numpy \
- python3-opencv \
- python3-pillow \
- python3-pip \
- python3-sphinx \
- python3-sphinx-rtd-theme \
- python3-venv \
- python3-yaml \
- rpm2cpio \
- sed \
- sparse \
- systemtap-sdt-dev \
- tar \
- tesseract-ocr \
- tesseract-ocr-eng \
- texinfo \
- xfslibs-dev \
- zlib1g-dev && \
+ bash \
+ bc \
+ bison \
+ bsdextrautils \
+ bzip2 \
+ ca-certificates \
+ ccache \
+ clang \
+ dbus \
+ debianutils \
+ diffutils \
+ exuberant-ctags \
+ findutils \
+ flex \
+ g++ \
+ gcc \
+ gcovr \
+ genisoimage \
+ gettext \
+ git \
+ hostname \
+ libaio-dev \
+ libasan5 \
+ libasound2-dev \
+ libattr1-dev \
+ libbpf-dev \
+ libbrlapi-dev \
+ libbz2-dev \
+ libc6-dev \
+ libcacard-dev \
+ libcap-ng-dev \
+ libcapstone-dev \
+ libcmocka-dev \
+ libcurl4-gnutls-dev \
+ libdaxctl-dev \
+ libdrm-dev \
+ libepoxy-dev \
+ libfdt-dev \
+ libffi-dev \
+ libfuse3-dev \
+ libgbm-dev \
+ libgcrypt20-dev \
+ libglib2.0-dev \
+ libglusterfs-dev \
+ libgnutls28-dev \
+ libgtk-3-dev \
+ libibumad-dev \
+ libibverbs-dev \
+ libiscsi-dev \
+ libjemalloc-dev \
+ libjpeg62-turbo-dev \
+ libjson-c-dev \
+ liblttng-ust-dev \
+ liblzo2-dev \
+ libncursesw5-dev \
+ libnfs-dev \
+ libnuma-dev \
+ libpam0g-dev \
+ libpcre2-dev \
+ libpixman-1-dev \
+ libpmem-dev \
+ libpng-dev \
+ libpulse-dev \
+ librbd-dev \
+ librdmacm-dev \
+ libsasl2-dev \
+ libsdl2-dev \
+ libsdl2-image-dev \
+ libseccomp-dev \
+ libselinux1-dev \
+ libslirp-dev \
+ libsnappy-dev \
+ libsndio-dev \
+ libspice-protocol-dev \
+ libspice-server-dev \
+ libssh-gcrypt-dev \
+ libsystemd-dev \
+ libtasn1-6-dev \
+ libubsan1 \
+ libudev-dev \
+ liburing-dev \
+ libusb-1.0-0-dev \
+ libusbredirhost-dev \
+ libvdeplug-dev \
+ libvirglrenderer-dev \
+ libvte-2.91-dev \
+ libxen-dev \
+ libzstd-dev \
+ llvm \
+ locales \
+ make \
+ meson \
+ multipath-tools \
+ ncat \
+ nettle-dev \
+ ninja-build \
+ openssh-client \
+ perl-base \
+ pkgconf \
+ python3 \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-sphinx \
+ python3-sphinx-rtd-theme \
+ python3-venv \
+ python3-yaml \
+ rpm2cpio \
+ sed \
+ sparse \
+ systemtap-sdt-dev \
+ tar \
+ tesseract-ocr \
+ tesseract-ocr-eng \
+ texinfo \
+ xfslibs-dev \
+ zlib1g-dev && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
@@ -140,11 +141,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
# netmap/cscope/global
RUN DEBIAN_FRONTEND=noninteractive eatmydata \
apt install -y --no-install-recommends \
diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
index 17a5709245..98885bd0ee 100644
--- a/tests/docker/dockerfiles/debian-arm64-cross.docker
+++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
@@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get install -y eatmydata && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y \
- bash \
- bc \
- bison \
- bsdextrautils \
- bzip2 \
- ca-certificates \
- ccache \
- dbus \
- debianutils \
- diffutils \
- exuberant-ctags \
- findutils \
- flex \
- gcovr \
- genisoimage \
- gettext \
- git \
- hostname \
- libglib2.0-dev \
- libpcre2-dev \
- libspice-protocol-dev \
- llvm \
- locales \
- make \
- meson \
- ncat \
- ninja-build \
- openssh-client \
- perl-base \
- pkgconf \
- python3 \
- python3-numpy \
- python3-opencv \
- python3-pillow \
- python3-pip \
- python3-sphinx \
- python3-sphinx-rtd-theme \
- python3-venv \
- python3-yaml \
- rpm2cpio \
- sed \
- sparse \
- tar \
- tesseract-ocr \
- tesseract-ocr-eng \
- texinfo && \
+ bash \
+ bc \
+ bison \
+ bsdextrautils \
+ bzip2 \
+ ca-certificates \
+ ccache \
+ dbus \
+ debianutils \
+ diffutils \
+ exuberant-ctags \
+ findutils \
+ flex \
+ gcovr \
+ genisoimage \
+ gettext \
+ git \
+ hostname \
+ libglib2.0-dev \
+ libpcre2-dev \
+ libsndio-dev \
+ libspice-protocol-dev \
+ llvm \
+ locales \
+ make \
+ meson \
+ ncat \
+ ninja-build \
+ openssh-client \
+ perl-base \
+ pkgconf \
+ python3 \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-sphinx \
+ python3-sphinx-rtd-theme \
+ python3-venv \
+ python3-yaml \
+ rpm2cpio \
+ sed \
+ sparse \
+ tar \
+ tesseract-ocr \
+ tesseract-ocr-eng \
+ texinfo && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture arm64 && \
@@ -74,75 +75,75 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
eatmydata apt-get install --no-install-recommends -y \
- g++-aarch64-linux-gnu \
- gcc-aarch64-linux-gnu \
- libaio-dev:arm64 \
- libasan5:arm64 \
- libasound2-dev:arm64 \
- libattr1-dev:arm64 \
- libbpf-dev:arm64 \
- libbrlapi-dev:arm64 \
- libbz2-dev:arm64 \
- libc6-dev:arm64 \
- libcacard-dev:arm64 \
- libcap-ng-dev:arm64 \
- libcapstone-dev:arm64 \
- libcmocka-dev:arm64 \
- libcurl4-gnutls-dev:arm64 \
- libdaxctl-dev:arm64 \
- libdrm-dev:arm64 \
- libepoxy-dev:arm64 \
- libfdt-dev:arm64 \
- libffi-dev:arm64 \
- libfuse3-dev:arm64 \
- libgbm-dev:arm64 \
- libgcrypt20-dev:arm64 \
- libglib2.0-dev:arm64 \
- libglusterfs-dev:arm64 \
- libgnutls28-dev:arm64 \
- libgtk-3-dev:arm64 \
- libibumad-dev:arm64 \
- libibverbs-dev:arm64 \
- libiscsi-dev:arm64 \
- libjemalloc-dev:arm64 \
- libjpeg62-turbo-dev:arm64 \
- libjson-c-dev:arm64 \
- liblttng-ust-dev:arm64 \
- liblzo2-dev:arm64 \
- libncursesw5-dev:arm64 \
- libnfs-dev:arm64 \
- libnuma-dev:arm64 \
- libpam0g-dev:arm64 \
- libpixman-1-dev:arm64 \
- libpng-dev:arm64 \
- libpulse-dev:arm64 \
- librbd-dev:arm64 \
- librdmacm-dev:arm64 \
- libsasl2-dev:arm64 \
- libsdl2-dev:arm64 \
- libsdl2-image-dev:arm64 \
- libseccomp-dev:arm64 \
- libselinux1-dev:arm64 \
- libslirp-dev:arm64 \
- libsnappy-dev:arm64 \
- libspice-server-dev:arm64 \
- libssh-gcrypt-dev:arm64 \
- libsystemd-dev:arm64 \
- libtasn1-6-dev:arm64 \
- libubsan1:arm64 \
- libudev-dev:arm64 \
- liburing-dev:arm64 \
- libusb-1.0-0-dev:arm64 \
- libusbredirhost-dev:arm64 \
- libvdeplug-dev:arm64 \
- libvirglrenderer-dev:arm64 \
- libvte-2.91-dev:arm64 \
- libxen-dev:arm64 \
- libzstd-dev:arm64 \
- nettle-dev:arm64 \
- systemtap-sdt-dev:arm64 \
- xfslibs-dev:arm64 \
- zlib1g-dev:arm64 && \
+ g++-aarch64-linux-gnu \
+ gcc-aarch64-linux-gnu \
+ libaio-dev:arm64 \
+ libasan5:arm64 \
+ libasound2-dev:arm64 \
+ libattr1-dev:arm64 \
+ libbpf-dev:arm64 \
+ libbrlapi-dev:arm64 \
+ libbz2-dev:arm64 \
+ libc6-dev:arm64 \
+ libcacard-dev:arm64 \
+ libcap-ng-dev:arm64 \
+ libcapstone-dev:arm64 \
+ libcmocka-dev:arm64 \
+ libcurl4-gnutls-dev:arm64 \
+ libdaxctl-dev:arm64 \
+ libdrm-dev:arm64 \
+ libepoxy-dev:arm64 \
+ libfdt-dev:arm64 \
+ libffi-dev:arm64 \
+ libfuse3-dev:arm64 \
+ libgbm-dev:arm64 \
+ libgcrypt20-dev:arm64 \
+ libglib2.0-dev:arm64 \
+ libglusterfs-dev:arm64 \
+ libgnutls28-dev:arm64 \
+ libgtk-3-dev:arm64 \
+ libibumad-dev:arm64 \
+ libibverbs-dev:arm64 \
+ libiscsi-dev:arm64 \
+ libjemalloc-dev:arm64 \
+ libjpeg62-turbo-dev:arm64 \
+ libjson-c-dev:arm64 \
+ liblttng-ust-dev:arm64 \
+ liblzo2-dev:arm64 \
+ libncursesw5-dev:arm64 \
+ libnfs-dev:arm64 \
+ libnuma-dev:arm64 \
+ libpam0g-dev:arm64 \
+ libpixman-1-dev:arm64 \
+ libpng-dev:arm64 \
+ libpulse-dev:arm64 \
+ librbd-dev:arm64 \
+ librdmacm-dev:arm64 \
+ libsasl2-dev:arm64 \
+ libsdl2-dev:arm64 \
+ libsdl2-image-dev:arm64 \
+ libseccomp-dev:arm64 \
+ libselinux1-dev:arm64 \
+ libslirp-dev:arm64 \
+ libsnappy-dev:arm64 \
+ libspice-server-dev:arm64 \
+ libssh-gcrypt-dev:arm64 \
+ libsystemd-dev:arm64 \
+ libtasn1-6-dev:arm64 \
+ libubsan1:arm64 \
+ libudev-dev:arm64 \
+ liburing-dev:arm64 \
+ libusb-1.0-0-dev:arm64 \
+ libusbredirhost-dev:arm64 \
+ libvdeplug-dev:arm64 \
+ libvirglrenderer-dev:arm64 \
+ libvte-2.91-dev:arm64 \
+ libxen-dev:arm64 \
+ libzstd-dev:arm64 \
+ nettle-dev:arm64 \
+ systemtap-sdt-dev:arm64 \
+ xfslibs-dev:arm64 \
+ zlib1g-dev:arm64 && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
diff --git a/tests/docker/dockerfiles/debian-armel-cross.docker b/tests/docker/dockerfiles/debian-armel-cross.docker
index 701fc70db0..d5c08714e4 100644
--- a/tests/docker/dockerfiles/debian-armel-cross.docker
+++ b/tests/docker/dockerfiles/debian-armel-cross.docker
@@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get install -y eatmydata && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y \
- bash \
- bc \
- bison \
- bsdextrautils \
- bzip2 \
- ca-certificates \
- ccache \
- dbus \
- debianutils \
- diffutils \
- exuberant-ctags \
- findutils \
- flex \
- gcovr \
- genisoimage \
- gettext \
- git \
- hostname \
- libglib2.0-dev \
- libpcre2-dev \
- libspice-protocol-dev \
- llvm \
- locales \
- make \
- meson \
- ncat \
- ninja-build \
- openssh-client \
- perl-base \
- pkgconf \
- python3 \
- python3-numpy \
- python3-opencv \
- python3-pillow \
- python3-pip \
- python3-sphinx \
- python3-sphinx-rtd-theme \
- python3-venv \
- python3-yaml \
- rpm2cpio \
- sed \
- sparse \
- tar \
- tesseract-ocr \
- tesseract-ocr-eng \
- texinfo && \
+ bash \
+ bc \
+ bison \
+ bsdextrautils \
+ bzip2 \
+ ca-certificates \
+ ccache \
+ dbus \
+ debianutils \
+ diffutils \
+ exuberant-ctags \
+ findutils \
+ flex \
+ gcovr \
+ genisoimage \
+ gettext \
+ git \
+ hostname \
+ libglib2.0-dev \
+ libpcre2-dev \
+ libsndio-dev \
+ libspice-protocol-dev \
+ llvm \
+ locales \
+ make \
+ meson \
+ ncat \
+ ninja-build \
+ openssh-client \
+ perl-base \
+ pkgconf \
+ python3 \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-sphinx \
+ python3-sphinx-rtd-theme \
+ python3-venv \
+ python3-yaml \
+ rpm2cpio \
+ sed \
+ sparse \
+ tar \
+ tesseract-ocr \
+ tesseract-ocr-eng \
+ texinfo && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture armel && \
@@ -74,74 +75,74 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
eatmydata apt-get install --no-install-recommends -y \
- g++-arm-linux-gnueabi \
- gcc-arm-linux-gnueabi \
- libaio-dev:armel \
- libasan5:armel \
- libasound2-dev:armel \
- libattr1-dev:armel \
- libbpf-dev:armel \
- libbrlapi-dev:armel \
- libbz2-dev:armel \
- libc6-dev:armel \
- libcacard-dev:armel \
- libcap-ng-dev:armel \
- libcapstone-dev:armel \
- libcmocka-dev:armel \
- libcurl4-gnutls-dev:armel \
- libdaxctl-dev:armel \
- libdrm-dev:armel \
- libepoxy-dev:armel \
- libfdt-dev:armel \
- libffi-dev:armel \
- libfuse3-dev:armel \
- libgbm-dev:armel \
- libgcrypt20-dev:armel \
- libglib2.0-dev:armel \
- libglusterfs-dev:armel \
- libgnutls28-dev:armel \
- libgtk-3-dev:armel \
- libibumad-dev:armel \
- libibverbs-dev:armel \
- libiscsi-dev:armel \
- libjemalloc-dev:armel \
- libjpeg62-turbo-dev:armel \
- libjson-c-dev:armel \
- liblttng-ust-dev:armel \
- liblzo2-dev:armel \
- libncursesw5-dev:armel \
- libnfs-dev:armel \
- libnuma-dev:armel \
- libpam0g-dev:armel \
- libpixman-1-dev:armel \
- libpng-dev:armel \
- libpulse-dev:armel \
- librbd-dev:armel \
- librdmacm-dev:armel \
- libsasl2-dev:armel \
- libsdl2-dev:armel \
- libsdl2-image-dev:armel \
- libseccomp-dev:armel \
- libselinux1-dev:armel \
- libslirp-dev:armel \
- libsnappy-dev:armel \
- libspice-server-dev:armel \
- libssh-gcrypt-dev:armel \
- libsystemd-dev:armel \
- libtasn1-6-dev:armel \
- libubsan1:armel \
- libudev-dev:armel \
- liburing-dev:armel \
- libusb-1.0-0-dev:armel \
- libusbredirhost-dev:armel \
- libvdeplug-dev:armel \
- libvirglrenderer-dev:armel \
- libvte-2.91-dev:armel \
- libzstd-dev:armel \
- nettle-dev:armel \
- systemtap-sdt-dev:armel \
- xfslibs-dev:armel \
- zlib1g-dev:armel && \
+ g++-arm-linux-gnueabi \
+ gcc-arm-linux-gnueabi \
+ libaio-dev:armel \
+ libasan5:armel \
+ libasound2-dev:armel \
+ libattr1-dev:armel \
+ libbpf-dev:armel \
+ libbrlapi-dev:armel \
+ libbz2-dev:armel \
+ libc6-dev:armel \
+ libcacard-dev:armel \
+ libcap-ng-dev:armel \
+ libcapstone-dev:armel \
+ libcmocka-dev:armel \
+ libcurl4-gnutls-dev:armel \
+ libdaxctl-dev:armel \
+ libdrm-dev:armel \
+ libepoxy-dev:armel \
+ libfdt-dev:armel \
+ libffi-dev:armel \
+ libfuse3-dev:armel \
+ libgbm-dev:armel \
+ libgcrypt20-dev:armel \
+ libglib2.0-dev:armel \
+ libglusterfs-dev:armel \
+ libgnutls28-dev:armel \
+ libgtk-3-dev:armel \
+ libibumad-dev:armel \
+ libibverbs-dev:armel \
+ libiscsi-dev:armel \
+ libjemalloc-dev:armel \
+ libjpeg62-turbo-dev:armel \
+ libjson-c-dev:armel \
+ liblttng-ust-dev:armel \
+ liblzo2-dev:armel \
+ libncursesw5-dev:armel \
+ libnfs-dev:armel \
+ libnuma-dev:armel \
+ libpam0g-dev:armel \
+ libpixman-1-dev:armel \
+ libpng-dev:armel \
+ libpulse-dev:armel \
+ librbd-dev:armel \
+ librdmacm-dev:armel \
+ libsasl2-dev:armel \
+ libsdl2-dev:armel \
+ libsdl2-image-dev:armel \
+ libseccomp-dev:armel \
+ libselinux1-dev:armel \
+ libslirp-dev:armel \
+ libsnappy-dev:armel \
+ libspice-server-dev:armel \
+ libssh-gcrypt-dev:armel \
+ libsystemd-dev:armel \
+ libtasn1-6-dev:armel \
+ libubsan1:armel \
+ libudev-dev:armel \
+ liburing-dev:armel \
+ libusb-1.0-0-dev:armel \
+ libusbredirhost-dev:armel \
+ libvdeplug-dev:armel \
+ libvirglrenderer-dev:armel \
+ libvte-2.91-dev:armel \
+ libzstd-dev:armel \
+ nettle-dev:armel \
+ systemtap-sdt-dev:armel \
+ xfslibs-dev:armel \
+ zlib1g-dev:armel && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
index 5a11fe3900..471444fcf4 100644
--- a/tests/docker/dockerfiles/debian-armhf-cross.docker
+++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
@@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get install -y eatmydata && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y \
- bash \
- bc \
- bison \
- bsdextrautils \
- bzip2 \
- ca-certificates \
- ccache \
- dbus \
- debianutils \
- diffutils \
- exuberant-ctags \
- findutils \
- flex \
- gcovr \
- genisoimage \
- gettext \
- git \
- hostname \
- libglib2.0-dev \
- libpcre2-dev \
- libspice-protocol-dev \
- llvm \
- locales \
- make \
- meson \
- ncat \
- ninja-build \
- openssh-client \
- perl-base \
- pkgconf \
- python3 \
- python3-numpy \
- python3-opencv \
- python3-pillow \
- python3-pip \
- python3-sphinx \
- python3-sphinx-rtd-theme \
- python3-venv \
- python3-yaml \
- rpm2cpio \
- sed \
- sparse \
- tar \
- tesseract-ocr \
- tesseract-ocr-eng \
- texinfo && \
+ bash \
+ bc \
+ bison \
+ bsdextrautils \
+ bzip2 \
+ ca-certificates \
+ ccache \
+ dbus \
+ debianutils \
+ diffutils \
+ exuberant-ctags \
+ findutils \
+ flex \
+ gcovr \
+ genisoimage \
+ gettext \
+ git \
+ hostname \
+ libglib2.0-dev \
+ libpcre2-dev \
+ libsndio-dev \
+ libspice-protocol-dev \
+ llvm \
+ locales \
+ make \
+ meson \
+ ncat \
+ ninja-build \
+ openssh-client \
+ perl-base \
+ pkgconf \
+ python3 \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-sphinx \
+ python3-sphinx-rtd-theme \
+ python3-venv \
+ python3-yaml \
+ rpm2cpio \
+ sed \
+ sparse \
+ tar \
+ tesseract-ocr \
+ tesseract-ocr-eng \
+ texinfo && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture armhf && \
@@ -74,75 +75,75 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
eatmydata apt-get install --no-install-recommends -y \
- g++-arm-linux-gnueabihf \
- gcc-arm-linux-gnueabihf \
- libaio-dev:armhf \
- libasan5:armhf \
- libasound2-dev:armhf \
- libattr1-dev:armhf \
- libbpf-dev:armhf \
- libbrlapi-dev:armhf \
- libbz2-dev:armhf \
- libc6-dev:armhf \
- libcacard-dev:armhf \
- libcap-ng-dev:armhf \
- libcapstone-dev:armhf \
- libcmocka-dev:armhf \
- libcurl4-gnutls-dev:armhf \
- libdaxctl-dev:armhf \
- libdrm-dev:armhf \
- libepoxy-dev:armhf \
- libfdt-dev:armhf \
- libffi-dev:armhf \
- libfuse3-dev:armhf \
- libgbm-dev:armhf \
- libgcrypt20-dev:armhf \
- libglib2.0-dev:armhf \
- libglusterfs-dev:armhf \
- libgnutls28-dev:armhf \
- libgtk-3-dev:armhf \
- libibumad-dev:armhf \
- libibverbs-dev:armhf \
- libiscsi-dev:armhf \
- libjemalloc-dev:armhf \
- libjpeg62-turbo-dev:armhf \
- libjson-c-dev:armhf \
- liblttng-ust-dev:armhf \
- liblzo2-dev:armhf \
- libncursesw5-dev:armhf \
- libnfs-dev:armhf \
- libnuma-dev:armhf \
- libpam0g-dev:armhf \
- libpixman-1-dev:armhf \
- libpng-dev:armhf \
- libpulse-dev:armhf \
- librbd-dev:armhf \
- librdmacm-dev:armhf \
- libsasl2-dev:armhf \
- libsdl2-dev:armhf \
- libsdl2-image-dev:armhf \
- libseccomp-dev:armhf \
- libselinux1-dev:armhf \
- libslirp-dev:armhf \
- libsnappy-dev:armhf \
- libspice-server-dev:armhf \
- libssh-gcrypt-dev:armhf \
- libsystemd-dev:armhf \
- libtasn1-6-dev:armhf \
- libubsan1:armhf \
- libudev-dev:armhf \
- liburing-dev:armhf \
- libusb-1.0-0-dev:armhf \
- libusbredirhost-dev:armhf \
- libvdeplug-dev:armhf \
- libvirglrenderer-dev:armhf \
- libvte-2.91-dev:armhf \
- libxen-dev:armhf \
- libzstd-dev:armhf \
- nettle-dev:armhf \
- systemtap-sdt-dev:armhf \
- xfslibs-dev:armhf \
- zlib1g-dev:armhf && \
+ g++-arm-linux-gnueabihf \
+ gcc-arm-linux-gnueabihf \
+ libaio-dev:armhf \
+ libasan5:armhf \
+ libasound2-dev:armhf \
+ libattr1-dev:armhf \
+ libbpf-dev:armhf \
+ libbrlapi-dev:armhf \
+ libbz2-dev:armhf \
+ libc6-dev:armhf \
+ libcacard-dev:armhf \
+ libcap-ng-dev:armhf \
+ libcapstone-dev:armhf \
+ libcmocka-dev:armhf \
+ libcurl4-gnutls-dev:armhf \
+ libdaxctl-dev:armhf \
+ libdrm-dev:armhf \
+ libepoxy-dev:armhf \
+ libfdt-dev:armhf \
+ libffi-dev:armhf \
+ libfuse3-dev:armhf \
+ libgbm-dev:armhf \
+ libgcrypt20-dev:armhf \
+ libglib2.0-dev:armhf \
+ libglusterfs-dev:armhf \
+ libgnutls28-dev:armhf \
+ libgtk-3-dev:armhf \
+ libibumad-dev:armhf \
+ libibverbs-dev:armhf \
+ libiscsi-dev:armhf \
+ libjemalloc-dev:armhf \
+ libjpeg62-turbo-dev:armhf \
+ libjson-c-dev:armhf \
+ liblttng-ust-dev:armhf \
+ liblzo2-dev:armhf \
+ libncursesw5-dev:armhf \
+ libnfs-dev:armhf \
+ libnuma-dev:armhf \
+ libpam0g-dev:armhf \
+ libpixman-1-dev:armhf \
+ libpng-dev:armhf \
+ libpulse-dev:armhf \
+ librbd-dev:armhf \
+ librdmacm-dev:armhf \
+ libsasl2-dev:armhf \
+ libsdl2-dev:armhf \
+ libsdl2-image-dev:armhf \
+ libseccomp-dev:armhf \
+ libselinux1-dev:armhf \
+ libslirp-dev:armhf \
+ libsnappy-dev:armhf \
+ libspice-server-dev:armhf \
+ libssh-gcrypt-dev:armhf \
+ libsystemd-dev:armhf \
+ libtasn1-6-dev:armhf \
+ libubsan1:armhf \
+ libudev-dev:armhf \
+ liburing-dev:armhf \
+ libusb-1.0-0-dev:armhf \
+ libusbredirhost-dev:armhf \
+ libvdeplug-dev:armhf \
+ libvirglrenderer-dev:armhf \
+ libvte-2.91-dev:armhf \
+ libxen-dev:armhf \
+ libzstd-dev:armhf \
+ nettle-dev:armhf \
+ systemtap-sdt-dev:armhf \
+ xfslibs-dev:armhf \
+ zlib1g-dev:armhf && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
diff --git a/tests/docker/dockerfiles/debian-mips64el-cross.docker b/tests/docker/dockerfiles/debian-mips64el-cross.docker
index 9b90a4d6ff..15b0224b76 100644
--- a/tests/docker/dockerfiles/debian-mips64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-mips64el-cross.docker
@@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get install -y eatmydata && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y \
- bash \
- bc \
- bison \
- bsdextrautils \
- bzip2 \
- ca-certificates \
- ccache \
- dbus \
- debianutils \
- diffutils \
- exuberant-ctags \
- findutils \
- flex \
- gcovr \
- genisoimage \
- gettext \
- git \
- hostname \
- libglib2.0-dev \
- libpcre2-dev \
- libspice-protocol-dev \
- llvm \
- locales \
- make \
- meson \
- ncat \
- ninja-build \
- openssh-client \
- perl-base \
- pkgconf \
- python3 \
- python3-numpy \
- python3-opencv \
- python3-pillow \
- python3-pip \
- python3-sphinx \
- python3-sphinx-rtd-theme \
- python3-venv \
- python3-yaml \
- rpm2cpio \
- sed \
- sparse \
- tar \
- tesseract-ocr \
- tesseract-ocr-eng \
- texinfo && \
+ bash \
+ bc \
+ bison \
+ bsdextrautils \
+ bzip2 \
+ ca-certificates \
+ ccache \
+ dbus \
+ debianutils \
+ diffutils \
+ exuberant-ctags \
+ findutils \
+ flex \
+ gcovr \
+ genisoimage \
+ gettext \
+ git \
+ hostname \
+ libglib2.0-dev \
+ libpcre2-dev \
+ libsndio-dev \
+ libspice-protocol-dev \
+ llvm \
+ locales \
+ make \
+ meson \
+ ncat \
+ ninja-build \
+ openssh-client \
+ perl-base \
+ pkgconf \
+ python3 \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-sphinx \
+ python3-sphinx-rtd-theme \
+ python3-venv \
+ python3-yaml \
+ rpm2cpio \
+ sed \
+ sparse \
+ tar \
+ tesseract-ocr \
+ tesseract-ocr-eng \
+ texinfo && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture mips64el && \
@@ -74,72 +75,72 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
eatmydata apt-get install --no-install-recommends -y \
- g++-mips64el-linux-gnuabi64 \
- gcc-mips64el-linux-gnuabi64 \
- libaio-dev:mips64el \
- libasound2-dev:mips64el \
- libattr1-dev:mips64el \
- libbpf-dev:mips64el \
- libbrlapi-dev:mips64el \
- libbz2-dev:mips64el \
- libc6-dev:mips64el \
- libcacard-dev:mips64el \
- libcap-ng-dev:mips64el \
- libcapstone-dev:mips64el \
- libcmocka-dev:mips64el \
- libcurl4-gnutls-dev:mips64el \
- libdaxctl-dev:mips64el \
- libdrm-dev:mips64el \
- libepoxy-dev:mips64el \
- libfdt-dev:mips64el \
- libffi-dev:mips64el \
- libfuse3-dev:mips64el \
- libgbm-dev:mips64el \
- libgcrypt20-dev:mips64el \
- libglib2.0-dev:mips64el \
- libglusterfs-dev:mips64el \
- libgnutls28-dev:mips64el \
- libgtk-3-dev:mips64el \
- libibumad-dev:mips64el \
- libibverbs-dev:mips64el \
- libiscsi-dev:mips64el \
- libjemalloc-dev:mips64el \
- libjpeg62-turbo-dev:mips64el \
- libjson-c-dev:mips64el \
- liblttng-ust-dev:mips64el \
- liblzo2-dev:mips64el \
- libncursesw5-dev:mips64el \
- libnfs-dev:mips64el \
- libnuma-dev:mips64el \
- libpam0g-dev:mips64el \
- libpixman-1-dev:mips64el \
- libpng-dev:mips64el \
- libpulse-dev:mips64el \
- librbd-dev:mips64el \
- librdmacm-dev:mips64el \
- libsasl2-dev:mips64el \
- libsdl2-dev:mips64el \
- libsdl2-image-dev:mips64el \
- libseccomp-dev:mips64el \
- libselinux1-dev:mips64el \
- libslirp-dev:mips64el \
- libsnappy-dev:mips64el \
- libspice-server-dev:mips64el \
- libssh-gcrypt-dev:mips64el \
- libsystemd-dev:mips64el \
- libtasn1-6-dev:mips64el \
- libudev-dev:mips64el \
- liburing-dev:mips64el \
- libusb-1.0-0-dev:mips64el \
- libusbredirhost-dev:mips64el \
- libvdeplug-dev:mips64el \
- libvirglrenderer-dev:mips64el \
- libvte-2.91-dev:mips64el \
- libzstd-dev:mips64el \
- nettle-dev:mips64el \
- systemtap-sdt-dev:mips64el \
- xfslibs-dev:mips64el \
- zlib1g-dev:mips64el && \
+ g++-mips64el-linux-gnuabi64 \
+ gcc-mips64el-linux-gnuabi64 \
+ libaio-dev:mips64el \
+ libasound2-dev:mips64el \
+ libattr1-dev:mips64el \
+ libbpf-dev:mips64el \
+ libbrlapi-dev:mips64el \
+ libbz2-dev:mips64el \
+ libc6-dev:mips64el \
+ libcacard-dev:mips64el \
+ libcap-ng-dev:mips64el \
+ libcapstone-dev:mips64el \
+ libcmocka-dev:mips64el \
+ libcurl4-gnutls-dev:mips64el \
+ libdaxctl-dev:mips64el \
+ libdrm-dev:mips64el \
+ libepoxy-dev:mips64el \
+ libfdt-dev:mips64el \
+ libffi-dev:mips64el \
+ libfuse3-dev:mips64el \
+ libgbm-dev:mips64el \
+ libgcrypt20-dev:mips64el \
+ libglib2.0-dev:mips64el \
+ libglusterfs-dev:mips64el \
+ libgnutls28-dev:mips64el \
+ libgtk-3-dev:mips64el \
+ libibumad-dev:mips64el \
+ libibverbs-dev:mips64el \
+ libiscsi-dev:mips64el \
+ libjemalloc-dev:mips64el \
+ libjpeg62-turbo-dev:mips64el \
+ libjson-c-dev:mips64el \
+ liblttng-ust-dev:mips64el \
+ liblzo2-dev:mips64el \
+ libncursesw5-dev:mips64el \
+ libnfs-dev:mips64el \
+ libnuma-dev:mips64el \
+ libpam0g-dev:mips64el \
+ libpixman-1-dev:mips64el \
+ libpng-dev:mips64el \
+ libpulse-dev:mips64el \
+ librbd-dev:mips64el \
+ librdmacm-dev:mips64el \
+ libsasl2-dev:mips64el \
+ libsdl2-dev:mips64el \
+ libsdl2-image-dev:mips64el \
+ libseccomp-dev:mips64el \
+ libselinux1-dev:mips64el \
+ libslirp-dev:mips64el \
+ libsnappy-dev:mips64el \
+ libspice-server-dev:mips64el \
+ libssh-gcrypt-dev:mips64el \
+ libsystemd-dev:mips64el \
+ libtasn1-6-dev:mips64el \
+ libudev-dev:mips64el \
+ liburing-dev:mips64el \
+ libusb-1.0-0-dev:mips64el \
+ libusbredirhost-dev:mips64el \
+ libvdeplug-dev:mips64el \
+ libvirglrenderer-dev:mips64el \
+ libvte-2.91-dev:mips64el \
+ libzstd-dev:mips64el \
+ nettle-dev:mips64el \
+ systemtap-sdt-dev:mips64el \
+ xfslibs-dev:mips64el \
+ zlib1g-dev:mips64el && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
diff --git a/tests/docker/dockerfiles/debian-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker
index 02feaf26cb..a5d3ca6e2f 100644
--- a/tests/docker/dockerfiles/debian-mipsel-cross.docker
+++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker
@@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get install -y eatmydata && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y \
- bash \
- bc \
- bison \
- bsdextrautils \
- bzip2 \
- ca-certificates \
- ccache \
- dbus \
- debianutils \
- diffutils \
- exuberant-ctags \
- findutils \
- flex \
- gcovr \
- genisoimage \
- gettext \
- git \
- hostname \
- libglib2.0-dev \
- libpcre2-dev \
- libspice-protocol-dev \
- llvm \
- locales \
- make \
- meson \
- ncat \
- ninja-build \
- openssh-client \
- perl-base \
- pkgconf \
- python3 \
- python3-numpy \
- python3-opencv \
- python3-pillow \
- python3-pip \
- python3-sphinx \
- python3-sphinx-rtd-theme \
- python3-venv \
- python3-yaml \
- rpm2cpio \
- sed \
- sparse \
- tar \
- tesseract-ocr \
- tesseract-ocr-eng \
- texinfo && \
+ bash \
+ bc \
+ bison \
+ bsdextrautils \
+ bzip2 \
+ ca-certificates \
+ ccache \
+ dbus \
+ debianutils \
+ diffutils \
+ exuberant-ctags \
+ findutils \
+ flex \
+ gcovr \
+ genisoimage \
+ gettext \
+ git \
+ hostname \
+ libglib2.0-dev \
+ libpcre2-dev \
+ libsndio-dev \
+ libspice-protocol-dev \
+ llvm \
+ locales \
+ make \
+ meson \
+ ncat \
+ ninja-build \
+ openssh-client \
+ perl-base \
+ pkgconf \
+ python3 \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-sphinx \
+ python3-sphinx-rtd-theme \
+ python3-venv \
+ python3-yaml \
+ rpm2cpio \
+ sed \
+ sparse \
+ tar \
+ tesseract-ocr \
+ tesseract-ocr-eng \
+ texinfo && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture mipsel && \
@@ -74,72 +75,72 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
eatmydata apt-get install --no-install-recommends -y \
- g++-mipsel-linux-gnu \
- gcc-mipsel-linux-gnu \
- libaio-dev:mipsel \
- libasound2-dev:mipsel \
- libattr1-dev:mipsel \
- libbpf-dev:mipsel \
- libbrlapi-dev:mipsel \
- libbz2-dev:mipsel \
- libc6-dev:mipsel \
- libcacard-dev:mipsel \
- libcap-ng-dev:mipsel \
- libcapstone-dev:mipsel \
- libcmocka-dev:mipsel \
- libcurl4-gnutls-dev:mipsel \
- libdaxctl-dev:mipsel \
- libdrm-dev:mipsel \
- libepoxy-dev:mipsel \
- libfdt-dev:mipsel \
- libffi-dev:mipsel \
- libfuse3-dev:mipsel \
- libgbm-dev:mipsel \
- libgcrypt20-dev:mipsel \
- libglib2.0-dev:mipsel \
- libglusterfs-dev:mipsel \
- libgnutls28-dev:mipsel \
- libgtk-3-dev:mipsel \
- libibumad-dev:mipsel \
- libibverbs-dev:mipsel \
- libiscsi-dev:mipsel \
- libjemalloc-dev:mipsel \
- libjpeg62-turbo-dev:mipsel \
- libjson-c-dev:mipsel \
- liblttng-ust-dev:mipsel \
- liblzo2-dev:mipsel \
- libncursesw5-dev:mipsel \
- libnfs-dev:mipsel \
- libnuma-dev:mipsel \
- libpam0g-dev:mipsel \
- libpixman-1-dev:mipsel \
- libpng-dev:mipsel \
- libpulse-dev:mipsel \
- librbd-dev:mipsel \
- librdmacm-dev:mipsel \
- libsasl2-dev:mipsel \
- libsdl2-dev:mipsel \
- libsdl2-image-dev:mipsel \
- libseccomp-dev:mipsel \
- libselinux1-dev:mipsel \
- libslirp-dev:mipsel \
- libsnappy-dev:mipsel \
- libspice-server-dev:mipsel \
- libssh-gcrypt-dev:mipsel \
- libsystemd-dev:mipsel \
- libtasn1-6-dev:mipsel \
- libudev-dev:mipsel \
- liburing-dev:mipsel \
- libusb-1.0-0-dev:mipsel \
- libusbredirhost-dev:mipsel \
- libvdeplug-dev:mipsel \
- libvirglrenderer-dev:mipsel \
- libvte-2.91-dev:mipsel \
- libzstd-dev:mipsel \
- nettle-dev:mipsel \
- systemtap-sdt-dev:mipsel \
- xfslibs-dev:mipsel \
- zlib1g-dev:mipsel && \
+ g++-mipsel-linux-gnu \
+ gcc-mipsel-linux-gnu \
+ libaio-dev:mipsel \
+ libasound2-dev:mipsel \
+ libattr1-dev:mipsel \
+ libbpf-dev:mipsel \
+ libbrlapi-dev:mipsel \
+ libbz2-dev:mipsel \
+ libc6-dev:mipsel \
+ libcacard-dev:mipsel \
+ libcap-ng-dev:mipsel \
+ libcapstone-dev:mipsel \
+ libcmocka-dev:mipsel \
+ libcurl4-gnutls-dev:mipsel \
+ libdaxctl-dev:mipsel \
+ libdrm-dev:mipsel \
+ libepoxy-dev:mipsel \
+ libfdt-dev:mipsel \
+ libffi-dev:mipsel \
+ libfuse3-dev:mipsel \
+ libgbm-dev:mipsel \
+ libgcrypt20-dev:mipsel \
+ libglib2.0-dev:mipsel \
+ libglusterfs-dev:mipsel \
+ libgnutls28-dev:mipsel \
+ libgtk-3-dev:mipsel \
+ libibumad-dev:mipsel \
+ libibverbs-dev:mipsel \
+ libiscsi-dev:mipsel \
+ libjemalloc-dev:mipsel \
+ libjpeg62-turbo-dev:mipsel \
+ libjson-c-dev:mipsel \
+ liblttng-ust-dev:mipsel \
+ liblzo2-dev:mipsel \
+ libncursesw5-dev:mipsel \
+ libnfs-dev:mipsel \
+ libnuma-dev:mipsel \
+ libpam0g-dev:mipsel \
+ libpixman-1-dev:mipsel \
+ libpng-dev:mipsel \
+ libpulse-dev:mipsel \
+ librbd-dev:mipsel \
+ librdmacm-dev:mipsel \
+ libsasl2-dev:mipsel \
+ libsdl2-dev:mipsel \
+ libsdl2-image-dev:mipsel \
+ libseccomp-dev:mipsel \
+ libselinux1-dev:mipsel \
+ libslirp-dev:mipsel \
+ libsnappy-dev:mipsel \
+ libspice-server-dev:mipsel \
+ libssh-gcrypt-dev:mipsel \
+ libsystemd-dev:mipsel \
+ libtasn1-6-dev:mipsel \
+ libudev-dev:mipsel \
+ liburing-dev:mipsel \
+ libusb-1.0-0-dev:mipsel \
+ libusbredirhost-dev:mipsel \
+ libvdeplug-dev:mipsel \
+ libvirglrenderer-dev:mipsel \
+ libvte-2.91-dev:mipsel \
+ libzstd-dev:mipsel \
+ nettle-dev:mipsel \
+ systemtap-sdt-dev:mipsel \
+ xfslibs-dev:mipsel \
+ zlib1g-dev:mipsel && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
index 97d3872ee2..d2954e61f6 100644
--- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
@@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get install -y eatmydata && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y \
- bash \
- bc \
- bison \
- bsdextrautils \
- bzip2 \
- ca-certificates \
- ccache \
- dbus \
- debianutils \
- diffutils \
- exuberant-ctags \
- findutils \
- flex \
- gcovr \
- genisoimage \
- gettext \
- git \
- hostname \
- libglib2.0-dev \
- libpcre2-dev \
- libspice-protocol-dev \
- llvm \
- locales \
- make \
- meson \
- ncat \
- ninja-build \
- openssh-client \
- perl-base \
- pkgconf \
- python3 \
- python3-numpy \
- python3-opencv \
- python3-pillow \
- python3-pip \
- python3-sphinx \
- python3-sphinx-rtd-theme \
- python3-venv \
- python3-yaml \
- rpm2cpio \
- sed \
- sparse \
- tar \
- tesseract-ocr \
- tesseract-ocr-eng \
- texinfo && \
+ bash \
+ bc \
+ bison \
+ bsdextrautils \
+ bzip2 \
+ ca-certificates \
+ ccache \
+ dbus \
+ debianutils \
+ diffutils \
+ exuberant-ctags \
+ findutils \
+ flex \
+ gcovr \
+ genisoimage \
+ gettext \
+ git \
+ hostname \
+ libglib2.0-dev \
+ libpcre2-dev \
+ libsndio-dev \
+ libspice-protocol-dev \
+ llvm \
+ locales \
+ make \
+ meson \
+ ncat \
+ ninja-build \
+ openssh-client \
+ perl-base \
+ pkgconf \
+ python3 \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-sphinx \
+ python3-sphinx-rtd-theme \
+ python3-venv \
+ python3-yaml \
+ rpm2cpio \
+ sed \
+ sparse \
+ tar \
+ tesseract-ocr \
+ tesseract-ocr-eng \
+ texinfo && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture ppc64el && \
@@ -74,74 +75,74 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
eatmydata apt-get install --no-install-recommends -y \
- g++-powerpc64le-linux-gnu \
- gcc-powerpc64le-linux-gnu \
- libaio-dev:ppc64el \
- libasan5:ppc64el \
- libasound2-dev:ppc64el \
- libattr1-dev:ppc64el \
- libbpf-dev:ppc64el \
- libbrlapi-dev:ppc64el \
- libbz2-dev:ppc64el \
- libc6-dev:ppc64el \
- libcacard-dev:ppc64el \
- libcap-ng-dev:ppc64el \
- libcapstone-dev:ppc64el \
- libcmocka-dev:ppc64el \
- libcurl4-gnutls-dev:ppc64el \
- libdaxctl-dev:ppc64el \
- libdrm-dev:ppc64el \
- libepoxy-dev:ppc64el \
- libfdt-dev:ppc64el \
- libffi-dev:ppc64el \
- libfuse3-dev:ppc64el \
- libgbm-dev:ppc64el \
- libgcrypt20-dev:ppc64el \
- libglib2.0-dev:ppc64el \
- libglusterfs-dev:ppc64el \
- libgnutls28-dev:ppc64el \
- libgtk-3-dev:ppc64el \
- libibumad-dev:ppc64el \
- libibverbs-dev:ppc64el \
- libiscsi-dev:ppc64el \
- libjemalloc-dev:ppc64el \
- libjpeg62-turbo-dev:ppc64el \
- libjson-c-dev:ppc64el \
- liblttng-ust-dev:ppc64el \
- liblzo2-dev:ppc64el \
- libncursesw5-dev:ppc64el \
- libnfs-dev:ppc64el \
- libnuma-dev:ppc64el \
- libpam0g-dev:ppc64el \
- libpixman-1-dev:ppc64el \
- libpng-dev:ppc64el \
- libpulse-dev:ppc64el \
- librbd-dev:ppc64el \
- librdmacm-dev:ppc64el \
- libsasl2-dev:ppc64el \
- libsdl2-dev:ppc64el \
- libsdl2-image-dev:ppc64el \
- libseccomp-dev:ppc64el \
- libselinux1-dev:ppc64el \
- libslirp-dev:ppc64el \
- libsnappy-dev:ppc64el \
- libspice-server-dev:ppc64el \
- libssh-gcrypt-dev:ppc64el \
- libsystemd-dev:ppc64el \
- libtasn1-6-dev:ppc64el \
- libubsan1:ppc64el \
- libudev-dev:ppc64el \
- liburing-dev:ppc64el \
- libusb-1.0-0-dev:ppc64el \
- libusbredirhost-dev:ppc64el \
- libvdeplug-dev:ppc64el \
- libvirglrenderer-dev:ppc64el \
- libvte-2.91-dev:ppc64el \
- libzstd-dev:ppc64el \
- nettle-dev:ppc64el \
- systemtap-sdt-dev:ppc64el \
- xfslibs-dev:ppc64el \
- zlib1g-dev:ppc64el && \
+ g++-powerpc64le-linux-gnu \
+ gcc-powerpc64le-linux-gnu \
+ libaio-dev:ppc64el \
+ libasan5:ppc64el \
+ libasound2-dev:ppc64el \
+ libattr1-dev:ppc64el \
+ libbpf-dev:ppc64el \
+ libbrlapi-dev:ppc64el \
+ libbz2-dev:ppc64el \
+ libc6-dev:ppc64el \
+ libcacard-dev:ppc64el \
+ libcap-ng-dev:ppc64el \
+ libcapstone-dev:ppc64el \
+ libcmocka-dev:ppc64el \
+ libcurl4-gnutls-dev:ppc64el \
+ libdaxctl-dev:ppc64el \
+ libdrm-dev:ppc64el \
+ libepoxy-dev:ppc64el \
+ libfdt-dev:ppc64el \
+ libffi-dev:ppc64el \
+ libfuse3-dev:ppc64el \
+ libgbm-dev:ppc64el \
+ libgcrypt20-dev:ppc64el \
+ libglib2.0-dev:ppc64el \
+ libglusterfs-dev:ppc64el \
+ libgnutls28-dev:ppc64el \
+ libgtk-3-dev:ppc64el \
+ libibumad-dev:ppc64el \
+ libibverbs-dev:ppc64el \
+ libiscsi-dev:ppc64el \
+ libjemalloc-dev:ppc64el \
+ libjpeg62-turbo-dev:ppc64el \
+ libjson-c-dev:ppc64el \
+ liblttng-ust-dev:ppc64el \
+ liblzo2-dev:ppc64el \
+ libncursesw5-dev:ppc64el \
+ libnfs-dev:ppc64el \
+ libnuma-dev:ppc64el \
+ libpam0g-dev:ppc64el \
+ libpixman-1-dev:ppc64el \
+ libpng-dev:ppc64el \
+ libpulse-dev:ppc64el \
+ librbd-dev:ppc64el \
+ librdmacm-dev:ppc64el \
+ libsasl2-dev:ppc64el \
+ libsdl2-dev:ppc64el \
+ libsdl2-image-dev:ppc64el \
+ libseccomp-dev:ppc64el \
+ libselinux1-dev:ppc64el \
+ libslirp-dev:ppc64el \
+ libsnappy-dev:ppc64el \
+ libspice-server-dev:ppc64el \
+ libssh-gcrypt-dev:ppc64el \
+ libsystemd-dev:ppc64el \
+ libtasn1-6-dev:ppc64el \
+ libubsan1:ppc64el \
+ libudev-dev:ppc64el \
+ liburing-dev:ppc64el \
+ libusb-1.0-0-dev:ppc64el \
+ libusbredirhost-dev:ppc64el \
+ libvdeplug-dev:ppc64el \
+ libvirglrenderer-dev:ppc64el \
+ libvte-2.91-dev:ppc64el \
+ libzstd-dev:ppc64el \
+ nettle-dev:ppc64el \
+ systemtap-sdt-dev:ppc64el \
+ xfslibs-dev:ppc64el \
+ zlib1g-dev:ppc64el && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker
index 95585e9e56..d43ce16317 100644
--- a/tests/docker/dockerfiles/debian-s390x-cross.docker
+++ b/tests/docker/dockerfiles/debian-s390x-cross.docker
@@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get install -y eatmydata && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y \
- bash \
- bc \
- bison \
- bsdextrautils \
- bzip2 \
- ca-certificates \
- ccache \
- dbus \
- debianutils \
- diffutils \
- exuberant-ctags \
- findutils \
- flex \
- gcovr \
- genisoimage \
- gettext \
- git \
- hostname \
- libglib2.0-dev \
- libpcre2-dev \
- libspice-protocol-dev \
- llvm \
- locales \
- make \
- meson \
- ncat \
- ninja-build \
- openssh-client \
- perl-base \
- pkgconf \
- python3 \
- python3-numpy \
- python3-opencv \
- python3-pillow \
- python3-pip \
- python3-sphinx \
- python3-sphinx-rtd-theme \
- python3-venv \
- python3-yaml \
- rpm2cpio \
- sed \
- sparse \
- tar \
- tesseract-ocr \
- tesseract-ocr-eng \
- texinfo && \
+ bash \
+ bc \
+ bison \
+ bsdextrautils \
+ bzip2 \
+ ca-certificates \
+ ccache \
+ dbus \
+ debianutils \
+ diffutils \
+ exuberant-ctags \
+ findutils \
+ flex \
+ gcovr \
+ genisoimage \
+ gettext \
+ git \
+ hostname \
+ libglib2.0-dev \
+ libpcre2-dev \
+ libsndio-dev \
+ libspice-protocol-dev \
+ llvm \
+ locales \
+ make \
+ meson \
+ ncat \
+ ninja-build \
+ openssh-client \
+ perl-base \
+ pkgconf \
+ python3 \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-sphinx \
+ python3-sphinx-rtd-theme \
+ python3-venv \
+ python3-yaml \
+ rpm2cpio \
+ sed \
+ sparse \
+ tar \
+ tesseract-ocr \
+ tesseract-ocr-eng \
+ texinfo && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture s390x && \
@@ -74,73 +75,73 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
eatmydata apt-get install --no-install-recommends -y \
- g++-s390x-linux-gnu \
- gcc-s390x-linux-gnu \
- libaio-dev:s390x \
- libasan5:s390x \
- libasound2-dev:s390x \
- libattr1-dev:s390x \
- libbpf-dev:s390x \
- libbrlapi-dev:s390x \
- libbz2-dev:s390x \
- libc6-dev:s390x \
- libcacard-dev:s390x \
- libcap-ng-dev:s390x \
- libcapstone-dev:s390x \
- libcmocka-dev:s390x \
- libcurl4-gnutls-dev:s390x \
- libdaxctl-dev:s390x \
- libdrm-dev:s390x \
- libepoxy-dev:s390x \
- libfdt-dev:s390x \
- libffi-dev:s390x \
- libfuse3-dev:s390x \
- libgbm-dev:s390x \
- libgcrypt20-dev:s390x \
- libglib2.0-dev:s390x \
- libglusterfs-dev:s390x \
- libgnutls28-dev:s390x \
- libgtk-3-dev:s390x \
- libibumad-dev:s390x \
- libibverbs-dev:s390x \
- libiscsi-dev:s390x \
- libjemalloc-dev:s390x \
- libjpeg62-turbo-dev:s390x \
- libjson-c-dev:s390x \
- liblttng-ust-dev:s390x \
- liblzo2-dev:s390x \
- libncursesw5-dev:s390x \
- libnfs-dev:s390x \
- libnuma-dev:s390x \
- libpam0g-dev:s390x \
- libpixman-1-dev:s390x \
- libpng-dev:s390x \
- libpulse-dev:s390x \
- librbd-dev:s390x \
- librdmacm-dev:s390x \
- libsasl2-dev:s390x \
- libsdl2-dev:s390x \
- libsdl2-image-dev:s390x \
- libseccomp-dev:s390x \
- libselinux1-dev:s390x \
- libslirp-dev:s390x \
- libsnappy-dev:s390x \
- libssh-gcrypt-dev:s390x \
- libsystemd-dev:s390x \
- libtasn1-6-dev:s390x \
- libubsan1:s390x \
- libudev-dev:s390x \
- liburing-dev:s390x \
- libusb-1.0-0-dev:s390x \
- libusbredirhost-dev:s390x \
- libvdeplug-dev:s390x \
- libvirglrenderer-dev:s390x \
- libvte-2.91-dev:s390x \
- libzstd-dev:s390x \
- nettle-dev:s390x \
- systemtap-sdt-dev:s390x \
- xfslibs-dev:s390x \
- zlib1g-dev:s390x && \
+ g++-s390x-linux-gnu \
+ gcc-s390x-linux-gnu \
+ libaio-dev:s390x \
+ libasan5:s390x \
+ libasound2-dev:s390x \
+ libattr1-dev:s390x \
+ libbpf-dev:s390x \
+ libbrlapi-dev:s390x \
+ libbz2-dev:s390x \
+ libc6-dev:s390x \
+ libcacard-dev:s390x \
+ libcap-ng-dev:s390x \
+ libcapstone-dev:s390x \
+ libcmocka-dev:s390x \
+ libcurl4-gnutls-dev:s390x \
+ libdaxctl-dev:s390x \
+ libdrm-dev:s390x \
+ libepoxy-dev:s390x \
+ libfdt-dev:s390x \
+ libffi-dev:s390x \
+ libfuse3-dev:s390x \
+ libgbm-dev:s390x \
+ libgcrypt20-dev:s390x \
+ libglib2.0-dev:s390x \
+ libglusterfs-dev:s390x \
+ libgnutls28-dev:s390x \
+ libgtk-3-dev:s390x \
+ libibumad-dev:s390x \
+ libibverbs-dev:s390x \
+ libiscsi-dev:s390x \
+ libjemalloc-dev:s390x \
+ libjpeg62-turbo-dev:s390x \
+ libjson-c-dev:s390x \
+ liblttng-ust-dev:s390x \
+ liblzo2-dev:s390x \
+ libncursesw5-dev:s390x \
+ libnfs-dev:s390x \
+ libnuma-dev:s390x \
+ libpam0g-dev:s390x \
+ libpixman-1-dev:s390x \
+ libpng-dev:s390x \
+ libpulse-dev:s390x \
+ librbd-dev:s390x \
+ librdmacm-dev:s390x \
+ libsasl2-dev:s390x \
+ libsdl2-dev:s390x \
+ libsdl2-image-dev:s390x \
+ libseccomp-dev:s390x \
+ libselinux1-dev:s390x \
+ libslirp-dev:s390x \
+ libsnappy-dev:s390x \
+ libssh-gcrypt-dev:s390x \
+ libsystemd-dev:s390x \
+ libtasn1-6-dev:s390x \
+ libubsan1:s390x \
+ libudev-dev:s390x \
+ liburing-dev:s390x \
+ libusb-1.0-0-dev:s390x \
+ libusbredirhost-dev:s390x \
+ libvdeplug-dev:s390x \
+ libvirglrenderer-dev:s390x \
+ libvte-2.91-dev:s390x \
+ libzstd-dev:s390x \
+ nettle-dev:s390x \
+ systemtap-sdt-dev:s390x \
+ xfslibs-dev:s390x \
+ zlib1g-dev:s390x && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker
index fe84166ca1..d200c7fc10 100644
--- a/tests/docker/dockerfiles/fedora.docker
+++ b/tests/docker/dockerfiles/fedora.docker
@@ -18,120 +18,120 @@ exec "$@"' > /usr/bin/nosync && \
chmod +x /usr/bin/nosync && \
nosync dnf update -y && \
nosync dnf install -y \
- SDL2-devel \
- SDL2_image-devel \
- alsa-lib-devel \
- bash \
- bc \
- bison \
- brlapi-devel \
- bzip2 \
- bzip2-devel \
- ca-certificates \
- capstone-devel \
- ccache \
- clang \
- ctags \
- cyrus-sasl-devel \
- daxctl-devel \
- dbus-daemon \
- device-mapper-multipath-devel \
- diffutils \
- findutils \
- flex \
- fuse3-devel \
- gcc \
- gcc-c++ \
- gcovr \
- genisoimage \
- gettext \
- git \
- glib2-devel \
- glib2-static \
- glibc-langpack-en \
- glibc-static \
- glusterfs-api-devel \
- gnutls-devel \
- gtk3-devel \
- hostname \
- jemalloc-devel \
- json-c-devel \
- libaio-devel \
- libasan \
- libattr-devel \
- libbpf-devel \
- libcacard-devel \
- libcap-ng-devel \
- libcmocka-devel \
- libcurl-devel \
- libdrm-devel \
- libepoxy-devel \
- libfdt-devel \
- libffi-devel \
- libgcrypt-devel \
- libiscsi-devel \
- libjpeg-devel \
- libnfs-devel \
- libpmem-devel \
- libpng-devel \
- librbd-devel \
- libseccomp-devel \
- libselinux-devel \
- libslirp-devel \
- libssh-devel \
- libtasn1-devel \
- libubsan \
- liburing-devel \
- libusbx-devel \
- libzstd-devel \
- llvm \
- lttng-ust-devel \
- lzo-devel \
- make \
- mesa-libgbm-devel \
- meson \
- ncurses-devel \
- nettle-devel \
- ninja-build \
- nmap-ncat \
- numactl-devel \
- openssh-clients \
- pam-devel \
- pcre-static \
- perl-base \
- pixman-devel \
- pkgconfig \
- pulseaudio-libs-devel \
- python3 \
- python3-PyYAML \
- python3-numpy \
- python3-opencv \
- python3-pillow \
- python3-pip \
- python3-sphinx \
- python3-sphinx_rtd_theme \
- rdma-core-devel \
- rpm \
- sed \
- snappy-devel \
- sparse \
- spice-protocol \
- spice-server-devel \
- systemd-devel \
- systemtap-sdt-devel \
- tar \
- tesseract \
- tesseract-langpack-eng \
- texinfo \
- usbredir-devel \
- util-linux \
- virglrenderer-devel \
- vte291-devel \
- which \
- xen-devel \
- xfsprogs-devel \
- zlib-devel \
- zlib-static && \
+ SDL2-devel \
+ SDL2_image-devel \
+ alsa-lib-devel \
+ bash \
+ bc \
+ bison \
+ brlapi-devel \
+ bzip2 \
+ bzip2-devel \
+ ca-certificates \
+ capstone-devel \
+ ccache \
+ clang \
+ ctags \
+ cyrus-sasl-devel \
+ daxctl-devel \
+ dbus-daemon \
+ device-mapper-multipath-devel \
+ diffutils \
+ findutils \
+ flex \
+ fuse3-devel \
+ gcc \
+ gcc-c++ \
+ gcovr \
+ genisoimage \
+ gettext \
+ git \
+ glib2-devel \
+ glib2-static \
+ glibc-langpack-en \
+ glibc-static \
+ glusterfs-api-devel \
+ gnutls-devel \
+ gtk3-devel \
+ hostname \
+ jemalloc-devel \
+ json-c-devel \
+ libaio-devel \
+ libasan \
+ libattr-devel \
+ libbpf-devel \
+ libcacard-devel \
+ libcap-ng-devel \
+ libcmocka-devel \
+ libcurl-devel \
+ libdrm-devel \
+ libepoxy-devel \
+ libfdt-devel \
+ libffi-devel \
+ libgcrypt-devel \
+ libiscsi-devel \
+ libjpeg-devel \
+ libnfs-devel \
+ libpmem-devel \
+ libpng-devel \
+ librbd-devel \
+ libseccomp-devel \
+ libselinux-devel \
+ libslirp-devel \
+ libssh-devel \
+ libtasn1-devel \
+ libubsan \
+ liburing-devel \
+ libusbx-devel \
+ libzstd-devel \
+ llvm \
+ lttng-ust-devel \
+ lzo-devel \
+ make \
+ mesa-libgbm-devel \
+ meson \
+ ncurses-devel \
+ nettle-devel \
+ ninja-build \
+ nmap-ncat \
+ numactl-devel \
+ openssh-clients \
+ pam-devel \
+ pcre-static \
+ perl-base \
+ pixman-devel \
+ pkgconfig \
+ pulseaudio-libs-devel \
+ python3 \
+ python3-PyYAML \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-sphinx \
+ python3-sphinx_rtd_theme \
+ rdma-core-devel \
+ rpm \
+ sed \
+ snappy-devel \
+ sparse \
+ spice-protocol \
+ spice-server-devel \
+ systemd-devel \
+ systemtap-sdt-devel \
+ tar \
+ tesseract \
+ tesseract-langpack-eng \
+ texinfo \
+ usbredir-devel \
+ util-linux \
+ virglrenderer-devel \
+ vte291-devel \
+ which \
+ xen-devel \
+ xfsprogs-devel \
+ zlib-devel \
+ zlib-static && \
nosync dnf autoremove -y && \
nosync dnf clean all -y && \
rpm -qa | sort > /packages.txt && \
@@ -142,8 +142,8 @@ exec "$@"' > /usr/bin/nosync && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/tests/docker/dockerfiles/opensuse-leap.docker b/tests/docker/dockerfiles/opensuse-leap.docker
index d80064756f..4361b01464 100644
--- a/tests/docker/dockerfiles/opensuse-leap.docker
+++ b/tests/docker/dockerfiles/opensuse-leap.docker
@@ -104,6 +104,7 @@ RUN zypper update -y && \
rpm \
sed \
snappy-devel \
+ sndio-devel \
sparse \
spice-protocol-devel \
systemd-devel \
@@ -132,8 +133,8 @@ RUN zypper update -y && \
RUN /usr/bin/pip3 install meson==0.56.0
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/tests/docker/dockerfiles/ubuntu2004.docker b/tests/docker/dockerfiles/ubuntu2004.docker
index 24594afc15..9417bca2fa 100644
--- a/tests/docker/dockerfiles/ubuntu2004.docker
+++ b/tests/docker/dockerfiles/ubuntu2004.docker
@@ -11,122 +11,123 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get install -y eatmydata && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y \
- bash \
- bc \
- bison \
- bsdmainutils \
- bzip2 \
- ca-certificates \
- ccache \
- clang \
- dbus \
- debianutils \
- diffutils \
- exuberant-ctags \
- findutils \
- flex \
- g++ \
- gcc \
- gcovr \
- genisoimage \
- gettext \
- git \
- hostname \
- libaio-dev \
- libasan5 \
- libasound2-dev \
- libattr1-dev \
- libbrlapi-dev \
- libbz2-dev \
- libc6-dev \
- libcacard-dev \
- libcap-ng-dev \
- libcapstone-dev \
- libcmocka-dev \
- libcurl4-gnutls-dev \
- libdaxctl-dev \
- libdrm-dev \
- libepoxy-dev \
- libfdt-dev \
- libffi-dev \
- libfuse3-dev \
- libgbm-dev \
- libgcrypt20-dev \
- libglib2.0-dev \
- libglusterfs-dev \
- libgnutls28-dev \
- libgtk-3-dev \
- libibumad-dev \
- libibverbs-dev \
- libiscsi-dev \
- libjemalloc-dev \
- libjpeg-turbo8-dev \
- libjson-c-dev \
- liblttng-ust-dev \
- liblzo2-dev \
- libncursesw5-dev \
- libnfs-dev \
- libnuma-dev \
- libpam0g-dev \
- libpcre2-dev \
- libpixman-1-dev \
- libpmem-dev \
- libpng-dev \
- libpulse-dev \
- librbd-dev \
- librdmacm-dev \
- libsasl2-dev \
- libsdl2-dev \
- libsdl2-image-dev \
- libseccomp-dev \
- libselinux1-dev \
- libslirp-dev \
- libsnappy-dev \
- libspice-protocol-dev \
- libspice-server-dev \
- libssh-dev \
- libsystemd-dev \
- libtasn1-6-dev \
- libubsan1 \
- libudev-dev \
- libusb-1.0-0-dev \
- libusbredirhost-dev \
- libvdeplug-dev \
- libvirglrenderer-dev \
- libvte-2.91-dev \
- libxen-dev \
- libzstd-dev \
- llvm \
- locales \
- make \
- multipath-tools \
- ncat \
- nettle-dev \
- ninja-build \
- openssh-client \
- perl-base \
- pkgconf \
- python3 \
- python3-numpy \
- python3-opencv \
- python3-pillow \
- python3-pip \
- python3-setuptools \
- python3-sphinx \
- python3-sphinx-rtd-theme \
- python3-venv \
- python3-wheel \
- python3-yaml \
- rpm2cpio \
- sed \
- sparse \
- systemtap-sdt-dev \
- tar \
- tesseract-ocr \
- tesseract-ocr-eng \
- texinfo \
- xfslibs-dev \
- zlib1g-dev && \
+ bash \
+ bc \
+ bison \
+ bsdmainutils \
+ bzip2 \
+ ca-certificates \
+ ccache \
+ clang \
+ dbus \
+ debianutils \
+ diffutils \
+ exuberant-ctags \
+ findutils \
+ flex \
+ g++ \
+ gcc \
+ gcovr \
+ genisoimage \
+ gettext \
+ git \
+ hostname \
+ libaio-dev \
+ libasan5 \
+ libasound2-dev \
+ libattr1-dev \
+ libbrlapi-dev \
+ libbz2-dev \
+ libc6-dev \
+ libcacard-dev \
+ libcap-ng-dev \
+ libcapstone-dev \
+ libcmocka-dev \
+ libcurl4-gnutls-dev \
+ libdaxctl-dev \
+ libdrm-dev \
+ libepoxy-dev \
+ libfdt-dev \
+ libffi-dev \
+ libfuse3-dev \
+ libgbm-dev \
+ libgcrypt20-dev \
+ libglib2.0-dev \
+ libglusterfs-dev \
+ libgnutls28-dev \
+ libgtk-3-dev \
+ libibumad-dev \
+ libibverbs-dev \
+ libiscsi-dev \
+ libjemalloc-dev \
+ libjpeg-turbo8-dev \
+ libjson-c-dev \
+ liblttng-ust-dev \
+ liblzo2-dev \
+ libncursesw5-dev \
+ libnfs-dev \
+ libnuma-dev \
+ libpam0g-dev \
+ libpcre2-dev \
+ libpixman-1-dev \
+ libpmem-dev \
+ libpng-dev \
+ libpulse-dev \
+ librbd-dev \
+ librdmacm-dev \
+ libsasl2-dev \
+ libsdl2-dev \
+ libsdl2-image-dev \
+ libseccomp-dev \
+ libselinux1-dev \
+ libslirp-dev \
+ libsnappy-dev \
+ libsndio-dev \
+ libspice-protocol-dev \
+ libspice-server-dev \
+ libssh-dev \
+ libsystemd-dev \
+ libtasn1-6-dev \
+ libubsan1 \
+ libudev-dev \
+ libusb-1.0-0-dev \
+ libusbredirhost-dev \
+ libvdeplug-dev \
+ libvirglrenderer-dev \
+ libvte-2.91-dev \
+ libxen-dev \
+ libzstd-dev \
+ llvm \
+ locales \
+ make \
+ multipath-tools \
+ ncat \
+ nettle-dev \
+ ninja-build \
+ openssh-client \
+ perl-base \
+ pkgconf \
+ python3 \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-setuptools \
+ python3-sphinx \
+ python3-sphinx-rtd-theme \
+ python3-venv \
+ python3-wheel \
+ python3-yaml \
+ rpm2cpio \
+ sed \
+ sparse \
+ systemtap-sdt-dev \
+ tar \
+ tesseract-ocr \
+ tesseract-ocr-eng \
+ texinfo \
+ xfslibs-dev \
+ zlib1g-dev && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
@@ -141,11 +142,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN /usr/bin/pip3 install meson==0.56.0
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
# Apply patch https://reviews.llvm.org/D75820
# This is required for TSan in clang-10 to compile with QEMU.
RUN sed -i 's/^const/static const/g' /usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/tsan_interface.h
diff --git a/tests/lcitool/libvirt-ci b/tests/lcitool/libvirt-ci
index e3712b7912..79691a50a5 160000
--- a/tests/lcitool/libvirt-ci
+++ b/tests/lcitool/libvirt-ci
@@ -1 +1 @@
-Subproject commit e3712b79122180fdb3b7a7ea8cbee47ece253f97
+Subproject commit 79691a50a5f99bd7adda236f66c3c09371b01afa
diff --git a/tests/lcitool/projects/qemu.yml b/tests/lcitool/projects/qemu.yml
index 0d92819249..c62dbc00f9 100644
--- a/tests/lcitool/projects/qemu.yml
+++ b/tests/lcitool/projects/qemu.yml
@@ -101,6 +101,7 @@ packages:
- sdl2-image
- sed
- snappy
+ - sndio
- sparse
- spice-protocol
- spice-server
diff --git a/tests/vm/freebsd b/tests/vm/freebsd
index 3643fe325d..d6ff4461ba 100755
--- a/tests/vm/freebsd
+++ b/tests/vm/freebsd
@@ -66,6 +66,9 @@ class FreeBSDVM(basevm.BaseVM):
# libs: networking
"libslirp",
+
+ # libs: sndio
+ "sndio",
]
BUILD_SCRIPT = """
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 13/21] accel/qtest: Support qtest accelerator for Windows
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (11 preceding siblings ...)
2022-10-28 13:22 ` [PULL 12/21] tests: Add sndio to the FreeBSD CI containers / VM Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 14/21] tests/qtest: Use send/recv for socket communication Thomas Huth
` (9 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel
Cc: Xuzhou Cheng, Bin Meng, Marc-André Lureau
From: Xuzhou Cheng <xuzhou.cheng@windriver.com>
Currently signal SIGIPI [=SIGUSR1] is used to kick the dummy CPU
when qtest accelerator is used. However SIGUSR1 is unsupported on
Windows. To support Windows, we add a QemuSemaphore CPUState::sem
to kick the dummy CPU instead for Windows.
Signed-off-by: Xuzhou Cheng <xuzhou.cheng@windriver.com>
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20221028045736.679903-2-bin.meng@windriver.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
include/hw/core/cpu.h | 1 +
accel/dummy-cpus.c | 14 ++++++++++++--
softmmu/cpus.c | 9 +++++----
accel/meson.build | 2 +-
accel/qtest/meson.build | 3 +--
5 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index f9b58773f7..8830546121 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -333,6 +333,7 @@ struct CPUState {
struct QemuThread *thread;
#ifdef _WIN32
HANDLE hThread;
+ QemuSemaphore sem;
#endif
int thread_id;
bool running, has_waiter;
diff --git a/accel/dummy-cpus.c b/accel/dummy-cpus.c
index 10429fdfb2..d6a1b8d0a2 100644
--- a/accel/dummy-cpus.c
+++ b/accel/dummy-cpus.c
@@ -21,8 +21,6 @@
static void *dummy_cpu_thread_fn(void *arg)
{
CPUState *cpu = arg;
- sigset_t waitset;
- int r;
rcu_register_thread();
@@ -32,8 +30,13 @@ static void *dummy_cpu_thread_fn(void *arg)
cpu->can_do_io = 1;
current_cpu = cpu;
+#ifndef _WIN32
+ sigset_t waitset;
+ int r;
+
sigemptyset(&waitset);
sigaddset(&waitset, SIG_IPI);
+#endif
/* signal CPU creation */
cpu_thread_signal_created(cpu);
@@ -41,6 +44,7 @@ static void *dummy_cpu_thread_fn(void *arg)
do {
qemu_mutex_unlock_iothread();
+#ifndef _WIN32
do {
int sig;
r = sigwait(&waitset, &sig);
@@ -49,6 +53,9 @@ static void *dummy_cpu_thread_fn(void *arg)
perror("sigwait");
exit(1);
}
+#else
+ qemu_sem_wait(&cpu->sem);
+#endif
qemu_mutex_lock_iothread();
qemu_wait_io_event(cpu);
} while (!cpu->unplug);
@@ -69,4 +76,7 @@ void dummy_start_vcpu_thread(CPUState *cpu)
cpu->cpu_index);
qemu_thread_create(cpu->thread, thread_name, dummy_cpu_thread_fn, cpu,
QEMU_THREAD_JOINABLE);
+#ifdef _WIN32
+ qemu_sem_init(&cpu->sem, 0);
+#endif
}
diff --git a/softmmu/cpus.c b/softmmu/cpus.c
index 61b27ff59d..9dd1a4dc17 100644
--- a/softmmu/cpus.c
+++ b/softmmu/cpus.c
@@ -437,18 +437,19 @@ void qemu_wait_io_event(CPUState *cpu)
void cpus_kick_thread(CPUState *cpu)
{
-#ifndef _WIN32
- int err;
-
if (cpu->thread_kicked) {
return;
}
cpu->thread_kicked = true;
- err = pthread_kill(cpu->thread->thread, SIG_IPI);
+
+#ifndef _WIN32
+ int err = pthread_kill(cpu->thread->thread, SIG_IPI);
if (err && err != ESRCH) {
fprintf(stderr, "qemu:%s: %s", __func__, strerror(err));
exit(1);
}
+#else
+ qemu_sem_post(&cpu->sem);
#endif
}
diff --git a/accel/meson.build b/accel/meson.build
index b9a963cf80..259c35c4c8 100644
--- a/accel/meson.build
+++ b/accel/meson.build
@@ -16,5 +16,5 @@ dummy_ss.add(files(
'dummy-cpus.c',
))
-specific_ss.add_all(when: ['CONFIG_SOFTMMU', 'CONFIG_POSIX'], if_true: dummy_ss)
+specific_ss.add_all(when: ['CONFIG_SOFTMMU'], if_true: dummy_ss)
specific_ss.add_all(when: ['CONFIG_XEN'], if_true: dummy_ss)
diff --git a/accel/qtest/meson.build b/accel/qtest/meson.build
index 4c65600293..176d990ae1 100644
--- a/accel/qtest/meson.build
+++ b/accel/qtest/meson.build
@@ -1,2 +1 @@
-qtest_module_ss.add(when: ['CONFIG_SOFTMMU', 'CONFIG_POSIX'],
- if_true: files('qtest.c'))
+qtest_module_ss.add(when: ['CONFIG_SOFTMMU'], if_true: files('qtest.c'))
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 14/21] tests/qtest: Use send/recv for socket communication
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (12 preceding siblings ...)
2022-10-28 13:22 ` [PULL 13/21] accel/qtest: Support qtest accelerator for Windows Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 15/21] tests/qtest: Support libqtest to build and run on Windows Thomas Huth
` (8 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel
Cc: Xuzhou Cheng, Bin Meng, Marc-André Lureau
From: Xuzhou Cheng <xuzhou.cheng@windriver.com>
Socket communication in the libqtest and libqmp codes uses read()
and write() which work on any file descriptor on *nix, and sockets
in *nix are an example of a file descriptor.
However sockets on Windows do not use *nix-style file descriptors,
so read() and write() cannot be used on sockets on Windows.
Switch over to use send() and recv() instead which work on both
Windows and *nix.
Signed-off-by: Xuzhou Cheng <xuzhou.cheng@windriver.com>
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20221028045736.679903-3-bin.meng@windriver.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
include/qemu/sockets.h | 13 +++++++++++++
tests/qtest/libqmp.c | 5 +++--
tests/qtest/libqtest.c | 5 +++--
util/osdep.c | 22 ++++++++++++++++++++++
4 files changed, 41 insertions(+), 4 deletions(-)
diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h
index 036745e586..61648f3f3c 100644
--- a/include/qemu/sockets.h
+++ b/include/qemu/sockets.h
@@ -33,6 +33,19 @@ int qemu_socketpair(int domain, int type, int protocol, int sv[2]);
#endif
int qemu_accept(int s, struct sockaddr *addr, socklen_t *addrlen);
+/*
+ * A variant of send(2) which handles partial send.
+ *
+ * Return the number of bytes transferred over the socket.
+ * Set errno if fewer than `count' bytes are sent.
+ *
+ * This function don't work with non-blocking socket's.
+ * Any of the possibilities with non-blocking socket's is bad:
+ * - return a short write (then name is wrong)
+ * - busy wait adding (errno == EAGAIN) to the loop
+ */
+ssize_t qemu_send_full(int s, const void *buf, size_t count)
+ G_GNUC_WARN_UNUSED_RESULT;
int socket_set_cork(int fd, int v);
int socket_set_nodelay(int fd);
void qemu_socket_set_block(int fd);
diff --git a/tests/qtest/libqmp.c b/tests/qtest/libqmp.c
index ade26c15f0..2b08382e5d 100644
--- a/tests/qtest/libqmp.c
+++ b/tests/qtest/libqmp.c
@@ -23,6 +23,7 @@
#endif
#include "qemu/cutils.h"
+#include "qemu/sockets.h"
#include "qapi/error.h"
#include "qapi/qmp/json-parser.h"
#include "qapi/qmp/qjson.h"
@@ -36,7 +37,7 @@ typedef struct {
static void socket_send(int fd, const char *buf, size_t size)
{
- size_t res = qemu_write_full(fd, buf, size);
+ ssize_t res = qemu_send_full(fd, buf, size);
assert(res == size);
}
@@ -69,7 +70,7 @@ QDict *qmp_fd_receive(int fd)
ssize_t len;
char c;
- len = read(fd, &c, 1);
+ len = recv(fd, &c, 1, 0);
if (len == -1 && errno == EINTR) {
continue;
}
diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index b23eb3edc3..b01846fd98 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -27,6 +27,7 @@
#include "libqmp.h"
#include "qemu/ctype.h"
#include "qemu/cutils.h"
+#include "qemu/sockets.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qjson.h"
#include "qapi/qmp/qlist.h"
@@ -428,7 +429,7 @@ void qtest_quit(QTestState *s)
static void socket_send(int fd, const char *buf, size_t size)
{
- size_t res = qemu_write_full(fd, buf, size);
+ ssize_t res = qemu_send_full(fd, buf, size);
assert(res == size);
}
@@ -460,7 +461,7 @@ static GString *qtest_client_socket_recv_line(QTestState *s)
ssize_t len;
char buffer[1024];
- len = read(s->fd, buffer, sizeof(buffer));
+ len = recv(s->fd, buffer, sizeof(buffer), 0);
if (len == -1 && errno == EINTR) {
continue;
}
diff --git a/util/osdep.c b/util/osdep.c
index 746d5f7d71..77c1a6c562 100644
--- a/util/osdep.c
+++ b/util/osdep.c
@@ -502,6 +502,28 @@ int qemu_accept(int s, struct sockaddr *addr, socklen_t *addrlen)
return ret;
}
+ssize_t qemu_send_full(int s, const void *buf, size_t count)
+{
+ ssize_t ret = 0;
+ ssize_t total = 0;
+
+ while (count) {
+ ret = send(s, buf, count, 0);
+ if (ret < 0) {
+ if (errno == EINTR) {
+ continue;
+ }
+ break;
+ }
+
+ count -= ret;
+ buf += ret;
+ total += ret;
+ }
+
+ return total;
+}
+
void qemu_set_hw_version(const char *version)
{
hw_version = version;
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 15/21] tests/qtest: Support libqtest to build and run on Windows
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (13 preceding siblings ...)
2022-10-28 13:22 ` [PULL 14/21] tests/qtest: Use send/recv for socket communication Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:22 ` [PULL 16/21] tests/qtest: device-plug-test: Reverse the usage of double/single quotes Thomas Huth
` (7 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel
Cc: Bin Meng, Xuzhou Cheng, Marc-André Lureau
From: Bin Meng <bin.meng@windriver.com>
At present the libqtest codes were written to depend on several
POSIX APIs, including fork(), kill() and waitpid(). Unfortunately
these APIs are not available on Windows.
This commit implements the corresponding functionalities using
win32 native APIs. With this change, all qtest cases can build
successfully on a Windows host, and we can start qtest testing
on Windows now.
Signed-off-by: Xuzhou Cheng <xuzhou.cheng@windriver.com>
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20221028045736.679903-4-bin.meng@windriver.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/libqtest.c | 96 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 94 insertions(+), 2 deletions(-)
diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index b01846fd98..d12a604d78 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -16,9 +16,11 @@
#include "qemu/osdep.h"
+#ifndef _WIN32
#include <sys/socket.h>
#include <sys/wait.h>
#include <sys/un.h>
+#endif /* _WIN32 */
#ifdef __linux__
#include <sys/prctl.h>
#endif /* __linux__ */
@@ -36,6 +38,16 @@
#define MAX_IRQ 256
#define SOCKET_TIMEOUT 50
+#ifndef _WIN32
+# define CMD_EXEC "exec "
+# define DEV_STDERR "/dev/fd/2"
+# define DEV_NULL "/dev/null"
+#else
+# define CMD_EXEC ""
+# define DEV_STDERR "2"
+# define DEV_NULL "nul"
+#endif
+
typedef void (*QTestSendFn)(QTestState *s, const char *buf);
typedef void (*ExternalSendFn)(void *s, const char *buf);
typedef GString* (*QTestRecvFn)(QTestState *);
@@ -58,6 +70,9 @@ struct QTestState
int qmp_fd;
pid_t qemu_pid; /* our child QEMU process */
int wstatus;
+#ifdef _WIN32
+ DWORD exit_code;
+#endif
int expected_status;
bool big_endian;
bool irq_level[MAX_IRQ];
@@ -119,10 +134,18 @@ bool qtest_probe_child(QTestState *s)
pid_t pid = s->qemu_pid;
if (pid != -1) {
+#ifndef _WIN32
pid = waitpid(pid, &s->wstatus, WNOHANG);
if (pid == 0) {
return true;
}
+#else
+ GetExitCodeProcess((HANDLE)pid, &s->exit_code);
+ if (s->exit_code == STILL_ACTIVE) {
+ return true;
+ }
+ CloseHandle((HANDLE)pid);
+#endif
s->qemu_pid = -1;
}
return false;
@@ -136,13 +159,25 @@ void qtest_set_expected_status(QTestState *s, int status)
void qtest_kill_qemu(QTestState *s)
{
pid_t pid = s->qemu_pid;
+#ifndef _WIN32
int wstatus;
+#else
+ DWORD ret;
+#endif
/* Skip wait if qtest_probe_child already reaped. */
if (pid != -1) {
+#ifndef _WIN32
kill(pid, SIGTERM);
TFR(pid = waitpid(s->qemu_pid, &s->wstatus, 0));
assert(pid == s->qemu_pid);
+#else
+ TerminateProcess((HANDLE)pid, s->expected_status);
+ ret = WaitForSingleObject((HANDLE)pid, INFINITE);
+ assert(ret == WAIT_OBJECT_0);
+ GetExitCodeProcess((HANDLE)pid, &s->exit_code);
+ CloseHandle((HANDLE)pid);
+#endif
s->qemu_pid = -1;
}
@@ -150,6 +185,7 @@ void qtest_kill_qemu(QTestState *s)
* Check whether qemu exited with expected exit status; anything else is
* fishy and should be logged with as much detail as possible.
*/
+#ifndef _WIN32
wstatus = s->wstatus;
if (WIFEXITED(wstatus) && WEXITSTATUS(wstatus) != s->expected_status) {
fprintf(stderr, "%s:%d: kill_qemu() tried to terminate QEMU "
@@ -166,6 +202,14 @@ void qtest_kill_qemu(QTestState *s)
__FILE__, __LINE__, sig, signame, dump);
abort();
}
+#else
+ if (s->exit_code != s->expected_status) {
+ fprintf(stderr, "%s:%d: kill_qemu() tried to terminate QEMU "
+ "process but encountered exit status %ld (expected %d)\n",
+ __FILE__, __LINE__, s->exit_code, s->expected_status);
+ abort();
+ }
+#endif
}
static void kill_qemu_hook_func(void *s)
@@ -244,6 +288,38 @@ static const char *qtest_qemu_binary(void)
return qemu_bin;
}
+#ifdef _WIN32
+static pid_t qtest_create_process(char *cmd)
+{
+ STARTUPINFO si;
+ PROCESS_INFORMATION pi;
+ BOOL ret;
+
+ ZeroMemory(&si, sizeof(si));
+ si.cb = sizeof(si);
+ ZeroMemory(&pi, sizeof(pi));
+
+ ret = CreateProcess(NULL, /* module name */
+ cmd, /* command line */
+ NULL, /* process handle not inheritable */
+ NULL, /* thread handle not inheritable */
+ FALSE, /* set handle inheritance to FALSE */
+ 0, /* No creation flags */
+ NULL, /* use parent's environment block */
+ NULL, /* use parent's starting directory */
+ &si, /* pointer to STARTUPINFO structure */
+ &pi /* pointer to PROCESS_INFORMATION structure */
+ );
+ if (ret == 0) {
+ fprintf(stderr, "%s:%d: unable to create a new process (%s)\n",
+ __FILE__, __LINE__, strerror(GetLastError()));
+ abort();
+ }
+
+ return (pid_t)pi.hProcess;
+}
+#endif /* _WIN32 */
+
QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
{
QTestState *s;
@@ -271,6 +347,7 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
unlink(socket_path);
unlink(qmp_socket_path);
+ socket_init();
sock = init_socket(socket_path);
qmpsock = init_socket(qmp_socket_path);
@@ -279,7 +356,7 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
qtest_add_abrt_handler(kill_qemu_hook_func, s);
- command = g_strdup_printf("exec %s %s"
+ command = g_strdup_printf(CMD_EXEC "%s %s"
"-qtest unix:%s "
"-qtest-log %s "
"-chardev socket,path=%s,id=char0 "
@@ -288,7 +365,7 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
"%s"
" -accel qtest",
qemu_binary, tracearg, socket_path,
- getenv("QTEST_LOG") ? "/dev/fd/2" : "/dev/null",
+ getenv("QTEST_LOG") ? DEV_STDERR : DEV_NULL,
qmp_socket_path,
extra_args ?: "");
@@ -297,6 +374,7 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
s->pending_events = NULL;
s->wstatus = 0;
s->expected_status = 0;
+#ifndef _WIN32
s->qemu_pid = fork();
if (s->qemu_pid == 0) {
#ifdef __linux__
@@ -319,6 +397,9 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
execlp("/bin/sh", "sh", "-c", command, NULL);
exit(1);
}
+#else
+ s->qemu_pid = qtest_create_process(command);
+#endif /* _WIN32 */
g_free(command);
s->fd = socket_accept(sock);
@@ -337,9 +418,19 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
s->irq_level[i] = false;
}
+ /*
+ * Stopping QEMU for debugging is not supported on Windows.
+ *
+ * Using DebugActiveProcess() API can suspend the QEMU process,
+ * but gdb cannot attach to the process. Using the undocumented
+ * NtSuspendProcess() can suspend the QEMU process and gdb can
+ * attach to the process, but gdb cannot resume it.
+ */
+#ifndef _WIN32
if (getenv("QTEST_STOP")) {
kill(s->qemu_pid, SIGSTOP);
}
+#endif
/* ask endianness of the target */
@@ -393,6 +484,7 @@ QTestState *qtest_init_with_serial(const char *extra_args, int *sock_fd)
g_assert_true(sock_dir != NULL);
sock_path = g_strdup_printf("%s/sock", sock_dir);
+ socket_init();
sock_fd_init = init_socket(sock_path);
qts = qtest_initf("-chardev socket,id=s0,path=%s -serial chardev:s0 %s",
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 16/21] tests/qtest: device-plug-test: Reverse the usage of double/single quotes
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (14 preceding siblings ...)
2022-10-28 13:22 ` [PULL 15/21] tests/qtest: Support libqtest to build and run on Windows Thomas Huth
@ 2022-10-28 13:22 ` Thomas Huth
2022-10-28 13:23 ` [PULL 17/21] tests/qtest: Use EXIT_FAILURE instead of magic number Thomas Huth
` (6 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:22 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Bin Meng, Marc-André Lureau
From: Bin Meng <bin.meng@windriver.com>
The usage of double/single quotes in test_q35_pci_unplug_json_request()
should be reversed to work on both win32 and non-win32 platforms:
- The value of -device parameter needs to be surrounded by "" as
Windows does not drop '' when passing it to QEMU which causes
QEMU command line option parser failure.
- The JSON key/value pairs need to be surrounded by '' to make the
JSON parser happy on Windows.
Fixes: a12f1a7e56b7 ("tests/x86: Add subtest with 'q35' machine type to device-plug-test")
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20221028045736.679903-5-bin.meng@windriver.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/device-plug-test.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/tests/qtest/device-plug-test.c b/tests/qtest/device-plug-test.c
index 3f44f731d1..5a6afa2b57 100644
--- a/tests/qtest/device-plug-test.c
+++ b/tests/qtest/device-plug-test.c
@@ -112,16 +112,16 @@ static void test_pci_unplug_json_request(void)
static void test_q35_pci_unplug_json_request(void)
{
- const char *port = "-device '{\"driver\": \"pcie-root-port\", "
- "\"id\": \"p1\"}'";
+ const char *port = "-device \"{'driver': 'pcie-root-port', "
+ "'id': 'p1'}\"";
- const char *bridge = "-device '{\"driver\": \"pcie-pci-bridge\", "
- "\"id\": \"b1\", "
- "\"bus\": \"p1\"}'";
+ const char *bridge = "-device \"{'driver': 'pcie-pci-bridge', "
+ "'id': 'b1', "
+ "'bus': 'p1'}\"";
- const char *device = "-device '{\"driver\": \"virtio-mouse-pci\", "
- "\"bus\": \"b1\", "
- "\"id\": \"dev0\"}'";
+ const char *device = "-device \"{'driver': 'virtio-mouse-pci', "
+ "'bus': 'b1', "
+ "'id': 'dev0'}\"";
QTestState *qtest = qtest_initf("-machine q35 %s %s %s",
port, bridge, device);
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 17/21] tests/qtest: Use EXIT_FAILURE instead of magic number
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (15 preceding siblings ...)
2022-10-28 13:22 ` [PULL 16/21] tests/qtest: device-plug-test: Reverse the usage of double/single quotes Thomas Huth
@ 2022-10-28 13:23 ` Thomas Huth
2022-10-28 13:23 ` [PULL 18/21] tests/qtest: libqtest: Introduce qtest_wait_qemu() Thomas Huth
` (5 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:23 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel
Cc: Bin Meng, Marc-André Lureau, Juan Quintela
From: Bin Meng <bin.meng@windriver.com>
When migration fails, QEMU exits with a status code EXIT_FAILURE.
Change qtests to use the well-defined macro instead of magic number.
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Message-Id: <20221028045736.679903-6-bin.meng@windriver.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/dbus-vmstate-test.c | 2 +-
tests/qtest/migration-test.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/tests/qtest/dbus-vmstate-test.c b/tests/qtest/dbus-vmstate-test.c
index 74ede651f6..6c990864e3 100644
--- a/tests/qtest/dbus-vmstate-test.c
+++ b/tests/qtest/dbus-vmstate-test.c
@@ -233,7 +233,7 @@ test_dbus_vmstate(Test *test)
test->src_qemu = src_qemu;
if (test->migrate_fail) {
wait_for_migration_fail(src_qemu, true);
- qtest_set_expected_status(dst_qemu, 1);
+ qtest_set_expected_status(dst_qemu, EXIT_FAILURE);
} else {
wait_for_migration_complete(src_qemu);
}
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index aa1ba179fa..28a06d8170 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -1342,7 +1342,7 @@ static void test_precopy_common(MigrateCommon *args)
wait_for_migration_fail(from, allow_active);
if (args->result == MIG_TEST_FAIL_DEST_QUIT_ERR) {
- qtest_set_expected_status(to, 1);
+ qtest_set_expected_status(to, EXIT_FAILURE);
}
} else {
if (args->iterations) {
@@ -1738,7 +1738,7 @@ static void do_test_validate_uuid(MigrateStart *args, bool should_fail)
migrate_qmp(from, uri, "{}");
if (should_fail) {
- qtest_set_expected_status(to, 1);
+ qtest_set_expected_status(to, EXIT_FAILURE);
wait_for_migration_fail(from, true);
} else {
wait_for_migration_complete(from);
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 18/21] tests/qtest: libqtest: Introduce qtest_wait_qemu()
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (16 preceding siblings ...)
2022-10-28 13:23 ` [PULL 17/21] tests/qtest: Use EXIT_FAILURE instead of magic number Thomas Huth
@ 2022-10-28 13:23 ` Thomas Huth
2022-10-28 13:23 ` [PULL 19/21] tests/qtest: migration-test: Make sure QEMU process "to" exited after migration is canceled Thomas Huth
` (4 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:23 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Bin Meng, Marc-André Lureau
From: Bin Meng <bin.meng@windriver.com>
Introduce an API for qtest to wait for the QEMU process to terminate.
Suggested-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20221028045736.679903-7-bin.meng@windriver.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/libqtest.h | 9 ++++++
tests/qtest/libqtest.c | 63 +++++++++++++++++++++++++-----------------
2 files changed, 47 insertions(+), 25 deletions(-)
diff --git a/tests/qtest/libqtest.h b/tests/qtest/libqtest.h
index 65c040e504..91a5f7edd9 100644
--- a/tests/qtest/libqtest.h
+++ b/tests/qtest/libqtest.h
@@ -75,6 +75,15 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args);
*/
QTestState *qtest_init_with_serial(const char *extra_args, int *sock_fd);
+/**
+ * qtest_wait_qemu:
+ * @s: #QTestState instance to operate on.
+ *
+ * Wait for the QEMU process to terminate. It is safe to call this function
+ * multiple times.
+ */
+void qtest_wait_qemu(QTestState *s);
+
/**
* qtest_kill_qemu:
* @s: #QTestState instance to operate on.
diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index d12a604d78..e1e2d39a6e 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -156,37 +156,14 @@ void qtest_set_expected_status(QTestState *s, int status)
s->expected_status = status;
}
-void qtest_kill_qemu(QTestState *s)
+static void qtest_check_status(QTestState *s)
{
- pid_t pid = s->qemu_pid;
-#ifndef _WIN32
- int wstatus;
-#else
- DWORD ret;
-#endif
-
- /* Skip wait if qtest_probe_child already reaped. */
- if (pid != -1) {
-#ifndef _WIN32
- kill(pid, SIGTERM);
- TFR(pid = waitpid(s->qemu_pid, &s->wstatus, 0));
- assert(pid == s->qemu_pid);
-#else
- TerminateProcess((HANDLE)pid, s->expected_status);
- ret = WaitForSingleObject((HANDLE)pid, INFINITE);
- assert(ret == WAIT_OBJECT_0);
- GetExitCodeProcess((HANDLE)pid, &s->exit_code);
- CloseHandle((HANDLE)pid);
-#endif
- s->qemu_pid = -1;
- }
-
/*
* Check whether qemu exited with expected exit status; anything else is
* fishy and should be logged with as much detail as possible.
*/
#ifndef _WIN32
- wstatus = s->wstatus;
+ int wstatus = s->wstatus;
if (WIFEXITED(wstatus) && WEXITSTATUS(wstatus) != s->expected_status) {
fprintf(stderr, "%s:%d: kill_qemu() tried to terminate QEMU "
"process but encountered exit status %d (expected %d)\n",
@@ -212,6 +189,42 @@ void qtest_kill_qemu(QTestState *s)
#endif
}
+void qtest_wait_qemu(QTestState *s)
+{
+#ifndef _WIN32
+ pid_t pid;
+
+ TFR(pid = waitpid(s->qemu_pid, &s->wstatus, 0));
+ assert(pid == s->qemu_pid);
+#else
+ DWORD ret;
+
+ ret = WaitForSingleObject((HANDLE)s->qemu_pid, INFINITE);
+ assert(ret == WAIT_OBJECT_0);
+ GetExitCodeProcess((HANDLE)s->qemu_pid, &s->exit_code);
+ CloseHandle((HANDLE)s->qemu_pid);
+#endif
+
+ qtest_check_status(s);
+}
+
+void qtest_kill_qemu(QTestState *s)
+{
+ /* Skip wait if qtest_probe_child() already reaped */
+ if (s->qemu_pid != -1) {
+#ifndef _WIN32
+ kill(s->qemu_pid, SIGTERM);
+#else
+ TerminateProcess((HANDLE)s->qemu_pid, s->expected_status);
+#endif
+ qtest_wait_qemu(s);
+ s->qemu_pid = -1;
+ return;
+ }
+
+ qtest_check_status(s);
+}
+
static void kill_qemu_hook_func(void *s)
{
qtest_kill_qemu(s);
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 19/21] tests/qtest: migration-test: Make sure QEMU process "to" exited after migration is canceled
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (17 preceding siblings ...)
2022-10-28 13:23 ` [PULL 18/21] tests/qtest: libqtest: Introduce qtest_wait_qemu() Thomas Huth
@ 2022-10-28 13:23 ` Thomas Huth
2022-10-28 13:23 ` [PULL 20/21] tests/qtest: libqos: Do not build virtio-9p unconditionally Thomas Huth
` (3 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:23 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel
Cc: Xuzhou Cheng, Bin Meng, Marc-André Lureau
From: Xuzhou Cheng <xuzhou.cheng@windriver.com>
Make sure QEMU process "to" exited before launching another target
for migration in the test_multifd_tcp_cancel case.
Signed-off-by: Xuzhou Cheng <xuzhou.cheng@windriver.com>
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20221028045736.679903-8-bin.meng@windriver.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/migration-test.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index 28a06d8170..d2eb107f0c 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -2141,6 +2141,10 @@ static void test_multifd_tcp_cancel(void)
migrate_cancel(from);
+ /* Make sure QEMU process "to" exited */
+ qtest_set_expected_status(to, EXIT_FAILURE);
+ qtest_wait_qemu(to);
+
args = (MigrateStart){
.only_target = true,
};
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 20/21] tests/qtest: libqos: Do not build virtio-9p unconditionally
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (18 preceding siblings ...)
2022-10-28 13:23 ` [PULL 19/21] tests/qtest: migration-test: Make sure QEMU process "to" exited after migration is canceled Thomas Huth
@ 2022-10-28 13:23 ` Thomas Huth
2022-10-28 13:23 ` [PULL 21/21] tests/qtest: libqtest: Correct the timeout unit of blocking receive calls for win32 Thomas Huth
` (2 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:23 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Bin Meng, Marc-André Lureau
From: Bin Meng <bin.meng@windriver.com>
At present the virtio-9p related codes are built into libqos
unconditionally. Change to build them conditionally by testing
the 'virtfs' config option.
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20221028045736.679903-9-bin.meng@windriver.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/libqos/meson.build | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/tests/qtest/libqos/meson.build b/tests/qtest/libqos/meson.build
index 113c80b4e4..32f028872c 100644
--- a/tests/qtest/libqos/meson.build
+++ b/tests/qtest/libqos/meson.build
@@ -33,8 +33,6 @@ libqos_srcs = files(
'sdhci.c',
'tpci200.c',
'virtio.c',
- 'virtio-9p.c',
- 'virtio-9p-client.c',
'virtio-balloon.c',
'virtio-blk.c',
'vhost-user-blk.c',
@@ -62,6 +60,10 @@ libqos_srcs = files(
'x86_64_pc-machine.c',
)
+if have_virtfs
+ libqos_srcs += files('virtio-9p.c', 'virtio-9p-client.c')
+endif
+
libqos = static_library('qos', libqos_srcs + genh,
name_suffix: 'fa',
build_by_default: false)
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PULL 21/21] tests/qtest: libqtest: Correct the timeout unit of blocking receive calls for win32
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (19 preceding siblings ...)
2022-10-28 13:23 ` [PULL 20/21] tests/qtest: libqos: Do not build virtio-9p unconditionally Thomas Huth
@ 2022-10-28 13:23 ` Thomas Huth
2022-10-31 10:27 ` [PULL 00/21] s390x and qtest patches Stefan Hajnoczi
2022-10-31 18:37 ` Stefan Hajnoczi
22 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2022-10-28 13:23 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Bin Meng, Marc-André Lureau
From: Bin Meng <bin.meng@windriver.com>
Some qtest cases don't get response from the QEMU executable under
test in time on Windows. It turns out that the socket receive call
got timeout before it receive the complete response.
The timeout value is supposed to be set to 50 seconds via the
setsockopt() call, but there is a difference among platforms.
The timeout unit of blocking receive calls is measured in
seconds on non-Windows platforms but milliseconds on Windows.
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20221028045736.679903-10-bin.meng@windriver.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/libqtest.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index e1e2d39a6e..2fbc3b88f3 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -36,13 +36,14 @@
#include "qapi/qmp/qstring.h"
#define MAX_IRQ 256
-#define SOCKET_TIMEOUT 50
#ifndef _WIN32
+# define SOCKET_TIMEOUT 50
# define CMD_EXEC "exec "
# define DEV_STDERR "/dev/fd/2"
# define DEV_NULL "/dev/null"
#else
+# define SOCKET_TIMEOUT 50000
# define CMD_EXEC ""
# define DEV_STDERR "2"
# define DEV_NULL "nul"
@@ -106,8 +107,16 @@ static int socket_accept(int sock)
struct sockaddr_un addr;
socklen_t addrlen;
int ret;
+ /*
+ * timeout unit of blocking receive calls is different among platfoms.
+ * It's in seconds on non-Windows platforms but milliseconds on Windows.
+ */
+#ifndef _WIN32
struct timeval timeout = { .tv_sec = SOCKET_TIMEOUT,
.tv_usec = 0 };
+#else
+ DWORD timeout = SOCKET_TIMEOUT;
+#endif
if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO,
(void *)&timeout, sizeof(timeout))) {
--
2.31.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PULL 00/21] s390x and qtest patches
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (20 preceding siblings ...)
2022-10-28 13:23 ` [PULL 21/21] tests/qtest: libqtest: Correct the timeout unit of blocking receive calls for win32 Thomas Huth
@ 2022-10-31 10:27 ` Stefan Hajnoczi
2022-10-31 18:37 ` Stefan Hajnoczi
22 siblings, 0 replies; 24+ messages in thread
From: Stefan Hajnoczi @ 2022-10-31 10:27 UTC (permalink / raw)
To: Brad Smith; +Cc: Stefan Hajnoczi, qemu-devel, Thomas Huth
On Fri, 28 Oct 2022 at 09:24, Thomas Huth <thuth@redhat.com> wrote:
> Brad Smith (2):
> tests/vm: update openbsd to release 7.2
> tests: Add sndio to the FreeBSD CI containers / VM
The lcitool submodule was updated in this commit without an
explanation. I looked through the libvirt-ci.git commits and found
commit 94a63b504e8e ("mappings: add sndio package mappings").
Please document the reason for submodule updates in the future. That
helps me differentiate between intentional changes to submodules and
accidental ones. Thanks!
Stefan
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PULL 00/21] s390x and qtest patches
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
` (21 preceding siblings ...)
2022-10-31 10:27 ` [PULL 00/21] s390x and qtest patches Stefan Hajnoczi
@ 2022-10-31 18:37 ` Stefan Hajnoczi
22 siblings, 0 replies; 24+ messages in thread
From: Stefan Hajnoczi @ 2022-10-31 18:37 UTC (permalink / raw)
To: Thomas Huth; +Cc: Stefan Hajnoczi, qemu-devel
[-- Attachment #1: Type: text/plain, Size: 115 bytes --]
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/7.2 for any user-visible changes.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2022-10-31 18:55 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-28 13:22 [PULL 00/21] s390x and qtest patches Thomas Huth
2022-10-28 13:22 ` [PULL 01/21] s390x/pv: remove semicolon from macro definition Thomas Huth
2022-10-28 13:22 ` [PULL 02/21] s390x: step down as general arch maintainer Thomas Huth
2022-10-28 13:22 ` [PULL 03/21] s390x/tod-kvm: don't save/restore the TOD in PV guests Thomas Huth
2022-10-28 13:22 ` [PULL 04/21] tests/tcg/s390x: Test compiler flags only once, not every time Thomas Huth
2022-10-28 13:22 ` [PULL 05/21] target/s390x: Fix emulation of the VISTR instruction Thomas Huth
2022-10-28 13:22 ` [PULL 06/21] tests/tcg/s390x: Add a test for the vistr instruction Thomas Huth
2022-10-28 13:22 ` [PULL 07/21] MAINTAINERS: target/s390x/: add Ilya as reviewer Thomas Huth
2022-10-28 13:22 ` [PULL 08/21] tests/qtest/tpm: Clean up remainders of swtpm Thomas Huth
2022-10-28 13:22 ` [PULL 09/21] tests/qtest/cxl-test: Remove temporary directories after testing Thomas Huth
2022-10-28 13:22 ` [PULL 10/21] tests/qtest/libqos/e1000e: Use e1000_regs.h Thomas Huth
2022-10-28 13:22 ` [PULL 11/21] tests/vm: update openbsd to release 7.2 Thomas Huth
2022-10-28 13:22 ` [PULL 12/21] tests: Add sndio to the FreeBSD CI containers / VM Thomas Huth
2022-10-28 13:22 ` [PULL 13/21] accel/qtest: Support qtest accelerator for Windows Thomas Huth
2022-10-28 13:22 ` [PULL 14/21] tests/qtest: Use send/recv for socket communication Thomas Huth
2022-10-28 13:22 ` [PULL 15/21] tests/qtest: Support libqtest to build and run on Windows Thomas Huth
2022-10-28 13:22 ` [PULL 16/21] tests/qtest: device-plug-test: Reverse the usage of double/single quotes Thomas Huth
2022-10-28 13:23 ` [PULL 17/21] tests/qtest: Use EXIT_FAILURE instead of magic number Thomas Huth
2022-10-28 13:23 ` [PULL 18/21] tests/qtest: libqtest: Introduce qtest_wait_qemu() Thomas Huth
2022-10-28 13:23 ` [PULL 19/21] tests/qtest: migration-test: Make sure QEMU process "to" exited after migration is canceled Thomas Huth
2022-10-28 13:23 ` [PULL 20/21] tests/qtest: libqos: Do not build virtio-9p unconditionally Thomas Huth
2022-10-28 13:23 ` [PULL 21/21] tests/qtest: libqtest: Correct the timeout unit of blocking receive calls for win32 Thomas Huth
2022-10-31 10:27 ` [PULL 00/21] s390x and qtest patches Stefan Hajnoczi
2022-10-31 18:37 ` Stefan Hajnoczi
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).