fd3540adb9
Various methods in the migration test call 'query_migrate' to fetch the current status and then access a particular field. Almost all of these cases expect the migration to be in a non-failed state. In the case of 'wait_for_migration_pass' in particular, if the status is 'failed' then it will get into an infinite loop. By validating that the status is not 'failed' the test suite will assert rather than hang when getting into an unexpected state. Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20220426160048.812266-10-berrange@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
40 lines
1.1 KiB
C
40 lines
1.1 KiB
C
/*
|
|
* QTest migration helpers
|
|
*
|
|
* 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.
|
|
*
|
|
*/
|
|
|
|
#ifndef MIGRATION_HELPERS_H
|
|
#define MIGRATION_HELPERS_H
|
|
|
|
#include "libqtest.h"
|
|
|
|
extern bool got_stop;
|
|
|
|
G_GNUC_PRINTF(3, 4)
|
|
QDict *wait_command_fd(QTestState *who, int fd, const char *command, ...);
|
|
|
|
G_GNUC_PRINTF(2, 3)
|
|
QDict *wait_command(QTestState *who, const char *command, ...);
|
|
|
|
G_GNUC_PRINTF(3, 4)
|
|
void migrate_qmp(QTestState *who, const char *uri, const char *fmt, ...);
|
|
|
|
QDict *migrate_query(QTestState *who);
|
|
QDict *migrate_query_not_failed(QTestState *who);
|
|
|
|
void wait_for_migration_status(QTestState *who,
|
|
const char *goal, const char **ungoals);
|
|
|
|
void wait_for_migration_complete(QTestState *who);
|
|
|
|
void wait_for_migration_fail(QTestState *from, bool allow_active);
|
|
|
|
#endif /* MIGRATION_HELPERS_H */
|