
On Mon, Oct 16, 2017 at 17:18:58 +0200, Pavel Hrdina wrote:
On Thu, Oct 12, 2017 at 03:48:29PM +0200, Jiri Denemark wrote:
When migration fails, QEMU may provide a description of the error in the reply to query-migrate QMP command. We can fetch this error and use it instead of the generic "unexpectedly failed" message.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> ... - if (qemuMonitorJSONGetMigrationStats(qemuMonitorTestGetMonitor(test), &stats) < 0) + if (qemuMonitorJSONGetMigrationStats(qemuMonitorTestGetMonitor(test), + &stats, &error) < 0) goto cleanup;
- if (memcmp(&stats, &expectedStats, sizeof(stats)) != 0) { + if (memcmp(&stats, &expectedStats, sizeof(stats)) != 0 || error) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - "Invalid migration status"); + "Invalid migration statistics"); + goto cleanup; + }
Do we need to pass the "&error" for the first call of qemuMonitorJSONGetMigrationStats() since we know the answer?
Well, this is true for all tests. This is just testing that error stays unset if there's no error reported by QEMU.
+ + memset(&stats, 0, sizeof(stats)); + if (qemuMonitorJSONGetMigrationStats(qemuMonitorTestGetMonitor(test), + &stats, &error) < 0) + goto cleanup; + + if (stats.status != QEMU_MONITOR_MIGRATION_STATUS_ERROR || + STRNEQ_NULLABLE(error, "It's broken")) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + "Invalid failed migration status"); goto cleanup; }
ret = 0; cleanup: qemuMonitorTestFree(test); + VIR_FREE(error); return ret; }
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Thanks, pushed. Jirka