aboutsummaryrefslogtreecommitdiff
path: root/tests/qtest/libqtest.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/qtest/libqtest.c')
-rw-r--r--tests/qtest/libqtest.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index 73f6b977a6..25aeea385b 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -922,6 +922,33 @@ const char *qtest_get_arch(void)
return end + 1;
}
+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")) {
+ int i;
+ const char *arch = qtest_get_arch();
+ const char *targets[] = { CONFIG_KVM_TARGETS };
+
+ for (i = 0; i < ARRAY_SIZE(targets); i++) {
+ if (!strncmp(targets[i], arch, strlen(arch))) {
+ if (!access("/dev/kvm", R_OK | W_OK)) {
+ return true;
+ }
+ }
+ }
+ } else {
+ /* not implemented */
+ g_assert_not_reached();
+ }
+ return false;
+}
+
bool qtest_get_irq(QTestState *s, int num)
{
/* dummy operation in order to make sure irq is up to date */