aboutsummaryrefslogtreecommitdiff
path: root/tests/qtest
diff options
context:
space:
mode:
authorThomas Huth <thuth@redhat.com>2024-05-22 11:12:55 +0200
committerFabiano Rosas <farosas@suse.de>2024-05-22 17:34:41 -0300
commit648536550b6f319cae2e7a9f1b09851759c227b4 (patch)
tree2f9ea25aa9e43acd8dd366219b3de266573fb01b /tests/qtest
parent9710401276a0eb2fc6d467d9abea1f5e3fe2c362 (diff)
downloadqemu-648536550b6f319cae2e7a9f1b09851759c227b4.zip
qemu-648536550b6f319cae2e7a9f1b09851759c227b4.tar.gz
qemu-648536550b6f319cae2e7a9f1b09851759c227b4.tar.bz2
tests/qtest/migration-test: Run some basic tests on s390x and ppc64 with TCG, too
On s390x, we recently had a regression that broke migration / savevm (see commit bebe9603fc ("hw/intc/s390_flic: Fix crash that occurs when saving the machine state"). The problem was merged without being noticed since we currently do not run any migration / savevm related tests on x86 hosts. While we currently cannot run all migration tests for the s390x target on x86 hosts yet (due to some unresolved issues with TCG), we can at least run some of the non-live tests to avoid such problems in the future. Thus enable the "analyze-script" and the "bad_dest" tests before checking for KVM on s390x or ppc64 (this also fixes the problem that the "analyze-script" test was not run on s390x at all anymore since it got disabled again by accident in a previous refactoring of the code). Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Fabiano Rosas <farosas@suse.de> Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
Diffstat (limited to 'tests/qtest')
-rw-r--r--tests/qtest/migration-test.c39
1 files changed, 20 insertions, 19 deletions
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index e8d3555..5b4eca2 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -3437,6 +3437,20 @@ int main(int argc, char **argv)
arch = qtest_get_arch();
is_x86 = !strcmp(arch, "i386") || !strcmp(arch, "x86_64");
+ tmpfs = g_dir_make_tmp("migration-test-XXXXXX", &err);
+ if (!tmpfs) {
+ g_test_message("Can't create temporary directory in %s: %s",
+ g_get_tmp_dir(), err->message);
+ }
+ g_assert(tmpfs);
+
+ module_call_init(MODULE_INIT_QOM);
+
+ migration_test_add("/migration/bad_dest", test_baddest);
+#ifndef _WIN32
+ migration_test_add("/migration/analyze-script", test_analyze_script);
+#endif
+
/*
* On ppc64, the test only works with kvm-hv, but not with kvm-pr and TCG
* is touchy due to race conditions on dirty bits (especially on PPC for
@@ -3444,8 +3458,8 @@ int main(int argc, char **argv)
*/
if (g_str_equal(arch, "ppc64") &&
(!has_kvm || access("/sys/module/kvm_hv", F_OK))) {
- g_test_message("Skipping test: kvm_hv not available");
- return g_test_run();
+ g_test_message("Skipping tests: kvm_hv not available");
+ goto test_add_done;
}
/*
@@ -3453,19 +3467,10 @@ int main(int argc, char **argv)
* there until the problems are resolved
*/
if (g_str_equal(arch, "s390x") && !has_kvm) {
- g_test_message("Skipping test: s390x host with KVM is required");
- return g_test_run();
+ g_test_message("Skipping tests: s390x host with KVM is required");
+ goto test_add_done;
}
- tmpfs = g_dir_make_tmp("migration-test-XXXXXX", &err);
- if (!tmpfs) {
- g_test_message("Can't create temporary directory in %s: %s",
- g_get_tmp_dir(), err->message);
- }
- g_assert(tmpfs);
-
- module_call_init(MODULE_INIT_QOM);
-
if (is_x86) {
migration_test_add("/migration/precopy/unix/suspend/live",
test_precopy_unix_suspend_live);
@@ -3491,12 +3496,6 @@ int main(int argc, char **argv)
}
}
- migration_test_add("/migration/bad_dest", test_baddest);
-#ifndef _WIN32
- if (!g_str_equal(arch, "s390x")) {
- migration_test_add("/migration/analyze-script", test_analyze_script);
- }
-#endif
migration_test_add("/migration/precopy/unix/plain",
test_precopy_unix_plain);
migration_test_add("/migration/precopy/unix/xbzrle",
@@ -3653,6 +3652,8 @@ int main(int argc, char **argv)
test_vcpu_dirty_limit);
}
+test_add_done:
+
ret = g_test_run();
g_assert_cmpint(ret, ==, 0);