[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 20/22] tests/qtest/migration: Split CPR tests
From: |
Fabiano Rosas |
Subject: |
[PULL 20/22] tests/qtest/migration: Split CPR tests |
Date: |
Thu, 12 Dec 2024 12:09:47 -0300 |
Move the mode/reboot test into a separate file to hold all the CPR
tests. Currently there's just one test, but we're adding more CPR
modes and the feature is different enough from live migration that
it's worth it to have a separate file for it.
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
---
tests/qtest/meson.build | 1 +
tests/qtest/migration-test.c | 34 +-----------------
tests/qtest/migration/cpr-tests.c | 58 +++++++++++++++++++++++++++++++
tests/qtest/migration/framework.h | 1 +
4 files changed, 61 insertions(+), 33 deletions(-)
create mode 100644 tests/qtest/migration/cpr-tests.c
diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
index fc38c80b43..cda1a84122 100644
--- a/tests/qtest/meson.build
+++ b/tests/qtest/meson.build
@@ -338,6 +338,7 @@ migration_files = [files(
'migration/migration-qmp.c',
'migration/migration-util.c',
'migration/compression-tests.c',
+ 'migration/cpr-tests.c',
'migration/file-tests.c',
'migration/precopy-tests.c',
'migration/postcopy-tests.c',
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index 76ba820fe4..0d1c8154d7 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -145,31 +145,6 @@ static void test_ignore_shared(void)
}
#endif
-static void *migrate_hook_start_mode_reboot(QTestState *from, QTestState *to)
-{
- migrate_set_parameter_str(from, "mode", "cpr-reboot");
- migrate_set_parameter_str(to, "mode", "cpr-reboot");
-
- migrate_set_capability(from, "x-ignore-shared", true);
- migrate_set_capability(to, "x-ignore-shared", true);
-
- return NULL;
-}
-
-static void test_mode_reboot(void)
-{
- g_autofree char *uri = g_strdup_printf("file:%s/%s", tmpfs,
- FILE_TEST_FILENAME);
- MigrateCommon args = {
- .start.use_shmem = true,
- .connect_uri = uri,
- .listen_uri = "defer",
- .start_hook = migrate_hook_start_mode_reboot,
- };
-
- test_file_common(&args, true);
-}
-
static void do_test_validate_uuid(MigrateStart *args, bool should_fail)
{
g_autofree char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs);
@@ -308,20 +283,13 @@ int main(int argc, char **argv)
migration_test_add_postcopy(env);
migration_test_add_file(env);
migration_test_add_precopy(env);
+ migration_test_add_cpr(env);
migration_test_add("/migration/bad_dest", test_baddest);
#ifndef _WIN32
migration_test_add("/migration/analyze-script", test_analyze_script);
#endif
- /*
- * Our CI system has problems with shared memory.
- * Don't run this test until we find a workaround.
- */
- if (getenv("QEMU_TEST_FLAKY_TESTS")) {
- migration_test_add("/migration/mode/reboot", test_mode_reboot);
- }
-
/* migration_test_add("/migration/ignore_shared", test_ignore_shared); */
migration_test_add("/migration/validate_uuid", test_validate_uuid);
diff --git a/tests/qtest/migration/cpr-tests.c
b/tests/qtest/migration/cpr-tests.c
new file mode 100644
index 0000000000..44ce89aa5b
--- /dev/null
+++ b/tests/qtest/migration/cpr-tests.c
@@ -0,0 +1,58 @@
+/*
+ * QTest testcases for CPR
+ *
+ * Copyright (c) 2016-2018 Red Hat, Inc. and/or its affiliates
+ * based on the vhost-user-test.c that is:
+ * Copyright (c) 2014 Virtual Open Systems Sarl.
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "libqtest.h"
+#include "migration/framework.h"
+#include "migration/migration-qmp.h"
+#include "migration/migration-util.h"
+
+
+static char *tmpfs;
+
+static void *migrate_hook_start_mode_reboot(QTestState *from, QTestState *to)
+{
+ migrate_set_parameter_str(from, "mode", "cpr-reboot");
+ migrate_set_parameter_str(to, "mode", "cpr-reboot");
+
+ migrate_set_capability(from, "x-ignore-shared", true);
+ migrate_set_capability(to, "x-ignore-shared", true);
+
+ return NULL;
+}
+
+static void test_mode_reboot(void)
+{
+ g_autofree char *uri = g_strdup_printf("file:%s/%s", tmpfs,
+ FILE_TEST_FILENAME);
+ MigrateCommon args = {
+ .start.use_shmem = true,
+ .connect_uri = uri,
+ .listen_uri = "defer",
+ .start_hook = migrate_hook_start_mode_reboot,
+ };
+
+ test_file_common(&args, true);
+}
+
+void migration_test_add_cpr(MigrationTestEnv *env)
+{
+ tmpfs = env->tmpfs;
+
+ /*
+ * Our CI system has problems with shared memory.
+ * Don't run this test until we find a workaround.
+ */
+ if (getenv("QEMU_TEST_FLAKY_TESTS")) {
+ migration_test_add("/migration/mode/reboot", test_mode_reboot);
+ }
+}
diff --git a/tests/qtest/migration/framework.h
b/tests/qtest/migration/framework.h
index 52c715781f..b264be76eb 100644
--- a/tests/qtest/migration/framework.h
+++ b/tests/qtest/migration/framework.h
@@ -224,5 +224,6 @@ void migration_test_add_compression(MigrationTestEnv *env);
void migration_test_add_postcopy(MigrationTestEnv *env);
void migration_test_add_file(MigrationTestEnv *env);
void migration_test_add_precopy(MigrationTestEnv *env);
+void migration_test_add_cpr(MigrationTestEnv *env);
#endif /* TEST_FRAMEWORK_H */
--
2.35.3
- [PULL 06/22] tests/qtest/migration: Stop calling everything "test", (continued)
- [PULL 06/22] tests/qtest/migration: Stop calling everything "test", Fabiano Rosas, 2024/12/12
- [PULL 07/22] tests/migration: Disambiguate guestperf vs. a-b, Fabiano Rosas, 2024/12/12
- [PULL 08/22] tests/qtest/migration: Move bootfile code to its own file, Fabiano Rosas, 2024/12/12
- [PULL 09/22] tests/qtest/migration: Move qmp helpers to a separate file, Fabiano Rosas, 2024/12/12
- [PULL 10/22] tests/qtest/migration: Rename migration-helpers.c, Fabiano Rosas, 2024/12/12
- [PULL 11/22] tests/qtest/migration: Move ufd_version_check to utils, Fabiano Rosas, 2024/12/12
- [PULL 12/22] tests/qtest/migration: Move kvm_dirty_ring_supported to utils, Fabiano Rosas, 2024/12/12
- [PULL 13/22] tests/qtest/migration: Isolate test initialization, Fabiano Rosas, 2024/12/12
- [PULL 15/22] tests/qtest/migration: Split TLS tests from migration-test.c, Fabiano Rosas, 2024/12/12
- [PULL 17/22] tests/qtest/migration: Split postcopy tests, Fabiano Rosas, 2024/12/12
- [PULL 20/22] tests/qtest/migration: Split CPR tests,
Fabiano Rosas <=
- [PULL 21/22] tests/qtest/migration-test: Fix and enable test_ignore_shared, Fabiano Rosas, 2024/12/12
- [PULL 14/22] tests/qtest/migration: Move common test code, Fabiano Rosas, 2024/12/12
- [PULL 22/22] tests/qtest/migration: Split validation tests + misc, Fabiano Rosas, 2024/12/12
- [PULL 16/22] tests/qtest/migration: Split compression tests from migration-test.c, Fabiano Rosas, 2024/12/12
- [PULL 18/22] tests/qtest/migration: Split file tests, Fabiano Rosas, 2024/12/12
- [PULL 19/22] tests/qtest/migration: Split precopy tests, Fabiano Rosas, 2024/12/12
- Re: [PULL 00/22] QTest patches for 2024-12-12, Stefan Hajnoczi, 2024/12/12