[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 17/22] tests/qtest/migration: Split CPR tests
From: |
Fabiano Rosas |
Subject: |
[PATCH v2 17/22] tests/qtest/migration: Split CPR tests |
Date: |
Wed, 13 Nov 2024 16:46:25 -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.
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/test-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 c1dcc67363..05d0e33d78 100644
--- a/tests/qtest/meson.build
+++ b/tests/qtest/meson.build
@@ -336,6 +336,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 fa2fd0c672..93f156f7af 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 *test_mode_reboot_start(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 = test_mode_reboot_start
- };
-
- 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..92bd42e61a
--- /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/migration-qmp.h"
+#include "migration/migration-util.h"
+#include "migration/test-framework.h"
+
+
+static char *tmpfs;
+
+static void *test_mode_reboot_start(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 = test_mode_reboot_start
+ };
+
+ 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/test-framework.h
b/tests/qtest/migration/test-framework.h
index 4571326028..c1747a4e16 100644
--- a/tests/qtest/migration/test-framework.h
+++ b/tests/qtest/migration/test-framework.h
@@ -222,5 +222,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
- Re: [PATCH v2 11/22] tests/qtest/migration: Move common test code, (continued)
- [PATCH v2 12/22] tests/qtest/migration: Split TLS tests from migration-test.c, Fabiano Rosas, 2024/11/13
- [PATCH v2 14/22] tests/qtest/migration: Split postcopy tests, Fabiano Rosas, 2024/11/13
- [PATCH v2 13/22] tests/qtest/migration: Split compression tests from migration-test.c, Fabiano Rosas, 2024/11/13
- [PATCH v2 15/22] tests/qtest/migration: Split file tests, Fabiano Rosas, 2024/11/13
- [PATCH v2 19/22] tests/qtest/migration: Add migration-test-smoke, Fabiano Rosas, 2024/11/13
- [PATCH v2 17/22] tests/qtest/migration: Split CPR tests,
Fabiano Rosas <=
- [PATCH v2 16/22] tests/qtest/migration: Split precopy tests, Fabiano Rosas, 2024/11/13
- [PATCH v2 20/22] tests/qtest/migration: Pick smoke tests, Fabiano Rosas, 2024/11/13
- [PATCH v2 18/22] tests/qtest/migration: Split validation tests + misc, Fabiano Rosas, 2024/11/13
- [PATCH v2 21/22] tests/qtest: Add support for check-qtest-<subsystem>, Fabiano Rosas, 2024/11/13
- [PATCH v2 22/22] docs: Add migration tests documentation, Fabiano Rosas, 2024/11/13
- Re: [PATCH v2 00/22] tests/qtest: migration-test refactoring, Peter Xu, 2024/11/25