/* * 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); } }