On 06/10/2023 14.39, Fabiano Rosas wrote:
When using two different QEMU binaries for migration testing, we'll
need to find what is the machine version that will work with both
binaries. Add a helper for that.

Signed-off-by: Fabiano Rosas <faro...@suse.de>
---
  tests/qtest/migration-helpers.c | 24 ++++++++++++++++++++++++
  tests/qtest/migration-helpers.h |  2 ++
  2 files changed, 26 insertions(+)

diff --git a/tests/qtest/migration-helpers.c b/tests/qtest/migration-helpers.c
index be00c52d00..8512134b92 100644
--- a/tests/qtest/migration-helpers.c
+++ b/tests/qtest/migration-helpers.c
@@ -180,3 +180,27 @@ void wait_for_migration_fail(QTestState *from, bool 
allow_active)
      g_assert(qdict_get_bool(rsp_return, "running"));
      qobject_unref(rsp_return);
  }
+
+char *find_common_machine_version(const char *mtype, const char *var1,
+                                  const char *var2)
+{
+    g_autofree char *type1 = qtest_resolve_machine_alias(var1, mtype);
+    g_autofree char *type2 = qtest_resolve_machine_alias(var2, mtype);
+
+    g_assert(type1 && type2);
+
+    if (g_str_equal(type1, type2)) {
+        /* either can be used */
+        return g_strdup(type1);

If you remove the g_strdup() in the previous patch, you can also get rid of the g_strdup() and g_autofree in this function here (and change the return type to "const char *".

 Thomas


+    }
+
+    if (qtest_has_machine_with_env(var2, type1)) {
+        return g_strdup(type1);
+    }
+
+    if (qtest_has_machine_with_env(var1, type2)) {
+        return g_strdup(type2);
+    }
+
+    g_assert_not_reached();
+}
diff --git a/tests/qtest/migration-helpers.h b/tests/qtest/migration-helpers.h
index 009e250e90..fc7f693fb6 100644
--- a/tests/qtest/migration-helpers.h
+++ b/tests/qtest/migration-helpers.h
@@ -33,4 +33,6 @@ void wait_for_migration_complete(QTestState *who);
void wait_for_migration_fail(QTestState *from, bool allow_active); +char *find_common_machine_version(const char *mtype, const char *var1,
+                                  const char *var2);
  #endif /* MIGRATION_HELPERS_H */


Reply via email to