libqtest: Add qtest_[v]startf()

We have several callers that were formatting the argument strings
themselves; consolidate this effort by adding new convenience
functions directly in libqtest, and update some call-sites that
can benefit from it.

Note that the new functions qtest_startf() and qtest_vstartf()
behave more like qtest_init() (the caller must assign global_qtest
after the fact, rather than getting it implicitly set).  This helps
us prepare for future patches that get rid of the global variable,
by explicitly highlighting which tests still depend on it now.

Signed-off-by: Eric Blake <eblake@redhat.com>
[thuth: Dropped the hunks that do not apply cleanly to qemu master
 yet and added the missing g_free(args) in qtest_vstartf()]
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1508336428-20511-2-git-send-email-thuth@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
This commit is contained in:
Eric Blake 2017-10-18 16:20:27 +02:00 committed by Cornelia Huck
parent 6bb6f19473
commit 78b27bade1
14 changed files with 128 additions and 138 deletions

View File

@ -28,14 +28,12 @@ static void test_a_boot_order(const char *machine,
uint64_t expected_boot, uint64_t expected_boot,
uint64_t expected_reboot) uint64_t expected_reboot)
{ {
char *args;
uint64_t actual; uint64_t actual;
args = g_strdup_printf("-nodefaults%s%s %s", global_qtest = qtest_startf("-nodefaults%s%s %s",
machine ? " -M " : "", machine ? " -M " : "",
machine ?: "", machine ?: "",
test_args); test_args);
qtest_start(args);
actual = read_boot_order(); actual = read_boot_order();
g_assert_cmphex(actual, ==, expected_boot); g_assert_cmphex(actual, ==, expected_boot);
qmp_discard_response("{ 'execute': 'system_reset' }"); qmp_discard_response("{ 'execute': 'system_reset' }");
@ -47,7 +45,6 @@ static void test_a_boot_order(const char *machine,
actual = read_boot_order(); actual = read_boot_order();
g_assert_cmphex(actual, ==, expected_reboot); g_assert_cmphex(actual, ==, expected_reboot);
qtest_quit(global_qtest); qtest_quit(global_qtest);
g_free(args);
} }
static void test_boot_orders(const char *machine, static void test_boot_orders(const char *machine,

View File

@ -71,7 +71,6 @@ done:
static void test_machine(const void *data) static void test_machine(const void *data)
{ {
const testdef_t *test = data; const testdef_t *test = data;
char *args;
char tmpname[] = "/tmp/qtest-boot-serial-XXXXXX"; char tmpname[] = "/tmp/qtest-boot-serial-XXXXXX";
int fd; int fd;
@ -82,18 +81,15 @@ static void test_machine(const void *data)
* Make sure that this test uses tcg if available: It is used as a * Make sure that this test uses tcg if available: It is used as a
* fast-enough smoketest for that. * fast-enough smoketest for that.
*/ */
args = g_strdup_printf("-M %s,accel=tcg:kvm " global_qtest = qtest_startf("-M %s,accel=tcg:kvm "
"-chardev file,id=serial0,path=%s " "-chardev file,id=serial0,path=%s "
"-no-shutdown -serial chardev:serial0 %s", "-no-shutdown -serial chardev:serial0 %s",
test->machine, tmpname, test->extra); test->machine, tmpname, test->extra);
qtest_start(args);
unlink(tmpname); unlink(tmpname);
check_guest_output(test, fd); check_guest_output(test, fd);
qtest_quit(global_qtest); qtest_quit(global_qtest);
g_free(args);
close(fd); close(fd);
} }

View File

@ -114,13 +114,11 @@ static void isa_outl(const TestCase *test, uint16_t addr, uint32_t value)
static void test_endianness(gconstpointer data) static void test_endianness(gconstpointer data)
{ {
const TestCase *test = data; const TestCase *test = data;
char *args;
args = g_strdup_printf("-M %s%s%s -device pc-testdev", global_qtest = qtest_startf("-M %s%s%s -device pc-testdev",
test->machine, test->machine,
test->superio ? " -device " : "", test->superio ? " -device " : "",
test->superio ?: ""); test->superio ?: "");
qtest_start(args);
isa_outl(test, 0xe0, 0x87654321); isa_outl(test, 0xe0, 0x87654321);
g_assert_cmphex(isa_inl(test, 0xe0), ==, 0x87654321); g_assert_cmphex(isa_inl(test, 0xe0), ==, 0x87654321);
g_assert_cmphex(isa_inw(test, 0xe2), ==, 0x8765); g_assert_cmphex(isa_inw(test, 0xe2), ==, 0x8765);
@ -183,19 +181,16 @@ static void test_endianness(gconstpointer data)
g_assert_cmphex(isa_inb(test, 0xe1), ==, 0x43); g_assert_cmphex(isa_inb(test, 0xe1), ==, 0x43);
g_assert_cmphex(isa_inb(test, 0xe0), ==, 0x21); g_assert_cmphex(isa_inb(test, 0xe0), ==, 0x21);
qtest_quit(global_qtest); qtest_quit(global_qtest);
g_free(args);
} }
static void test_endianness_split(gconstpointer data) static void test_endianness_split(gconstpointer data)
{ {
const TestCase *test = data; const TestCase *test = data;
char *args;
args = g_strdup_printf("-M %s%s%s -device pc-testdev", global_qtest = qtest_startf("-M %s%s%s -device pc-testdev",
test->machine, test->machine,
test->superio ? " -device " : "", test->superio ? " -device " : "",
test->superio ?: ""); test->superio ?: "");
qtest_start(args);
isa_outl(test, 0xe8, 0x87654321); isa_outl(test, 0xe8, 0x87654321);
g_assert_cmphex(isa_inl(test, 0xe0), ==, 0x87654321); g_assert_cmphex(isa_inl(test, 0xe0), ==, 0x87654321);
g_assert_cmphex(isa_inw(test, 0xe2), ==, 0x8765); g_assert_cmphex(isa_inw(test, 0xe2), ==, 0x8765);
@ -230,19 +225,16 @@ static void test_endianness_split(gconstpointer data)
g_assert_cmphex(isa_inw(test, 0xe2), ==, 0x8765); g_assert_cmphex(isa_inw(test, 0xe2), ==, 0x8765);
g_assert_cmphex(isa_inw(test, 0xe0), ==, 0x4321); g_assert_cmphex(isa_inw(test, 0xe0), ==, 0x4321);
qtest_quit(global_qtest); qtest_quit(global_qtest);
g_free(args);
} }
static void test_endianness_combine(gconstpointer data) static void test_endianness_combine(gconstpointer data)
{ {
const TestCase *test = data; const TestCase *test = data;
char *args;
args = g_strdup_printf("-M %s%s%s -device pc-testdev", global_qtest = qtest_startf("-M %s%s%s -device pc-testdev",
test->machine, test->machine,
test->superio ? " -device " : "", test->superio ? " -device " : "",
test->superio ?: ""); test->superio ?: "");
qtest_start(args);
isa_outl(test, 0xe0, 0x87654321); isa_outl(test, 0xe0, 0x87654321);
g_assert_cmphex(isa_inl(test, 0xe8), ==, 0x87654321); g_assert_cmphex(isa_inl(test, 0xe8), ==, 0x87654321);
g_assert_cmphex(isa_inw(test, 0xea), ==, 0x8765); g_assert_cmphex(isa_inw(test, 0xea), ==, 0x8765);
@ -277,7 +269,6 @@ static void test_endianness_combine(gconstpointer data)
g_assert_cmphex(isa_inw(test, 0xea), ==, 0x8765); g_assert_cmphex(isa_inw(test, 0xea), ==, 0x8765);
g_assert_cmphex(isa_inw(test, 0xe8), ==, 0x4321); g_assert_cmphex(isa_inw(test, 0xe8), ==, 0x4321);
qtest_quit(global_qtest); qtest_quit(global_qtest);
g_free(args);
} }
int main(int argc, char **argv) int main(int argc, char **argv)

View File

@ -401,7 +401,6 @@ static void open_socket(void)
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
const char *arch = qtest_get_arch(); const char *arch = qtest_get_arch();
char *cmdline;
int ret; int ret;
/* Check architecture */ /* Check architecture */
@ -415,12 +414,10 @@ int main(int argc, char **argv)
/* Run the tests */ /* Run the tests */
g_test_init(&argc, &argv, NULL); g_test_init(&argc, &argv, NULL);
cmdline = g_strdup_printf( global_qtest = qtest_startf(
" -chardev socket,id=ipmi0,host=localhost,port=%d,reconnect=10" " -chardev socket,id=ipmi0,host=localhost,port=%d,reconnect=10"
" -device ipmi-bmc-extern,chardev=ipmi0,id=bmc0" " -device ipmi-bmc-extern,chardev=ipmi0,id=bmc0"
" -device isa-ipmi-bt,bmc=bmc0", emu_port); " -device isa-ipmi-bt,bmc=bmc0", emu_port);
qtest_start(cmdline);
g_free(cmdline);
qtest_irq_intercept_in(global_qtest, "ioapic"); qtest_irq_intercept_in(global_qtest, "ioapic");
qtest_add_func("/ipmi/extern/connect", test_connect); qtest_add_func("/ipmi/extern/connect", test_connect);
qtest_add_func("/ipmi/extern/bt_base", test_bt_base); qtest_add_func("/ipmi/extern/bt_base", test_bt_base);

View File

@ -244,6 +244,28 @@ QTestState *qtest_init(const char *extra_args)
return s; return s;
} }
QTestState *qtest_vstartf(const char *fmt, va_list ap)
{
char *args = g_strdup_vprintf(fmt, ap);
QTestState *s;
s = qtest_start(args);
g_free(args);
global_qtest = NULL;
return s;
}
QTestState *qtest_startf(const char *fmt, ...)
{
va_list ap;
QTestState *s;
va_start(ap, fmt);
s = qtest_vstartf(fmt, ap);
va_end(ap);
return s;
}
void qtest_quit(QTestState *s) void qtest_quit(QTestState *s)
{ {
g_hook_destroy_link(&abrt_hooks, g_hook_find_data(&abrt_hooks, TRUE, s)); g_hook_destroy_link(&abrt_hooks, g_hook_find_data(&abrt_hooks, TRUE, s));

View File

@ -23,6 +23,31 @@ typedef struct QTestState QTestState;
extern QTestState *global_qtest; extern QTestState *global_qtest;
/**
* qtest_startf:
* @fmt...: Format for creating other arguments to pass to QEMU, formatted
* like sprintf().
*
* Start QEMU and return the resulting #QTestState (but unlike qtest_start(),
* #global_qtest is left at NULL).
*
* Returns: #QTestState instance.
*/
QTestState *qtest_startf(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
/**
* qtest_vstartf:
* @fmt: Format for creating other arguments to pass to QEMU, formatted
* like vsprintf().
* @ap: Format arguments.
*
* Start QEMU and return the resulting #QTestState (but unlike qtest_start(),
* #global_qtest is left at NULL).
*
* Returns: #QTestState instance.
*/
QTestState *qtest_vstartf(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0);
/** /**
* qtest_init: * qtest_init:
* @extra_args: other arguments to pass to QEMU. * @extra_args: other arguments to pass to QEMU.

View File

@ -354,7 +354,6 @@ int main(int argc, char **argv)
{ {
int ret; int ret;
int fd; int fd;
char *args;
g_test_init(&argc, &argv, NULL); g_test_init(&argc, &argv, NULL);
@ -364,10 +363,9 @@ int main(int argc, char **argv)
g_assert(ret == 0); g_assert(ret == 0);
close(fd); close(fd);
args = g_strdup_printf("-m 256 -machine palmetto-bmc " global_qtest = qtest_startf("-m 256 -machine palmetto-bmc "
"-drive file=%s,format=raw,if=mtd", "-drive file=%s,format=raw,if=mtd",
tmp_path); tmp_path);
qtest_start(args);
qtest_add_func("/m25p80/read_jedec", test_read_jedec); qtest_add_func("/m25p80/read_jedec", test_read_jedec);
qtest_add_func("/m25p80/erase_sector", test_erase_sector); qtest_add_func("/m25p80/erase_sector", test_erase_sector);
@ -380,6 +378,5 @@ int main(int argc, char **argv)
qtest_quit(global_qtest); qtest_quit(global_qtest);
unlink(tmp_path); unlink(tmp_path);
g_free(args);
return ret; return ret;
} }

View File

@ -81,16 +81,12 @@ static void test_xscom_cfam_id(const PnvChip *chip)
static void test_cfam_id(const void *data) static void test_cfam_id(const void *data)
{ {
char *args;
const PnvChip *chip = data; const PnvChip *chip = data;
args = g_strdup_printf("-M powernv,accel=tcg -cpu %s", chip->cpu_model); global_qtest = qtest_startf("-M powernv,accel=tcg -cpu %s",
chip->cpu_model);
qtest_start(args);
test_xscom_cfam_id(chip); test_xscom_cfam_id(chip);
qtest_quit(global_qtest); qtest_quit(global_qtest);
g_free(args);
} }
#define PNV_XSCOM_EX_CORE_BASE(chip, i) \ #define PNV_XSCOM_EX_CORE_BASE(chip, i) \
@ -109,16 +105,12 @@ static void test_xscom_core(const PnvChip *chip)
static void test_core(const void *data) static void test_core(const void *data)
{ {
char *args;
const PnvChip *chip = data; const PnvChip *chip = data;
args = g_strdup_printf("-M powernv,accel=tcg -cpu %s", chip->cpu_model); global_qtest = qtest_startf("-M powernv,accel=tcg -cpu %s",
chip->cpu_model);
qtest_start(args);
test_xscom_core(chip); test_xscom_core(chip);
qtest_quit(global_qtest); qtest_quit(global_qtest);
g_free(args);
} }
static void add_test(const char *name, void (*test)(const void *data)) static void add_test(const char *name, void (*test)(const void *data))

View File

@ -44,21 +44,18 @@ static void check_guest_memory(void)
static void test_machine(const void *machine) static void test_machine(const void *machine)
{ {
char *args;
const char *extra_args; const char *extra_args;
/* The pseries firmware boots much faster without the default devices */ /* The pseries firmware boots much faster without the default devices */
extra_args = strcmp(machine, "pseries") == 0 ? "-nodefaults" : ""; extra_args = strcmp(machine, "pseries") == 0 ? "-nodefaults" : "";
args = g_strdup_printf("-M %s,accel=tcg %s -prom-env 'use-nvramrc?=true' " global_qtest = qtest_startf("-M %s,accel=tcg %s "
"-prom-env 'nvramrc=%x %x l!' ", "-prom-env 'use-nvramrc?=true' "
(const char *)machine, extra_args, MAGIC, ADDRESS); "-prom-env 'nvramrc=%x %x l!' ",
(const char *)machine, extra_args,
qtest_start(args); MAGIC, ADDRESS);
check_guest_memory(); check_guest_memory();
qtest_quit(global_qtest); qtest_quit(global_qtest);
g_free(args);
} }
static void add_tests(const char *machines[]) static void add_tests(const char *machines[])

View File

@ -55,14 +55,12 @@ static void test_end(TestData *d)
static void test_init(TestData *d) static void test_init(TestData *d)
{ {
QTestState *qs; QTestState *qs;
char *s;
s = g_strdup_printf("-machine q35 %s %s", qs = qtest_startf("-machine q35 %s %s",
d->noreboot ? "" : "-global ICH9-LPC.noreboot=false", d->noreboot ? "" : "-global ICH9-LPC.noreboot=false",
!d->args ? "" : d->args); !d->args ? "" : d->args);
qs = qtest_start(s); global_qtest = qs;
qtest_irq_intercept_in(qs, "ioapic"); qtest_irq_intercept_in(qs, "ioapic");
g_free(s);
d->bus = qpci_init_pc(NULL); d->bus = qpci_init_pc(NULL);
d->dev = qpci_device_find(d->bus, QPCI_DEVFN(0x1f, 0x00)); d->dev = qpci_device_find(d->bus, QPCI_DEVFN(0x1f, 0x00));

View File

@ -18,7 +18,6 @@
static void test_mirror(void) static void test_mirror(void)
{ {
int send_sock[2], recv_sock; int send_sock[2], recv_sock;
char *cmdline;
uint32_t ret = 0, len = 0; uint32_t ret = 0, len = 0;
char send_buf[] = "Hello! filter-mirror~"; char send_buf[] = "Hello! filter-mirror~";
char sock_path[] = "filter-mirror.XXXXXX"; char sock_path[] = "filter-mirror.XXXXXX";
@ -37,13 +36,12 @@ static void test_mirror(void)
ret = mkstemp(sock_path); ret = mkstemp(sock_path);
g_assert_cmpint(ret, !=, -1); g_assert_cmpint(ret, !=, -1);
cmdline = g_strdup_printf("-netdev socket,id=qtest-bn0,fd=%d " global_qtest = qtest_startf(
"-device %s,netdev=qtest-bn0,id=qtest-e0 " "-netdev socket,id=qtest-bn0,fd=%d "
"-chardev socket,id=mirror0,path=%s,server,nowait " "-device %s,netdev=qtest-bn0,id=qtest-e0 "
"-object filter-mirror,id=qtest-f0,netdev=qtest-bn0,queue=tx,outdev=mirror0 " "-chardev socket,id=mirror0,path=%s,server,nowait "
, send_sock[1], devstr, sock_path); "-object filter-mirror,id=qtest-f0,netdev=qtest-bn0,queue=tx,outdev=mirror0 "
qtest_start(cmdline); , send_sock[1], devstr, sock_path);
g_free(cmdline);
recv_sock = unix_connect(sock_path, NULL); recv_sock = unix_connect(sock_path, NULL);
g_assert_cmpint(recv_sock, !=, -1); g_assert_cmpint(recv_sock, !=, -1);

View File

@ -70,7 +70,6 @@ static const char *get_devstr(void)
static void test_redirector_tx(void) static void test_redirector_tx(void)
{ {
int backend_sock[2], recv_sock; int backend_sock[2], recv_sock;
char *cmdline;
uint32_t ret = 0, len = 0; uint32_t ret = 0, len = 0;
char send_buf[] = "Hello!!"; char send_buf[] = "Hello!!";
char sock_path0[] = "filter-redirector0.XXXXXX"; char sock_path0[] = "filter-redirector0.XXXXXX";
@ -87,20 +86,19 @@ static void test_redirector_tx(void)
ret = mkstemp(sock_path1); ret = mkstemp(sock_path1);
g_assert_cmpint(ret, !=, -1); g_assert_cmpint(ret, !=, -1);
cmdline = g_strdup_printf("-netdev socket,id=qtest-bn0,fd=%d " global_qtest = qtest_startf(
"-device %s,netdev=qtest-bn0,id=qtest-e0 " "-netdev socket,id=qtest-bn0,fd=%d "
"-chardev socket,id=redirector0,path=%s,server,nowait " "-device %s,netdev=qtest-bn0,id=qtest-e0 "
"-chardev socket,id=redirector1,path=%s,server,nowait " "-chardev socket,id=redirector0,path=%s,server,nowait "
"-chardev socket,id=redirector2,path=%s,nowait " "-chardev socket,id=redirector1,path=%s,server,nowait "
"-object filter-redirector,id=qtest-f0,netdev=qtest-bn0," "-chardev socket,id=redirector2,path=%s,nowait "
"queue=tx,outdev=redirector0 " "-object filter-redirector,id=qtest-f0,netdev=qtest-bn0,"
"-object filter-redirector,id=qtest-f1,netdev=qtest-bn0," "queue=tx,outdev=redirector0 "
"queue=tx,indev=redirector2 " "-object filter-redirector,id=qtest-f1,netdev=qtest-bn0,"
"-object filter-redirector,id=qtest-f2,netdev=qtest-bn0," "queue=tx,indev=redirector2 "
"queue=tx,outdev=redirector1 ", backend_sock[1], get_devstr(), "-object filter-redirector,id=qtest-f2,netdev=qtest-bn0,"
sock_path0, sock_path1, sock_path0); "queue=tx,outdev=redirector1 ", backend_sock[1], get_devstr(),
qtest_start(cmdline); sock_path0, sock_path1, sock_path0);
g_free(cmdline);
recv_sock = unix_connect(sock_path1, NULL); recv_sock = unix_connect(sock_path1, NULL);
g_assert_cmpint(recv_sock, !=, -1); g_assert_cmpint(recv_sock, !=, -1);
@ -141,7 +139,6 @@ static void test_redirector_tx(void)
static void test_redirector_rx(void) static void test_redirector_rx(void)
{ {
int backend_sock[2], send_sock; int backend_sock[2], send_sock;
char *cmdline;
uint32_t ret = 0, len = 0; uint32_t ret = 0, len = 0;
char send_buf[] = "Hello!!"; char send_buf[] = "Hello!!";
char sock_path0[] = "filter-redirector0.XXXXXX"; char sock_path0[] = "filter-redirector0.XXXXXX";
@ -158,20 +155,19 @@ static void test_redirector_rx(void)
ret = mkstemp(sock_path1); ret = mkstemp(sock_path1);
g_assert_cmpint(ret, !=, -1); g_assert_cmpint(ret, !=, -1);
cmdline = g_strdup_printf("-netdev socket,id=qtest-bn0,fd=%d " global_qtest = qtest_startf(
"-device %s,netdev=qtest-bn0,id=qtest-e0 " "-netdev socket,id=qtest-bn0,fd=%d "
"-chardev socket,id=redirector0,path=%s,server,nowait " "-device %s,netdev=qtest-bn0,id=qtest-e0 "
"-chardev socket,id=redirector1,path=%s,server,nowait " "-chardev socket,id=redirector0,path=%s,server,nowait "
"-chardev socket,id=redirector2,path=%s,nowait " "-chardev socket,id=redirector1,path=%s,server,nowait "
"-object filter-redirector,id=qtest-f0,netdev=qtest-bn0," "-chardev socket,id=redirector2,path=%s,nowait "
"queue=rx,indev=redirector0 " "-object filter-redirector,id=qtest-f0,netdev=qtest-bn0,"
"-object filter-redirector,id=qtest-f1,netdev=qtest-bn0," "queue=rx,indev=redirector0 "
"queue=rx,outdev=redirector2 " "-object filter-redirector,id=qtest-f1,netdev=qtest-bn0,"
"-object filter-redirector,id=qtest-f2,netdev=qtest-bn0," "queue=rx,outdev=redirector2 "
"queue=rx,indev=redirector1 ", backend_sock[1], get_devstr(), "-object filter-redirector,id=qtest-f2,netdev=qtest-bn0,"
sock_path0, sock_path1, sock_path0); "queue=rx,indev=redirector1 ", backend_sock[1], get_devstr(),
qtest_start(cmdline); sock_path0, sock_path1, sock_path0);
g_free(cmdline);
struct iovec iov[] = { struct iovec iov[] = {
{ {

View File

@ -84,19 +84,16 @@ static QOSState *pci_test_start(void)
static void arm_test_start(void) static void arm_test_start(void)
{ {
char *cmdline;
char *tmp_path; char *tmp_path;
tmp_path = drive_create(); tmp_path = drive_create();
cmdline = g_strdup_printf("-machine virt " global_qtest = qtest_startf("-machine virt "
"-drive if=none,id=drive0,file=%s,format=raw " "-drive if=none,id=drive0,file=%s,format=raw "
"-device virtio-blk-device,drive=drive0", "-device virtio-blk-device,drive=drive0",
tmp_path); tmp_path);
qtest_start(cmdline);
unlink(tmp_path); unlink(tmp_path);
g_free(tmp_path); g_free(tmp_path);
g_free(cmdline);
} }
static void test_end(void) static void test_end(void)

View File

@ -130,41 +130,32 @@ static void read_guid_from_monitor(QemuUUID *guid)
static char disk[] = "tests/vmgenid-test-disk-XXXXXX"; static char disk[] = "tests/vmgenid-test-disk-XXXXXX";
static char *guid_cmd_strdup(const char *guid) #define GUID_CMD(guid) \
{ "-machine accel=kvm:tcg " \
return g_strdup_printf("-machine accel=kvm:tcg " "-device vmgenid,id=testvgid,guid=%s " \
"-device vmgenid,id=testvgid,guid=%s " "-drive id=hd0,if=none,file=%s,format=raw " \
"-drive id=hd0,if=none,file=%s,format=raw " "-device ide-hd,drive=hd0 ", guid, disk
"-device ide-hd,drive=hd0 ",
guid, disk);
}
static void vmgenid_set_guid_test(void) static void vmgenid_set_guid_test(void)
{ {
QemuUUID expected, measured; QemuUUID expected, measured;
gchar *cmd;
g_assert(qemu_uuid_parse(VGID_GUID, &expected) == 0); g_assert(qemu_uuid_parse(VGID_GUID, &expected) == 0);
cmd = guid_cmd_strdup(VGID_GUID); global_qtest = qtest_startf(GUID_CMD(VGID_GUID));
qtest_start(cmd);
/* Read the GUID from accessing guest memory */ /* Read the GUID from accessing guest memory */
read_guid_from_memory(&measured); read_guid_from_memory(&measured);
g_assert(memcmp(measured.data, expected.data, sizeof(measured.data)) == 0); g_assert(memcmp(measured.data, expected.data, sizeof(measured.data)) == 0);
qtest_quit(global_qtest); qtest_quit(global_qtest);
g_free(cmd);
} }
static void vmgenid_set_guid_auto_test(void) static void vmgenid_set_guid_auto_test(void)
{ {
char *cmd;
QemuUUID measured; QemuUUID measured;
cmd = guid_cmd_strdup("auto"); global_qtest = qtest_startf(GUID_CMD("auto"));
qtest_start(cmd);
read_guid_from_memory(&measured); read_guid_from_memory(&measured);
@ -172,25 +163,21 @@ static void vmgenid_set_guid_auto_test(void)
g_assert(!qemu_uuid_is_null(&measured)); g_assert(!qemu_uuid_is_null(&measured));
qtest_quit(global_qtest); qtest_quit(global_qtest);
g_free(cmd);
} }
static void vmgenid_query_monitor_test(void) static void vmgenid_query_monitor_test(void)
{ {
QemuUUID expected, measured; QemuUUID expected, measured;
gchar *cmd;
g_assert(qemu_uuid_parse(VGID_GUID, &expected) == 0); g_assert(qemu_uuid_parse(VGID_GUID, &expected) == 0);
cmd = guid_cmd_strdup(VGID_GUID); global_qtest = qtest_startf(GUID_CMD(VGID_GUID));
qtest_start(cmd);
/* Read the GUID via the monitor */ /* Read the GUID via the monitor */
read_guid_from_monitor(&measured); read_guid_from_monitor(&measured);
g_assert(memcmp(measured.data, expected.data, sizeof(measured.data)) == 0); g_assert(memcmp(measured.data, expected.data, sizeof(measured.data)) == 0);
qtest_quit(global_qtest); qtest_quit(global_qtest);
g_free(cmd);
} }
int main(int argc, char **argv) int main(int argc, char **argv)