tests/vmgenid: Make test independent of global_qtest
The biggest part has already been done in the previous patch, we now only have to replace some few qmp() and readb() calls with the corresponding qtest_*() functions to get there. Acked-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
273e3d92cf
commit
ac16ab753a
@ -95,17 +95,17 @@ static uint32_t acpi_find_vgia(QTestState *qts)
|
||||
return guid_offset;
|
||||
}
|
||||
|
||||
static void read_guid_from_memory(QemuUUID *guid)
|
||||
static void read_guid_from_memory(QTestState *qts, QemuUUID *guid)
|
||||
{
|
||||
uint32_t vmgenid_addr;
|
||||
int i;
|
||||
|
||||
vmgenid_addr = acpi_find_vgia(global_qtest);
|
||||
vmgenid_addr = acpi_find_vgia(qts);
|
||||
g_assert(vmgenid_addr);
|
||||
|
||||
/* Read the GUID directly from guest memory */
|
||||
for (i = 0; i < 16; i++) {
|
||||
guid->data[i] = readb(vmgenid_addr + i);
|
||||
guid->data[i] = qtest_readb(qts, vmgenid_addr + i);
|
||||
}
|
||||
/* The GUID is in little-endian format in the guest, while QEMU
|
||||
* uses big-endian. Swap after reading.
|
||||
@ -113,12 +113,12 @@ static void read_guid_from_memory(QemuUUID *guid)
|
||||
qemu_uuid_bswap(guid);
|
||||
}
|
||||
|
||||
static void read_guid_from_monitor(QemuUUID *guid)
|
||||
static void read_guid_from_monitor(QTestState *qts, QemuUUID *guid)
|
||||
{
|
||||
QDict *rsp, *rsp_ret;
|
||||
const char *guid_str;
|
||||
|
||||
rsp = qmp("{ 'execute': 'query-vm-generation-id' }");
|
||||
rsp = qtest_qmp(qts, "{ 'execute': 'query-vm-generation-id' }");
|
||||
if (qdict_haskey(rsp, "return")) {
|
||||
rsp_ret = qdict_get_qdict(rsp, "return");
|
||||
g_assert(qdict_haskey(rsp_ret, "guid"));
|
||||
@ -139,45 +139,48 @@ static char disk[] = "tests/vmgenid-test-disk-XXXXXX";
|
||||
static void vmgenid_set_guid_test(void)
|
||||
{
|
||||
QemuUUID expected, measured;
|
||||
QTestState *qts;
|
||||
|
||||
g_assert(qemu_uuid_parse(VGID_GUID, &expected) == 0);
|
||||
|
||||
global_qtest = qtest_initf(GUID_CMD(VGID_GUID));
|
||||
qts = qtest_initf(GUID_CMD(VGID_GUID));
|
||||
|
||||
/* Read the GUID from accessing guest memory */
|
||||
read_guid_from_memory(&measured);
|
||||
read_guid_from_memory(qts, &measured);
|
||||
g_assert(memcmp(measured.data, expected.data, sizeof(measured.data)) == 0);
|
||||
|
||||
qtest_quit(global_qtest);
|
||||
qtest_quit(qts);
|
||||
}
|
||||
|
||||
static void vmgenid_set_guid_auto_test(void)
|
||||
{
|
||||
QemuUUID measured;
|
||||
QTestState *qts;
|
||||
|
||||
global_qtest = qtest_initf(GUID_CMD("auto"));
|
||||
qts = qtest_initf(GUID_CMD("auto"));
|
||||
|
||||
read_guid_from_memory(&measured);
|
||||
read_guid_from_memory(qts, &measured);
|
||||
|
||||
/* Just check that the GUID is non-null */
|
||||
g_assert(!qemu_uuid_is_null(&measured));
|
||||
|
||||
qtest_quit(global_qtest);
|
||||
qtest_quit(qts);
|
||||
}
|
||||
|
||||
static void vmgenid_query_monitor_test(void)
|
||||
{
|
||||
QemuUUID expected, measured;
|
||||
QTestState *qts;
|
||||
|
||||
g_assert(qemu_uuid_parse(VGID_GUID, &expected) == 0);
|
||||
|
||||
global_qtest = qtest_initf(GUID_CMD(VGID_GUID));
|
||||
qts = qtest_initf(GUID_CMD(VGID_GUID));
|
||||
|
||||
/* Read the GUID via the monitor */
|
||||
read_guid_from_monitor(&measured);
|
||||
read_guid_from_monitor(qts, &measured);
|
||||
g_assert(memcmp(measured.data, expected.data, sizeof(measured.data)) == 0);
|
||||
|
||||
qtest_quit(global_qtest);
|
||||
qtest_quit(qts);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
|
Loading…
Reference in New Issue
Block a user