[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 2/2] tests/qtest: Make qtest_has_accel() generic



On 2025/01/28 20:18, Philippe Mathieu-Daudé wrote:
Since commit b14a0b7469f ("accel: Use QOM classes for accel types")
accelerators are registered as QOM objects. Use QOM as a generic
API to query for available accelerators. This is in particular
useful to query hardware accelerators such HFV, Xen or WHPX which
otherwise have their definitions poisoned in "exec/poison.h".

Signed-off-by: Philippe Mathieu-Daudé <philmd@xxxxxxxxxx>
---
  tests/qtest/libqtest.c | 21 ++++++++++-----------
  1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index 7e9366ad6d5..3071dedeff6 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -30,6 +30,7 @@
#include "libqtest.h"
  #include "libqmp.h"
+#include "qemu/accel.h"
  #include "qemu/ctype.h"
  #include "qemu/cutils.h"
  #include "qemu/sockets.h"
@@ -1030,13 +1031,10 @@ static bool qtest_qom_has_concrete_type(const char 
*parent_typename,
bool qtest_has_accel(const char *accel_name)
  {
-    if (g_str_equal(accel_name, "tcg")) {
-#if defined(CONFIG_TCG)
-        return true;
-#else
-        return false;
-#endif
-    } else if (g_str_equal(accel_name, "kvm")) {
+    static QList *list;
+    g_autofree char *accel_type = NULL;
+
+    if (g_str_equal(accel_name, "kvm")) {
          int i;
          const char *arch = qtest_get_arch();
          const char *targets[] = { CONFIG_KVM_TARGETS };
@@ -1048,11 +1046,12 @@ bool qtest_has_accel(const char *accel_name)
                  }
              }
          }
-    } else {
-        /* not implemented */
-        g_assert_not_reached();
+        return false;
      }
-    return false;
+
+    accel_type = g_strdup_printf("%s%s", accel_name, ACCEL_CLASS_SUFFIX);

g_strconcat() will make this a bit shorter.

+
+    return qtest_qom_has_concrete_type("accel", accel_type, &list);
  }
bool qtest_get_irq(QTestState *s, int num)




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.