"Dr. David Alan Gilbert" <dgilb...@redhat.com> wrote: > * Juan Quintela (quint...@redhat.com) wrote: >> Signed-off-by: Juan Quintela <quint...@redhat.com> > > OK, although you seem to have chosen a bandwidth 10x what I use > in the postcopy test but for the same reason.
I tried to make it as fast as possible while making sure that we wait enough time. In my home machine each test takes around 2-3 seconds, and I want to add tests, so better that they are fast. Later, Juan. > Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> Thanks, Juan. > >> --- >> tests/migration-test.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- >> 1 file changed, 42 insertions(+), 2 deletions(-) >> >> diff --git a/tests/migration-test.c b/tests/migration-test.c >> index 51f49c74e9..3f3f056be6 100644 >> --- a/tests/migration-test.c >> +++ b/tests/migration-test.c >> @@ -539,7 +539,7 @@ static void test_migrate_end(QTestState *from, >> QTestState *to) >> cleanup("dest_serial"); >> } >> >> -static void test_migrate(void) >> +static void test_postcopy(void) >> { >> char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); >> QTestState *from, *to; >> @@ -582,6 +582,45 @@ static void test_migrate(void) >> test_migrate_end(from, to); >> } >> >> +static void test_precopy_unix(void) >> +{ >> + char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); >> + QTestState *from, *to; >> + >> + test_migrate_start(&from, &to, uri); >> + >> + /* We want to pick a speed slow enough that the test completes >> + * quickly, but that it doesn't complete precopy even on a slow >> + * machine, so also set the downtime. >> + */ >> + /* 1 ms */ >> + migrate_set_parameter(from, "downtime-limit", "1"); >> + /* 1GB/s slow*/ >> + migrate_set_parameter(from, "max-bandwidth", "1000000000"); >> + >> + /* Wait for the first serial output from the source */ >> + wait_for_serial("src_serial"); >> + >> + migrate(from, uri); >> + >> + wait_for_migration_pass(from); >> + >> + /* 300 ms should converge */ >> + migrate_set_parameter(from, "downtime-limit", "300"); >> + >> + if (!got_stop) { >> + qtest_qmp_eventwait(from, "STOP"); >> + } >> + >> + qtest_qmp_eventwait(to, "RESUME"); >> + >> + wait_for_serial("dest_serial"); >> + wait_for_migration_complete(from); >> + >> + test_migrate_end(from, to); >> + g_free(uri); >> +} >> + >> int main(int argc, char **argv) >> { >> char template[] = "/tmp/migration-test-XXXXXX"; >> @@ -601,7 +640,8 @@ int main(int argc, char **argv) >> >> module_call_init(MODULE_INIT_QOM); >> >> - qtest_add_func("/migration/postcopy/unix", test_migrate); >> + qtest_add_func("/migration/precopy/unix", test_precopy_unix); >> + qtest_add_func("/migration/postcopy/unix", test_postcopy); >> >> ret = g_test_run(); >> >> -- >> 2.14.3 >> > -- > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK