aboutsummaryrefslogtreecommitdiff
path: root/tests/qtest
diff options
context:
space:
mode:
authorJuan Quintela <quintela@redhat.com>2023-04-12 16:20:01 +0200
committerThomas Huth <thuth@redhat.com>2023-04-20 11:25:32 +0200
commit74902af7379cdcadca2ccbfe443bc211fb7a01fd (patch)
tree7a67fb30ad17f261831d6984bf02e8fada81b51c /tests/qtest
parente23130f916b07d5a41dba9e06327d1e76713e85f (diff)
downloadqemu-74902af7379cdcadca2ccbfe443bc211fb7a01fd.zip
qemu-74902af7379cdcadca2ccbfe443bc211fb7a01fd.tar.gz
qemu-74902af7379cdcadca2ccbfe443bc211fb7a01fd.tar.bz2
tests/migration: Only run auto_converge in slow mode
Signed-off-by: Juan Quintela <quintela@redhat.com> Message-Id: <20230412142001.16501-3-quintela@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'tests/qtest')
-rw-r--r--tests/qtest/migration-test.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index 3b615b0..60dd53d 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -1796,6 +1796,21 @@ static void test_validate_uuid_dst_not_set(void)
do_test_validate_uuid(&args, false);
}
+/*
+ * The way auto_converge works, we need to do too many passes to
+ * run this test. Auto_converge logic is only run once every
+ * three iterations, so:
+ *
+ * - 3 iterations without auto_converge enabled
+ * - 3 iterations with pct = 5
+ * - 3 iterations with pct = 30
+ * - 3 iterations with pct = 55
+ * - 3 iterations with pct = 80
+ * - 3 iterations with pct = 95 (max(95, 80 + 25))
+ *
+ * To make things even worse, we need to run the initial stage at
+ * 3MB/s so we enter autoconverge even when host is (over)loaded.
+ */
static void test_migrate_auto_converge(void)
{
g_autofree char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs);
@@ -2575,8 +2590,12 @@ int main(int argc, char **argv)
test_validate_uuid_src_not_set);
qtest_add_func("/migration/validate_uuid_dst_not_set",
test_validate_uuid_dst_not_set);
-
- qtest_add_func("/migration/auto_converge", test_migrate_auto_converge);
+ /*
+ * See explanation why this test is slow on function definition
+ */
+ if (g_test_slow()) {
+ qtest_add_func("/migration/auto_converge", test_migrate_auto_converge);
+ }
qtest_add_func("/migration/multifd/tcp/plain/none",
test_multifd_tcp_none);
/*