/* SPDX-License-Identifier: GPL-2.0-only */ /* * Migration-related functions * * Copyright IBM Corp. 2022 * Author: Nico Boehr */ #include #include "migrate.h" /* * Initiate migration and wait for it to complete. */ void migrate(void) { puts("Now migrate the VM, then press a key to continue...\n"); (void)getchar(); report_info("Migration complete"); } /* * Like migrate() but suppress output and logs, useful for intensive * migration stress testing without polluting logs. Test cases should * provide relevant information about migration in failure reports. */ void migrate_quiet(void) { puts("Now migrate the VM (quiet)\n"); (void)getchar(); } /* * Initiate migration and wait for it to complete. * If this function is called more than once, it is a no-op. */ void migrate_once(void) { static bool migrated; if (migrated) return; migrated = true; migrate(); } /* * When the test has been started in migration mode, but the test case is * skipped and no migration point is reached, this can be used to tell the * harness not to mark it as a failure to migrate. */ void migrate_skip(void) { static bool did_migrate_skip; if (did_migrate_skip) return; did_migrate_skip = true; puts("Skipped VM migration (quiet)\n"); (void)getchar(); } void migrate_begin_continuous(void) { puts("Begin continuous migration\n"); (void)getchar(); } void migrate_end_continuous(void) { /* * Migration can split this output between source and dest QEMU * output files, print twice and match once to always cope with * a split. */ puts("End continuous migration\n"); puts("End continuous migration (quiet)\n"); (void)getchar(); }