[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 11/18] tests: expand the migration precopy helper to support f
From: |
Daniel P . Berrangé |
Subject: |
[PATCH v2 11/18] tests: expand the migration precopy helper to support failures |
Date: |
Thu, 10 Mar 2022 17:18:14 +0000 |
The migration precopy testing helper function always expects the
migration to run to a completion state. There will be test scenarios
for TLS where expect either the client or server to fail the migration.
This expands the helper to cope with these scenarios.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
tests/qtest/migration-test.c | 51 +++++++++++++++++++++++++++++-------
1 file changed, 42 insertions(+), 9 deletions(-)
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index 04f749aaa1..2af36c16a3 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -821,6 +821,30 @@ typedef struct {
TestMigrateStartHook start_hook;
/* Optional: callback to run at finish to cleanup */
TestMigrateFinishHook finish_hook;
+
+ /*
+ * Optional: normally we expect the migration process to complete.
+ *
+ * There can be a variety of reasons and stages in which failure
+ * can happen during tests.
+ *
+ * If a failure is expected to happen at time of establishing
+ * the connection, then MIG_TEST_FAIL will indicate that the dst
+ * QEMU is expected to stay running and accept future migration
+ * connections.
+ *
+ * If a failure is expected to happen while processing the
+ * migration stream, then MIG_TEST_FAIL_DEST_QUIT_ERR will indicate
+ * that the dst QEMU is expected to quit with non-zero exit status
+ */
+ enum {
+ /* This test should succeed, the default */
+ MIG_TEST_SUCCEED = 0,
+ /* This test should fail, dest qemu should keep alive */
+ MIG_TEST_FAIL,
+ /* This test should fail, dest qemu should fail with abnormal status */
+ MIG_TEST_FAIL_DEST_QUIT_ERR,
+ } result;
} MigrateCommon;
static void test_precopy_common(MigrateCommon *args)
@@ -858,24 +882,33 @@ static void test_precopy_common(MigrateCommon *args)
}
- wait_for_migration_pass(from);
+ if (args->result != MIG_TEST_SUCCEED) {
+ bool allow_active = args->result == MIG_TEST_FAIL;
+ wait_for_migration_fail(from, allow_active);
- migrate_set_parameter_int(from, "downtime-limit", CONVERGE_DOWNTIME);
+ if (args->result == MIG_TEST_FAIL_DEST_QUIT_ERR) {
+ qtest_set_expected_status(to, 1);
+ }
+ } else {
+ wait_for_migration_pass(from);
- if (!got_stop) {
- qtest_qmp_eventwait(from, "STOP");
- }
+ migrate_set_parameter_int(from, "downtime-limit", CONVERGE_DOWNTIME);
- qtest_qmp_eventwait(to, "RESUME");
+ if (!got_stop) {
+ qtest_qmp_eventwait(from, "STOP");
+ }
- wait_for_serial("dest_serial");
- wait_for_migration_complete(from);
+ qtest_qmp_eventwait(to, "RESUME");
+
+ wait_for_serial("dest_serial");
+ wait_for_migration_complete(from);
+ }
if (args->finish_hook) {
args->finish_hook(from, to, data_hook);
}
- test_migrate_end(from, to, true);
+ test_migrate_end(from, to, args->result == MIG_TEST_SUCCEED);
}
static void test_precopy_unix(void)
--
2.34.1
- [PATCH v2 00/18] tests: introduce testing coverage for TLS with migration, Daniel P . Berrangé, 2022/03/10
- [PATCH v2 02/18] tests: improve error message when saving TLS PSK file fails, Daniel P . Berrangé, 2022/03/10
- [PATCH v2 01/18] tests: fix encoding of IP addresses in x509 certs, Daniel P . Berrangé, 2022/03/10
- [PATCH v2 03/18] tests: support QTEST_TRACE env variable, Daniel P . Berrangé, 2022/03/10
- [PATCH v2 05/18] tests: add more helper macros for creating TLS x509 certs, Daniel P . Berrangé, 2022/03/10
- [PATCH v2 09/18] tests: introduce ability to provide hooks for migration precopy test, Daniel P . Berrangé, 2022/03/10
- [PATCH v2 10/18] tests: switch migration FD passing test to use common precopy helper, Daniel P . Berrangé, 2022/03/10
- [PATCH v2 11/18] tests: expand the migration precopy helper to support failures,
Daniel P . Berrangé <=
- [PATCH v2 08/18] tests: merge code for UNIX and TCP migration pre-copy tests, Daniel P . Berrangé, 2022/03/10
- [PATCH v2 07/18] tests: switch MigrateStart struct to be stack allocated, Daniel P . Berrangé, 2022/03/10
- [PATCH v2 14/18] tests: convert XBZRLE migration test to use common helper, Daniel P . Berrangé, 2022/03/10
- [PATCH v2 16/18] tests: add multifd migration tests of TLS with PSK credentials, Daniel P . Berrangé, 2022/03/10
- [PATCH v2 12/18] tests: add migration tests of TLS with PSK credentials, Daniel P . Berrangé, 2022/03/10
- [PATCH v2 06/18 for-7.0] migration: fix use of TLS PSK credentials with a UNIX socket, Daniel P . Berrangé, 2022/03/10