tests/qtest/migration: Add negative tests to validate migration QAPIs
Migration QAPI arguments - uri and channels are mutually exhaustive. Add negative validation tests, one with both arguments present and one with none present. Signed-off-by: Het Gala <het.gala@nutanix.com> Suggested-by: Fabiano Rosas <farosas@suse.de> Reviewed-by: Fabiano Rosas <farosas@suse.de> Link: https://lore.kernel.org/r/20240312202634.63349-9-het.gala@nutanix.com Signed-off-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
parent
9d36d62c00
commit
bc6307a5ee
@ -1724,7 +1724,7 @@ static void test_precopy_common(MigrateCommon *args)
|
||||
}
|
||||
|
||||
if (args->result == MIG_TEST_QMP_ERROR) {
|
||||
migrate_qmp_fail(from, args->connect_uri, NULL, "{}");
|
||||
migrate_qmp_fail(from, args->connect_uri, args->connect_channels, "{}");
|
||||
goto finish;
|
||||
}
|
||||
|
||||
@ -2571,6 +2571,55 @@ static void test_validate_uuid_dst_not_set(void)
|
||||
do_test_validate_uuid(&args, false);
|
||||
}
|
||||
|
||||
static void do_test_validate_uri_channel(MigrateCommon *args)
|
||||
{
|
||||
QTestState *from, *to;
|
||||
|
||||
if (test_migrate_start(&from, &to, args->listen_uri, &args->start)) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Wait for the first serial output from the source */
|
||||
wait_for_serial("src_serial");
|
||||
|
||||
/*
|
||||
* 'uri' and 'channels' validation is checked even before the migration
|
||||
* starts.
|
||||
*/
|
||||
migrate_qmp_fail(from, args->connect_uri, args->connect_channels, "{}");
|
||||
test_migrate_end(from, to, false);
|
||||
}
|
||||
|
||||
static void test_validate_uri_channels_both_set(void)
|
||||
{
|
||||
MigrateCommon args = {
|
||||
.start = {
|
||||
.hide_stderr = true,
|
||||
},
|
||||
.listen_uri = "defer",
|
||||
.connect_uri = "tcp:127.0.0.1:0",
|
||||
.connect_channels = "[ { 'channel-type': 'main',"
|
||||
" 'addr': { 'transport': 'socket',"
|
||||
" 'type': 'inet',"
|
||||
" 'host': '127.0.0.1',"
|
||||
" 'port': '0' } } ]",
|
||||
};
|
||||
|
||||
do_test_validate_uri_channel(&args);
|
||||
}
|
||||
|
||||
static void test_validate_uri_channels_none_set(void)
|
||||
{
|
||||
MigrateCommon args = {
|
||||
.start = {
|
||||
.hide_stderr = true,
|
||||
},
|
||||
.listen_uri = "defer",
|
||||
};
|
||||
|
||||
do_test_validate_uri_channel(&args);
|
||||
}
|
||||
|
||||
/*
|
||||
* The way auto_converge works, we need to do too many passes to
|
||||
* run this test. Auto_converge logic is only run once every
|
||||
@ -3679,6 +3728,10 @@ int main(int argc, char **argv)
|
||||
test_validate_uuid_src_not_set);
|
||||
migration_test_add("/migration/validate_uuid_dst_not_set",
|
||||
test_validate_uuid_dst_not_set);
|
||||
migration_test_add("/migration/validate_uri/channels/both_set",
|
||||
test_validate_uri_channels_both_set);
|
||||
migration_test_add("/migration/validate_uri/channels/none_set",
|
||||
test_validate_uri_channels_none_set);
|
||||
/*
|
||||
* See explanation why this test is slow on function definition
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user