The QMP command is explicit, specify both the vmstate and devices. We use the helper introduced previously to wait for job completion.
Reviewed-by: Denis V. Lunev <[email protected]> Reviewed-by: Daniel P. Berrangé <[email protected]> Signed-off-by: Marc-André Lureau <[email protected]> --- tests/qtest/ide-test.c | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/tests/qtest/ide-test.c b/tests/qtest/ide-test.c index 895fec6d0806..cf109b079982 100644 --- a/tests/qtest/ide-test.c +++ b/tests/qtest/ide-test.c @@ -1345,11 +1345,34 @@ static void ide_prepare_markers(QTestState *qts, QPCIDevice *dev, ide_write_marker(qts, dev, ide_bar, 63, CHS_MARKER_DEFAULT); } -static void ide_hmp_quiet(QTestState *qts, const char *command) +static void ide_snapshot_save(QTestState *qts, const char *tag, + const char *vmstate, const char *device) { - g_autofree char *out = qtest_hmp(qts, "%s", command); + qtest_qmp_assert_success(qts, + "{ 'execute': 'snapshot-save'," + " 'arguments': {" + " 'job-id': 'save0'," + " 'tag': %s," + " 'vmstate': %s," + " 'devices': [%s]" + " }" + "}", tag, vmstate, device); + qtest_qmp_job_wait(qts, "save0"); +} - g_assert_cmpstr(out, ==, ""); +static void ide_snapshot_load(QTestState *qts, const char *tag, + const char *vmstate, const char *device) +{ + qtest_qmp_assert_success(qts, + "{ 'execute': 'snapshot-load'," + " 'arguments': {" + " 'job-id': 'load0'," + " 'tag': %s," + " 'vmstate': %s," + " 'devices': [%s]" + " }" + "}", tag, vmstate, device); + qtest_qmp_job_wait(qts, "load0"); } static char *ide_migration_status(QTestState *qts) @@ -1455,10 +1478,6 @@ static void test_migrate_chs_snapshot(void) char marker[9]; int fd; -#ifndef CONFIG_HMP - g_test_skip("HMP not enabled"); - return; -#endif if (!have_qemu_img()) { g_test_skip("QTEST_QEMU_IMG not set, snapshots need a qcow2 image"); return; @@ -1480,13 +1499,13 @@ static void test_migrate_chs_snapshot(void) /* Snapshot taken while the default translation is in effect */ ide_read_chs_marker(qts, dev, ide_bar, 0, 1, 1, marker); g_assert_cmpstr(marker, ==, CHS_MARKER_DEFAULT); - ide_hmp_quiet(qts, "savevm s0"); + ide_snapshot_save(qts, "s0", "hda", "hda"); ide_set_translation(dev, ide_bar, 8, 32); ide_read_chs_marker(qts, dev, ide_bar, 0, 1, 1, marker); g_assert_cmpstr(marker, ==, CHS_MARKER_CUSTOM); - ide_hmp_quiet(qts, "loadvm s0"); + ide_snapshot_load(qts, "s0", "hda", "hda"); ide_read_chs_marker(qts, dev, ide_bar, 0, 1, 1, marker); g_assert_cmpstr(marker, ==, CHS_MARKER_DEFAULT); -- 2.55.0.543.g5ebe2ebe4ea8
