Commit 64ed30033c for qemu.org
commit 64ed30033c3d49695b1d103d547881a297c1cda4
Author: Marc-André Lureau <marcandre.lureau@redhat.com>
Date: Wed Sep 2 17:46:48 2026 +0400
tests/ide-test: convert to QMP
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 <den@openvz.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
diff --git a/tests/qtest/ide-test.c b/tests/qtest/ide-test.c
index 895fec6d08..cf109b0799 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);