From: Fabiano Rosas <farosas@suse.de>
To: qemu-devel@nongnu.org
Cc: qemu-arm@nongnu.org, "Peter Maydell" <peter.maydell@linaro.org>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Claudio Fontana" <cfontana@suse.de>,
"Eduardo Habkost" <ehabkost@redhat.com>,
"Alexander Graf" <agraf@csgraf.de>,
"Cornelia Huck" <cohuck@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Igor Mammedov" <imammedo@redhat.com>,
"Ani Sinha" <ani@anisinha.ca>, "Thomas Huth" <thuth@redhat.com>,
"Laurent Vivier" <lvivier@redhat.com>,
"Juan Quintela" <quintela@redhat.com>,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>
Subject: [PATCH RESEND v7 9/9] tests/qtest: Fix tests when no KVM or TCG are present
Date: Tue, 28 Feb 2023 16:26:28 -0300 [thread overview]
Message-ID: <20230228192628.26140-10-farosas@suse.de> (raw)
In-Reply-To: <20230228192628.26140-1-farosas@suse.de>
It is possible to have a build with both TCG and KVM disabled due to
Xen requiring the i386 and x86_64 binaries to be present in an aarch64
host.
If we build with --disable-tcg on the aarch64 host, we will end-up
with a QEMU binary (x86) that does not support TCG nor KVM.
Fix tests that crash or hang in the above scenario. Do not include any
test cases if TCG and KVM are missing.
Signed-off-by: Fabiano Rosas <farosas@suse.de>
---
This currently affects Arm, but will also affect x86 after the xenpvh
series gets merged. This patch fixes both scenarios.
---
tests/qtest/bios-tables-test.c | 4 ++++
tests/qtest/boot-serial-test.c | 10 ++++++++++
tests/qtest/migration-test.c | 5 +++++
tests/qtest/pxe-test.c | 6 ++++++
tests/qtest/vmgenid-test.c | 6 ++++++
5 files changed, 31 insertions(+)
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index d29a4e47af..f6c2a010d2 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -2114,6 +2114,10 @@ int main(int argc, char *argv[])
char *v_env = getenv("V");
int ret;
+ if (!has_tcg && !has_kvm) {
+ return 0;
+ }
+
if (v_env) {
verbosity_level = atoi(v_env);
}
diff --git a/tests/qtest/boot-serial-test.c b/tests/qtest/boot-serial-test.c
index 3aef3a97a9..45490f5931 100644
--- a/tests/qtest/boot-serial-test.c
+++ b/tests/qtest/boot-serial-test.c
@@ -17,6 +17,9 @@
#include "libqtest.h"
#include "libqos/libqos-spapr.h"
+static bool has_tcg;
+static bool has_kvm;
+
static const uint8_t bios_avr[] = {
0x88, 0xe0, /* ldi r24, 0x08 */
0x80, 0x93, 0xc1, 0x00, /* sts 0x00C1, r24 ; Enable tx */
@@ -285,6 +288,13 @@ int main(int argc, char *argv[])
const char *arch = qtest_get_arch();
int i;
+ has_tcg = qtest_has_accel("tcg");
+ has_kvm = qtest_has_accel("kvm");
+
+ if (!has_tcg && !has_kvm) {
+ return 0;
+ }
+
g_test_init(&argc, &argv, NULL);
for (i = 0; tests[i].arch != NULL; i++) {
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index 109bc8e7b1..a6e3ca9f7d 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -2460,11 +2460,16 @@ static bool kvm_dirty_ring_supported(void)
int main(int argc, char **argv)
{
const bool has_kvm = qtest_has_accel("kvm");
+ const bool has_tcg = qtest_has_accel("tcg");
const bool has_uffd = ufd_version_check();
const char *arch = qtest_get_arch();
g_autoptr(GError) err = NULL;
int ret;
+ if (!has_tcg && !has_kvm) {
+ return 0;
+ }
+
g_test_init(&argc, &argv, NULL);
/*
diff --git a/tests/qtest/pxe-test.c b/tests/qtest/pxe-test.c
index 62b6eef464..05575f7687 100644
--- a/tests/qtest/pxe-test.c
+++ b/tests/qtest/pxe-test.c
@@ -130,6 +130,12 @@ int main(int argc, char *argv[])
{
int ret;
const char *arch = qtest_get_arch();
+ bool has_tcg = qtest_has_accel("tcg");
+ bool has_kvm = qtest_has_accel("kvm");
+
+ if (!has_tcg && !has_kvm) {
+ return 0;
+ }
ret = boot_sector_init(disk);
if(ret)
diff --git a/tests/qtest/vmgenid-test.c b/tests/qtest/vmgenid-test.c
index efba76e716..8045d3d706 100644
--- a/tests/qtest/vmgenid-test.c
+++ b/tests/qtest/vmgenid-test.c
@@ -164,6 +164,12 @@ static void vmgenid_query_monitor_test(void)
int main(int argc, char **argv)
{
int ret;
+ bool has_tcg = qtest_has_accel("tcg");
+ bool has_kvm = qtest_has_accel("kvm");
+
+ if (!has_tcg && !has_kvm) {
+ return 0;
+ }
ret = boot_sector_init(disk);
if (ret) {
--
2.35.3
next prev parent reply other threads:[~2023-02-28 19:30 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-28 19:26 [PATCH RESEND v7 0/9] target/arm: Allow CONFIG_TCG=n builds Fabiano Rosas
2023-02-28 19:26 ` [PATCH RESEND v7 1/9] target/arm: Move cortex sysregs into a separate file Fabiano Rosas
2023-03-01 1:21 ` Richard Henderson
2023-02-28 19:26 ` [PATCH RESEND v7 2/9] target/arm: Move 64-bit TCG CPUs into tcg/ Fabiano Rosas
2023-02-28 19:26 ` [PATCH RESEND v7 3/9] target/arm: Move aa32_max_features out of cpu_tcg.c Fabiano Rosas
2023-02-28 19:26 ` [PATCH RESEND v7 4/9] target/arm: move cpu_tcg to tcg/cpu32.c Fabiano Rosas
2023-03-01 13:06 ` Thomas Huth
2023-02-28 19:26 ` [PATCH RESEND v7 5/9] tests/avocado: Pass parameters to migration test Fabiano Rosas
2023-03-03 16:22 ` Peter Maydell
2023-03-03 20:59 ` Fabiano Rosas
2023-03-04 14:10 ` Peter Maydell
2023-03-06 17:06 ` Fabiano Rosas
2023-03-06 13:14 ` Dr. David Alan Gilbert
2023-02-28 19:26 ` [PATCH RESEND v7 6/9] arm/Kconfig: Always select SEMIHOSTING when TCG is present Fabiano Rosas
2023-02-28 19:26 ` [PATCH RESEND v7 7/9] arm/Kconfig: Do not build TCG-only boards on a KVM-only build Fabiano Rosas
2023-02-28 19:26 ` [PATCH RESEND v7 8/9] gitlab-ci: Check building KVM-only aarch64 target Fabiano Rosas
2023-02-28 19:26 ` Fabiano Rosas [this message]
2023-03-01 12:14 ` [PATCH RESEND v7 9/9] tests/qtest: Fix tests when no KVM or TCG are present Juan Quintela
2023-03-01 12:25 ` Fabiano Rosas
2023-03-01 12:57 ` Alex Bennée
2023-03-01 13:34 ` Fabiano Rosas
2023-03-01 13:04 ` Thomas Huth
2023-03-01 13:31 ` Fabiano Rosas
2023-03-01 13:43 ` Fabiano Rosas
2023-03-01 13:50 ` Thomas Huth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230228192628.26140-10-farosas@suse.de \
--to=farosas@suse.de \
--cc=agraf@csgraf.de \
--cc=alex.bennee@linaro.org \
--cc=ani@anisinha.ca \
--cc=cfontana@suse.de \
--cc=cohuck@redhat.com \
--cc=dgilbert@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=lvivier@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).