Merge tag 'pull-request-2024-02-23' of https://gitlab.com/thuth/qemu into staging
* m68k: Fix exception frame format for 68010
* Add cdrom test for LoongArch virt machine
* Fix qtests when using --without-default-devices
* Enable -Wvla
* Windows 32-bit removal
* Silence warnings in the test-x86-cpuid-compat qtest
# -----BEGIN PGP SIGNATURE-----
#
# iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmXY7MMRHHRodXRoQHJl
# ZGhhdC5jb20ACgkQLtnXdP5wLbWkRg//TCprQ7Gesex/yvMFIZuZk+poEaibxGXU
# cWp6hneV8selTzBKzBC3VS1n31shd9astNRE95N2fSIfCV6R22y2tfZF2rSOoeog
# bvqX7KoaEnSsrDS054EGAnuvYQpOGLGth/3Mc9Z791r5I1tYZPJocVnAyi/OB+3q
# Gr5WzXj6Z/QD7c0f6vZ943wRBO/zc1729KikDUSyfS3Tua+15mAuUIUQdlLNNPct
# 6aT5e6c967mAYh93AUevd3hgVYXH2W4fH7s1q2pap2hMBw2a43XvlMKJ9CvXPFPg
# eU6knRPES16BSC2TTphNCBQi9n3rQdion01VsoQEetVBfFa4yA1Ys7ofF5vCa2l8
# 5EO5X3VQfZeq0ktmrLM7qAO0OMnolIqbeNS97ggOiyL0Q3YXim6cNWf8+OZbGoFR
# OK88ndmzEXrZq+5w4QBDGLHFU3u8ZeWAM6p7Ht/ZN89ndDYT5bGBwkjVRW5hVgck
# fmGhgutSqP2/DN5/4nMn8jtmGc65H/rBRilttW8W2JF72rQJYduDnx/A4KUatkHT
# tC58NwLarF3kF7cebhWvNQDD74ia/35n+fEAmtIHF42YHE6aifss91QrgT+qGG5+
# GG12JIoFVDCgE1pkNU7GO53Uqo94Ej8TUOxwF9QfftxnqiktMG7Y/KQRcSA5VvHr
# laagGgDzHP0=
# =1hu9
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 23 Feb 2024 19:06:43 GMT
# gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5
# gpg: issuer "thuth@redhat.com"
# gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full]
# gpg: aka "Thomas Huth <thuth@redhat.com>" [full]
# gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full]
# gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown]
# Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5
* tag 'pull-request-2024-02-23' of https://gitlab.com/thuth/qemu:
target/i386: do not filter processor tracing features except on KVM
.gitlab-ci.d/windows.yml: Remove shared-msys2 abstraction
.gitlab-ci.d: Drop cross-win32-system job
docs: Document that 32-bit Windows is unsupported
meson: Enable -Wvla
target/ppc/kvm: Replace variable length array in kvmppc_read_hptes()
target/ppc/kvm: Replace variable length array in kvmppc_save_htab()
tests: skip dbus-display tests that need a console
tests/qtest: Fix boot-serial-test when using --without-default-devices
tests/cdrom-test: Add cdrom test for LoongArch virt machine
target/m68k: Fix exception frame format for 68010
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
diff --git a/.gitlab-ci.d/container-cross.yml b/.gitlab-ci.d/container-cross.yml
index 8d235cb..e310394 100644
--- a/.gitlab-ci.d/container-cross.yml
+++ b/.gitlab-ci.d/container-cross.yml
@@ -101,11 +101,6 @@
variables:
NAME: fedora-cris-cross
-win32-fedora-cross-container:
- extends: .container_job_template
- variables:
- NAME: fedora-win32-cross
-
win64-fedora-cross-container:
extends: .container_job_template
variables:
diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
index d19d98c..987ba96 100644
--- a/.gitlab-ci.d/crossbuilds.yml
+++ b/.gitlab-ci.d/crossbuilds.yml
@@ -159,20 +159,6 @@
IMAGE: debian-mips64el-cross
EXTRA_CONFIGURE_OPTS: --disable-tcg --target-list=mips64el-softmmu
-cross-win32-system:
- extends: .cross_system_build_job
- needs:
- job: win32-fedora-cross-container
- variables:
- IMAGE: fedora-win32-cross
- EXTRA_CONFIGURE_OPTS: --enable-fdt=internal
- CROSS_SKIP_TARGETS: alpha-softmmu avr-softmmu hppa-softmmu m68k-softmmu
- microblazeel-softmmu mips64el-softmmu nios2-softmmu
- artifacts:
- when: on_success
- paths:
- - build/qemu-setup*.exe
-
cross-win64-system:
extends: .cross_system_build_job
needs:
diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
index 8fc0821..f116b80 100644
--- a/.gitlab-ci.d/windows.yml
+++ b/.gitlab-ci.d/windows.yml
@@ -1,4 +1,4 @@
-.shared_msys2_builder:
+msys2-64bit:
extends: .base_job_template
tags:
- shared-windows
@@ -14,9 +14,20 @@
stage: build
timeout: 100m
variables:
+ # Select the "64 bit, gcc and MSVCRT" MSYS2 environment
+ MSYSTEM: MINGW64
# This feature doesn't (currently) work with PowerShell, it stops
# the echo'ing of commands being run and doesn't show any timing
FF_SCRIPT_SECTIONS: 0
+ # do not remove "--without-default-devices"!
+ # commit 9f8e6cad65a6 ("gitlab-ci: Speed up the msys2-64bit job by using --without-default-devices"
+ # changed to compile QEMU with the --without-default-devices switch
+ # for this job, because otherwise the build could not complete within
+ # the project timeout.
+ CONFIGURE_ARGS: --target-list=x86_64-softmmu --without-default-devices -Ddebug=false -Doptimization=0
+ # qTests don't run successfully with "--without-default-devices",
+ # so let's exclude the qtests from CI for now.
+ TEST_ARGS: --no-suite qtest
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 7 days
@@ -72,33 +83,35 @@
- .\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed
bison diffutils flex
git grep make sed
- $MINGW_TARGET-binutils
- $MINGW_TARGET-capstone
- $MINGW_TARGET-ccache
- $MINGW_TARGET-curl
- $MINGW_TARGET-cyrus-sasl
- $MINGW_TARGET-dtc
- $MINGW_TARGET-gcc
- $MINGW_TARGET-glib2
- $MINGW_TARGET-gnutls
- $MINGW_TARGET-gtk3
- $MINGW_TARGET-libgcrypt
- $MINGW_TARGET-libjpeg-turbo
- $MINGW_TARGET-libnfs
- $MINGW_TARGET-libpng
- $MINGW_TARGET-libssh
- $MINGW_TARGET-libtasn1
- $MINGW_TARGET-lzo2
- $MINGW_TARGET-nettle
- $MINGW_TARGET-ninja
- $MINGW_TARGET-pixman
- $MINGW_TARGET-pkgconf
- $MINGW_TARGET-python
- $MINGW_TARGET-SDL2
- $MINGW_TARGET-SDL2_image
- $MINGW_TARGET-snappy
- $MINGW_TARGET-zstd
- $EXTRA_PACKAGES "
+ mingw-w64-x86_64-binutils
+ mingw-w64-x86_64-capstone
+ mingw-w64-x86_64-ccache
+ mingw-w64-x86_64-curl
+ mingw-w64-x86_64-cyrus-sasl
+ mingw-w64-x86_64-dtc
+ mingw-w64-x86_64-gcc
+ mingw-w64-x86_64-glib2
+ mingw-w64-x86_64-gnutls
+ mingw-w64-x86_64-gtk3
+ mingw-w64-x86_64-libgcrypt
+ mingw-w64-x86_64-libjpeg-turbo
+ mingw-w64-x86_64-libnfs
+ mingw-w64-x86_64-libpng
+ mingw-w64-x86_64-libssh
+ mingw-w64-x86_64-libtasn1
+ mingw-w64-x86_64-libusb
+ mingw-w64-x86_64-lzo2
+ mingw-w64-x86_64-nettle
+ mingw-w64-x86_64-ninja
+ mingw-w64-x86_64-pixman
+ mingw-w64-x86_64-pkgconf
+ mingw-w64-x86_64-python
+ mingw-w64-x86_64-SDL2
+ mingw-w64-x86_64-SDL2_image
+ mingw-w64-x86_64-snappy
+ mingw-w64-x86_64-spice
+ mingw-w64-x86_64-usbredir
+ mingw-w64-x86_64-zstd"
- Write-Output "Running build at $(Get-Date -Format u)"
- $env:CHERE_INVOKING = 'yes' # Preserve the current working directory
- $env:MSYS = 'winsymlinks:native' # Enable native Windows symlink
@@ -115,19 +128,3 @@
- ..\msys64\usr\bin\bash -lc "make check MTESTARGS='$TEST_ARGS' || { cat meson-logs/testlog.txt; exit 1; } ;"
- ..\msys64\usr\bin\bash -lc "ccache --show-stats"
- Write-Output "Finished build at $(Get-Date -Format u)"
-
-msys2-64bit:
- extends: .shared_msys2_builder
- variables:
- MINGW_TARGET: mingw-w64-x86_64
- MSYSTEM: MINGW64
- # msys2 only ship these packages for 64-bit, not 32-bit
- EXTRA_PACKAGES: $MINGW_TARGET-libusb $MINGW_TARGET-usbredir $MINGW_TARGET-spice
- # do not remove "--without-default-devices"!
- # commit 9f8e6cad65a6 ("gitlab-ci: Speed up the msys2-64bit job by using --without-default-devices"
- # changed to compile QEMU with the --without-default-devices switch
- # for the msys2 64-bit job, due to the build could not complete within
- CONFIGURE_ARGS: --target-list=x86_64-softmmu --without-default-devices -Ddebug=false -Doptimization=0
- # qTests don't run successfully with "--without-default-devices",
- # so let's exclude the qtests from CI for now.
- TEST_ARGS: --no-suite qtest
diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
index f2a7aec..8fd7da1 100644
--- a/docs/about/build-platforms.rst
+++ b/docs/about/build-platforms.rst
@@ -139,6 +139,8 @@
When Developer Mode is not available/enabled, the SeCreateSymbolicLinkPrivilege
privilege is required, or the process must be run as an administrator.
+Only 64-bit Windows is supported.
+
.. _Homebrew: https://brew.sh/
.. _MacPorts: https://www.macports.org/
.. _MSYS2: https://www.msys2.org/
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index 54081a6..417a0e4 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -659,6 +659,21 @@
The ``singlestep`` command has been replaced by the ``one-insn-per-tb``
command, which has the same behaviour but a less misleading name.
+Host Architectures
+------------------
+
+System emulation on 32-bit Windows hosts (removed in 9.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Windows 11 has no support for 32-bit host installs, and Windows 10 did
+not support new 32-bit installs, only upgrades. 32-bit Windows support
+has now been dropped by the MSYS2 project. QEMU also is deprecating
+and dropping support for 32-bit x86 host deployments in
+general. 32-bit Windows is therefore no longer a supported host for
+QEMU. Since all recent x86 hardware from the past >10 years is
+capable of the 64-bit x86 extensions, a corresponding 64-bit OS should
+be used instead.
+
Guest Emulator ISAs
-------------------
diff --git a/meson.build b/meson.build
index c1dc83e..0ef1654 100644
--- a/meson.build
+++ b/meson.build
@@ -592,6 +592,7 @@
'-Wstrict-prototypes',
'-Wtype-limits',
'-Wundef',
+ '-Wvla',
'-Wwrite-strings',
# Then disable some undesirable warnings
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index bca776e..7f90823 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -6412,6 +6412,10 @@
break;
}
+ /*
+ * If these are changed, they should stay in sync with
+ * x86_cpu_filter_features().
+ */
if (count == 0) {
*eax = INTEL_PT_MAX_SUBLEAF;
*ebx = INTEL_PT_MINIMAL_EBX;
@@ -7156,7 +7160,12 @@
mark_unavailable_features(cpu, w, unavailable_features, prefix);
}
- if (env->features[FEAT_7_0_EBX] & CPUID_7_0_EBX_INTEL_PT) {
+ /*
+ * Check that KVM actually allows the processor tracing features that
+ * are advertised by cpu_x86_cpuid(). Keep these two in sync.
+ */
+ if ((env->features[FEAT_7_0_EBX] & CPUID_7_0_EBX_INTEL_PT) &&
+ kvm_enabled()) {
uint32_t eax_0, ebx_0, ecx_0, edx_0_unused;
uint32_t eax_1, ebx_1, ecx_1_unused, edx_1_unused;
diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c
index 8a8392e..d5a71c6 100644
--- a/target/m68k/cpu.c
+++ b/target/m68k/cpu.c
@@ -142,7 +142,8 @@
}
/*
- * Adds BKPT, MOVE-from-SR *now priv instr, and MOVEC, MOVES, RTD
+ * Adds BKPT, MOVE-from-SR *now priv instr, and MOVEC, MOVES, RTD,
+ * format+vector in exception frame.
*/
static void m68010_cpu_initfn(Object *obj)
{
@@ -155,6 +156,7 @@
m68k_set_feature(env, M68K_FEATURE_BKPT);
m68k_set_feature(env, M68K_FEATURE_MOVEC);
m68k_set_feature(env, M68K_FEATURE_MOVEFROMSR_PRIV);
+ m68k_set_feature(env, M68K_FEATURE_EXCEPTION_FORMAT_VEC);
}
/*
diff --git a/target/m68k/cpu.h b/target/m68k/cpu.h
index 646cacb..346427e 100644
--- a/target/m68k/cpu.h
+++ b/target/m68k/cpu.h
@@ -550,6 +550,8 @@
M68K_FEATURE_TRAPCC,
/* MOVE from SR privileged (from 68010) */
M68K_FEATURE_MOVEFROMSR_PRIV,
+ /* Exception frame with format+vector (from 68010) */
+ M68K_FEATURE_EXCEPTION_FORMAT_VEC,
};
static inline bool m68k_feature(CPUM68KState *env, int feature)
diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c
index 47b4173..956e76e 100644
--- a/target/m68k/op_helper.c
+++ b/target/m68k/op_helper.c
@@ -52,7 +52,7 @@
sp += 2;
env->pc = cpu_ldl_mmuidx_ra(env, sp, MMU_KERNEL_IDX, 0);
sp += 4;
- if (m68k_feature(env, M68K_FEATURE_QUAD_MULDIV)) {
+ if (m68k_feature(env, M68K_FEATURE_EXCEPTION_FORMAT_VEC)) {
/* all except 68000 */
fmt = cpu_lduw_mmuidx_ra(env, sp, MMU_KERNEL_IDX, 0);
sp += 2;
@@ -256,7 +256,7 @@
uint16_t format, uint16_t sr,
uint32_t addr, uint32_t retaddr)
{
- if (m68k_feature(env, M68K_FEATURE_QUAD_MULDIV)) {
+ if (m68k_feature(env, M68K_FEATURE_EXCEPTION_FORMAT_VEC)) {
/* all except 68000 */
CPUState *cs = env_cpu(env);
switch (format) {
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
index 26fa9d0..bcf30a5 100644
--- a/target/ppc/kvm.c
+++ b/target/ppc/kvm.c
@@ -2688,7 +2688,7 @@
int kvmppc_save_htab(QEMUFile *f, int fd, size_t bufsize, int64_t max_ns)
{
int64_t starttime = qemu_clock_get_ns(QEMU_CLOCK_REALTIME);
- uint8_t buf[bufsize];
+ g_autofree uint8_t *buf = g_malloc(bufsize);
ssize_t rc;
do {
@@ -2770,9 +2770,9 @@
while (i < n) {
struct kvm_get_htab_header *hdr;
int m = n < HPTES_PER_GROUP ? n : HPTES_PER_GROUP;
- char buf[sizeof(*hdr) + m * HASH_PTE_SIZE_64];
+ char buf[sizeof(*hdr) + HPTES_PER_GROUP * HASH_PTE_SIZE_64];
- rc = read(fd, buf, sizeof(buf));
+ rc = read(fd, buf, sizeof(*hdr) + m * HASH_PTE_SIZE_64);
if (rc < 0) {
hw_error("kvmppc_read_hptes: Unable to read HPTEs");
}
diff --git a/tests/docker/dockerfiles/fedora-win32-cross.docker b/tests/docker/dockerfiles/fedora-win32-cross.docker
deleted file mode 100644
index 0879921..0000000
--- a/tests/docker/dockerfiles/fedora-win32-cross.docker
+++ /dev/null
@@ -1,111 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool dockerfile --layers all --cross-arch mingw32 fedora-38 qemu
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM registry.fedoraproject.org/fedora:38
-
-RUN dnf install -y nosync && \
- printf '#!/bin/sh\n\
-if test -d /usr/lib64\n\
-then\n\
- export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
-else\n\
- export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
-fi\n\
-exec "$@"\n' > /usr/bin/nosync && \
- chmod +x /usr/bin/nosync && \
- nosync dnf update -y && \
- nosync dnf install -y \
- bash \
- bc \
- bison \
- bzip2 \
- ca-certificates \
- ccache \
- ctags \
- dbus-daemon \
- diffutils \
- findutils \
- flex \
- gcc \
- gcovr \
- git \
- glib2-devel \
- glibc-langpack-en \
- hostname \
- llvm \
- make \
- meson \
- mtools \
- ninja-build \
- nmap-ncat \
- openssh-clients \
- pcre-static \
- python3 \
- python3-PyYAML \
- python3-numpy \
- python3-opencv \
- python3-pillow \
- python3-pip \
- python3-sphinx \
- python3-sphinx_rtd_theme \
- sed \
- socat \
- sparse \
- spice-protocol \
- swtpm \
- tar \
- tesseract \
- tesseract-langpack-eng \
- util-linux \
- which \
- xorriso \
- zstd && \
- nosync dnf autoremove -y && \
- nosync dnf clean all -y
-
-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"
-
-RUN nosync dnf install -y \
- mingw32-SDL2 \
- mingw32-SDL2_image \
- mingw32-bzip2 \
- mingw32-curl \
- mingw32-gcc \
- mingw32-gcc-c++ \
- mingw32-gettext \
- mingw32-glib2 \
- mingw32-gnutls \
- mingw32-gtk3 \
- mingw32-libepoxy \
- mingw32-libgcrypt \
- mingw32-libjpeg-turbo \
- mingw32-libpng \
- mingw32-libtasn1 \
- mingw32-nettle \
- mingw32-nsis \
- mingw32-pixman \
- mingw32-pkg-config && \
- nosync dnf clean all -y && \
- rpm -qa | sort > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-c++ && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-g++ && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-gcc
-
-ENV ABI "i686-w64-mingw32"
-ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw32.meson"
-ENV QEMU_CONFIGURE_OPTS --cross-prefix=i686-w64-mingw32-
-ENV DEF_TARGET_LIST i386-softmmu
-# As a final step configure the user (if env is defined)
-ARG USER
-ARG UID
-RUN if [ "${USER}" ]; then \
- id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index 0c93557..fe7692c 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -192,11 +192,6 @@
trailer=cross_build("s390x-linux-gnu-",
"s390x-softmmu,s390x-linux-user"))
- generate_dockerfile("fedora-win32-cross", "fedora-38",
- cross="mingw32",
- trailer=cross_build("i686-w64-mingw32-",
- "i386-softmmu"))
-
generate_dockerfile("fedora-win64-cross", "fedora-38",
cross="mingw64",
trailer=cross_build("x86_64-w64-mingw32-",
diff --git a/tests/qtest/boot-serial-test.c b/tests/qtest/boot-serial-test.c
index 6dd06ae..e3b7d65 100644
--- a/tests/qtest/boot-serial-test.c
+++ b/tests/qtest/boot-serial-test.c
@@ -156,7 +156,7 @@
"Open Firmware" },
{ "ppc64", "powernv8", "", "OPAL" },
{ "ppc64", "powernv9", "", "OPAL" },
- { "ppc64", "sam460ex", "-device e1000", "8086 100e" },
+ { "ppc64", "sam460ex", "-device pci-bridge,chassis_nr=2", "1b36 0001" },
{ "i386", "isapc", "-cpu qemu32 -M graphics=off", "SeaBIOS" },
{ "i386", "pc", "-M graphics=off", "SeaBIOS" },
{ "i386", "q35", "-M graphics=off", "SeaBIOS" },
diff --git a/tests/qtest/cdrom-test.c b/tests/qtest/cdrom-test.c
index 0945383..5d89e62 100644
--- a/tests/qtest/cdrom-test.c
+++ b/tests/qtest/cdrom-test.c
@@ -271,6 +271,11 @@
const char *virtmachine[] = { "virt", NULL };
add_cdrom_param_tests(virtmachine);
}
+ } else if (g_str_equal(arch, "loongarch64")) {
+ if (qtest_has_device("virtio-blk-pci")) {
+ const char *virtmachine[] = { "virt", NULL };
+ add_cdrom_param_tests(virtmachine);
+ }
} else {
const char *nonemachine[] = { "none", NULL };
add_cdrom_param_tests(nonemachine);
diff --git a/tests/qtest/dbus-display-test.c b/tests/qtest/dbus-display-test.c
index 21edaa1..0390bdc 100644
--- a/tests/qtest/dbus-display-test.c
+++ b/tests/qtest/dbus-display-test.c
@@ -135,6 +135,13 @@
NULL,
#endif
res, &err);
+
+ if (g_error_matches(err, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD)) {
+ g_test_skip("The VM doesn't have a console!");
+ g_main_loop_quit(test->loop);
+ return;
+ }
+
g_assert_no_error(err);
test->listener_conn = g_thread_join(test->thread);
@@ -156,7 +163,7 @@
g_autoptr(GMainLoop) loop = NULL;
QTestState *qts = NULL;
int pair[2];
- TestDBusConsoleRegister test;
+ TestDBusConsoleRegister test = { 0, };
#ifdef WIN32
WSAPROTOCOL_INFOW info;
g_autoptr(GVariant) listener = NULL;
@@ -245,7 +252,6 @@
&err));
g_assert_no_error(err);
-
g_assert_cmpint(qtest_inb(qts, 0x64) & 0x1, ==, 0);
g_assert_cmpint(qtest_inb(qts, 0x60), ==, 0);
@@ -256,6 +262,12 @@
-1,
NULL,
&err);
+ if (g_error_matches(err, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD)) {
+ g_test_skip("The VM doesn't have a console!");
+ qtest_quit(qts);
+ return;
+ }
+
g_assert_no_error(err);
/* may be should wait for interrupt? */