@@ -305,6 +305,24 @@ static void test_abstract_interfaces(void)
qtest_quit(qts);
}
+/*
+ * XXX currently we build also boards for ARM that are incompatible with KVM.
+ * We therefore need to check this explicitly, and only test virt for kvm-only
+ * arm builds.
+ * After we do the work of Kconfig etc to ensure that only KVM-compatible boards
+ * are built for the kvm-only build, we could remove this.
+ */
+static bool skip_machine_tests(void)
+{
+#ifndef CONFIG_TCG
+ const char *arch = qtest_get_arch();
+ if (strcmp(arch, "arm") == 0 || strcmp(arch, "aarch64") == 0) {
+ return true;
+ }
+#endif /* !CONFIG_TCG */
+ return false;
+}
+
static void add_machine_test_case(const char *mname)
{
char *path, *args;
@@ -329,11 +347,15 @@ int main(int argc, char **argv)
qtest_add_func("device/introspect/none", test_device_intro_none);
qtest_add_func("device/introspect/abstract", test_device_intro_abstract);
qtest_add_func("device/introspect/abstract-interfaces", test_abstract_interfaces);
- if (g_test_quick()) {
- qtest_add_data_func("device/introspect/concrete/defaults/none",
- g_strdup(common_args), test_device_intro_concrete);
- } else {
- qtest_cb_for_every_machine(add_machine_test_case, true);
+
+ if (!skip_machine_tests()) {
+ if (g_test_quick()) {
+ qtest_add_data_func("device/introspect/concrete/defaults/none",
+ g_strdup(common_args),
+ test_device_intro_concrete);
+ } else {
+ qtest_cb_for_every_machine(add_machine_test_case, true);
+ }
}
return g_test_run();