[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 03/25] tests/qtest/migration: Add a fd + file test
From: |
peterx |
Subject: |
[PULL 03/25] tests/qtest/migration: Add a fd + file test |
Date: |
Wed, 28 Feb 2024 13:12:53 +0800 |
From: Fabiano Rosas <farosas@suse.de>
The fd URI supports an fd that is backed by a file. The code should
select between QIOChannelFile and QIOChannelSocket, depending on the
type of the fd. Add a test for that.
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: 20240220224138.24759-4-farosas@suse.de">https://lore.kernel.org/r/20240220224138.24759-4-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>
---
tests/qtest/migration-test.c | 41 ++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index b729ce4d22..83512bce85 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -2433,6 +2433,45 @@ static void test_migrate_precopy_fd_socket(void)
};
test_precopy_common(&args);
}
+
+static void *migrate_precopy_fd_file_start(QTestState *from, QTestState *to)
+{
+ g_autofree char *file = g_strdup_printf("%s/%s", tmpfs,
FILE_TEST_FILENAME);
+ int src_flags = O_CREAT | O_RDWR;
+ int dst_flags = O_CREAT | O_RDWR;
+ int fds[2];
+
+ fds[0] = open(file, src_flags, 0660);
+ assert(fds[0] != -1);
+
+ fds[1] = open(file, dst_flags, 0660);
+ assert(fds[1] != -1);
+
+
+ qtest_qmp_fds_assert_success(to, &fds[0], 1,
+ "{ 'execute': 'getfd',"
+ " 'arguments': { 'fdname': 'fd-mig' }}");
+
+ qtest_qmp_fds_assert_success(from, &fds[1], 1,
+ "{ 'execute': 'getfd',"
+ " 'arguments': { 'fdname': 'fd-mig' }}");
+
+ close(fds[0]);
+ close(fds[1]);
+
+ return NULL;
+}
+
+static void test_migrate_precopy_fd_file(void)
+{
+ MigrateCommon args = {
+ .listen_uri = "defer",
+ .connect_uri = "fd:fd-mig",
+ .start_hook = migrate_precopy_fd_file_start,
+ .finish_hook = test_migrate_fd_finish_hook
+ };
+ test_file_common(&args, true);
+}
#endif /* _WIN32 */
static void do_test_validate_uuid(MigrateStart *args, bool should_fail)
@@ -3529,6 +3568,8 @@ int main(int argc, char **argv)
#ifndef _WIN32
migration_test_add("/migration/precopy/fd/tcp",
test_migrate_precopy_fd_socket);
+ migration_test_add("/migration/precopy/fd/file",
+ test_migrate_precopy_fd_file);
#endif
migration_test_add("/migration/validate_uuid", test_validate_uuid);
migration_test_add("/migration/validate_uuid_error",
--
2.43.0
- [PULL 00/25] Migration next patches, peterx, 2024/02/28
- [PULL 01/25] docs/devel/migration.rst: Document the file transport, peterx, 2024/02/28
- [PULL 02/25] tests/qtest/migration: Rename fd_proto test, peterx, 2024/02/28
- [PULL 04/25] migration/multifd: Remove p->quit from recv side, peterx, 2024/02/28
- [PULL 03/25] tests/qtest/migration: Add a fd + file test,
peterx <=
- [PULL 07/25] migration/multifd: Drop registered_yank, peterx, 2024/02/28
- [PULL 06/25] migration/multifd: Cleanup TLS iochannel referencing, peterx, 2024/02/28
- [PULL 05/25] migration/multifd: Release recv sem_sync earlier, peterx, 2024/02/28
- [PULL 08/25] migration/multifd: Make multifd_channel_connect() return void, peterx, 2024/02/28
- [PULL 09/25] migration/multifd: Cleanup outgoing_args in state destroy, peterx, 2024/02/28
- [PULL 10/25] migration/multifd: Drop unnecessary helper to destroy IOC, peterx, 2024/02/28
- [PULL 11/25] notify: pass error to notifier with return, peterx, 2024/02/28
- [PULL 12/25] migration: remove error from notifier data, peterx, 2024/02/28
- [PULL 14/25] migration: MigrationEvent for notifiers, peterx, 2024/02/28
- [PULL 15/25] migration: remove postcopy_after_devices, peterx, 2024/02/28