Preliminary libqtest cleanups
PATCH v7 38/38 libqtest: Merge qtest_hmp() with hmp()
In reply to Eric BlakeMaintaining two layers of libqtest APIs, one that takes an explicit QTestState object, and the other that uses the implicit global_qtest, is annoying. In the interest of getting rid of global implicit state and having less code to maintain, merge:
qtest_hmp()
with its short counterpart, and delete qtest_hmpv() as unused (not to mention that a 'v' suffix is unusual, when compared to the printf family or even our new qtest_vstartf() where the va_list counterpart uses 'v' as a prefix). All callers that previously used the short form now make it explicit that they are relying on global_qtest, and later patches can then clean things up to remove the global variable.
Signed-off-by Eric Blake <[email protected]>
--- tests/libqtest.h | 27 ++------------------------- tests/libqtest.c | 26 ++++---------------------- tests/device-introspect-test.c | 6 +++--- tests/drive_del-test.c | 4 ++-- tests/ide-test.c | 4 ++-- tests/numa-test.c | 6 +++--- tests/test-hmp.c | 6 +++--- 7 files changed, 19 insertions(+), 60 deletions(-)
tests/libqtest.h +2 -25
@@ -140,7 +140,7 @@ void qtest_qmp_eventwait(QTestState *s, const char *event);QDict *qtest_qmp_eventwait_ref (QTestState *s,const char *event);/** -* qtest_hmp: +* hmp: * @s: #QTestState instance to operate on. * @fmt...: HMP command to send to QEMU, formats arguments like sprintf(). *
@@ -149,20 +149,7 @@ QDict *qtest_qmp_eventwait_ref(QTestState *s, const char *event);* * Returns: the command's output. The caller should g_free() it. */ -char *qtest_hmp (QTestState *s,const char *fmt, ...)GCC_FMT_ATTR (2 ,3 ); - -/** -* qtest_hmpv: -* @s: #QTestState instance to operate on. -* @fmt: HMP command to send to QEMU -* @ap: HMP command arguments -* -* Send HMP command to QEMU via QMP's human-monitor-command. -* QMP events are discarded. -* -* Returns: the command's output. The caller should g_free() it. -*/ -char *qtest_hmpv (QTestState *s,const char *fmt,va_list ap); +char *hmp (QTestState *s,const char *fmt, ...)GCC_FMT_ATTR (2 ,3 );/** * get_irq:
@@ -570,16 +557,6 @@ static inline QDict *qmp_eventwait_ref(const char *event)return qtest_qmp_eventwait_ref (global_qtest, event); } -/** -* hmp: -* @fmt...: HMP command to send to QEMU, formats arguments like sprintf(). -* -* Send HMP command to QEMU via QMP's human-monitor-command. -* -* Returns: the command's output. The caller should g_free() it. -*/ -char *hmp (const char *fmt, ...)GCC_FMT_ATTR (1 ,2 ); -QDict *qmp_fd_receive (int fd);void qmp_fd_sendv (int fd,const char *fmt,va_list ap);void qmp_fd_send (int fd,const char *fmt, ...);
tests/libqtest.c +4 -22
@@ -596,13 +596,16 @@ void qtest_qmp_eventwait(QTestState *s, const char *event)QDECREF (response); } -char *qtest_hmpv (QTestState *s,const char *fmt,va_list ap) +char *hmp (QTestState *s,const char *fmt, ...) { +va_list ap;char *cmd;QDict *resp;char *ret; +va_start (ap, fmt); cmd =g_strdup_vprintf (fmt, ap); +va_end (ap); resp =qtest_qmp (s,"{'execute': 'human-monitor-command'," " 'arguments': {'command-line': %s}}" , cmd);
@@ -619,17 +622,6 @@ char *qtest_hmpv(QTestState *s, const char *fmt, va_list ap)return ret; } -char *qtest_hmp (QTestState *s,const char *fmt, ...) -{ -va_list ap; -char *ret; - -va_start (ap, fmt); - ret =qtest_hmpv (s, fmt, ap); -va_end (ap); -return ret; -} -const char *qtest_get_arch (void ) {const char *qemu =getenv ("QTEST_QEMU_BINARY" );
@@ -952,16 +944,6 @@ void qmp_discard_response(void)QDECREF (response); } -char *hmp (const char *fmt, ...) -{ -va_list ap; -char *ret; - -va_start (ap, fmt); - ret =qtest_hmpv (global_qtest, fmt, ap); -va_end (ap); -return ret; -}bool qtest_big_endian (QTestState *s) {
tests/device-introspect-test.c +3 -3
@@ -110,14 +110,14 @@ static void test_one_device(const char *type) type);QDECREF (resp); - help =hmp ("device_add \"%s,help\"" , type); + help =hmp (global_qtest,"device_add \"%s,help\"" , type);g_free (help);/* * Some devices leave dangling pointers in QOM behind. * "info qom-tree" has a good chance at crashing then */ - qom_tree =hmp ("info qom-tree" ); + qom_tree =hmp (global_qtest,"info qom-tree" );g_free (qom_tree); }
@@ -131,7 +131,7 @@ static void test_device_intro_list(void) types =device_type_list (true);QDECREF (types); - help =hmp ("device_add help" ); + help =hmp (global_qtest,"device_add help" );g_free (help);qtest_quit (global_qtest);
tests/drive_del-test.c +2 -2
@@ -15,7 +15,7 @@static void drive_add (void ) { -char *resp =hmp ("drive_add 0 if=none,id=drive0" ); +char *resp =hmp (global_qtest,"drive_add 0 if=none,id=drive0" ); g_assert_cmpstr(resp, ==, "OK\r\n");g_free (resp);
@@ -23,7 +23,7 @@ static void drive_add(void)static void drive_del (void ) { -char *resp =hmp ("drive_del drive0" ); +char *resp =hmp (global_qtest,"drive_del drive0" ); g_assert_cmpstr(resp, ==, "");g_free (resp);
tests/ide-test.c +2 -2
@@ -587,7 +587,7 @@ static void test_flush(void)make_dirty (0 );/* Delay the completion of the flush request until we explicitly do it */ -g_free (hmp ("qemu-io ide0-hd0 \"break flush_to_os A\"" )); +g_free (hmp (global_qtest,"qemu-io ide0-hd0 \"break flush_to_os A\"" ));/* FLUSH CACHE command on device 0*/ qpci_io_writeb (dev, ide_bar, reg_device,0 );
@@ -599,7 +599,7 @@ static void test_flush(void)assert_bit_clear (data,DF |ERR |DRQ );/* Complete the command */ -g_free (hmp ("qemu-io ide0-hd0 \"resume A\"" )); +g_free (hmp (global_qtest,"qemu-io ide0-hd0 \"resume A\"" ));/* Check registers */ data =qpci_io_readb (dev, ide_bar, reg_device);
tests/numa-test.c +3 -3
@@ -21,7 +21,7 @@ static void test_mon_explicit(const void *data)"-numa node,nodeid=0,cpus=0-3 " "-numa node,nodeid=1,cpus=4-7 ", args); - s =hmp ("info numa" ); + s =hmp (global_qtest,"info numa" );g_assert (strstr (s,"node 0 cpus: 0 1 2 3" ));g_assert (strstr (s,"node 1 cpus: 4 5 6 7" ));g_free (s);
@@ -36,7 +36,7 @@ static void test_mon_default(const void *data) global_qtest =qtest_startf ("%s -smp 8 -numa node -numa node" , args); - s =hmp ("info numa" ); + s =hmp (global_qtest,"info numa" );g_assert (strstr (s,"node 0 cpus: 0 2 4 6" ));g_assert (strstr (s,"node 1 cpus: 1 3 5 7" ));g_free (s);
@@ -53,7 +53,7 @@ static void test_mon_partial(const void *data)"-numa node,nodeid=0,cpus=0-1 " "-numa node,nodeid=1,cpus=4-5 ", args); - s =hmp ("info numa" ); + s =hmp (global_qtest,"info numa" );g_assert (strstr (s,"node 0 cpus: 0 1 2 3 6 7" ));g_assert (strstr (s,"node 1 cpus: 4 5" ));g_free (s);
tests/test-hmp.c +3 -3
@@ -80,7 +80,7 @@ static void test_commands(void)if (verbose) {fprintf (stderr,"\t%s\n" , hmp_cmds[i]); } - response =hmp ("%s" , hmp_cmds[i]); + response =hmp (global_qtest,"%s" , hmp_cmds[i]);g_free (response); }
@@ -91,7 +91,7 @@ static void test_info_commands(void) {char *resp, *info, *info_buf, *endp; - info_buf = info =hmp ("help info" ); + info_buf = info =hmp (global_qtest,"help info" );while (*info) {/* Extract the info command, ignore parameters and description */
@@ -103,7 +103,7 @@ static void test_info_commands(void)if (verbose) {fprintf (stderr,"\t%s\n" , info); } - resp =hmp ("%s" , info); + resp =hmp (global_qtest,"%s" , info);g_free (resp);/* And move forward to the next line */ info =strchr (endp +1 ,'\n' );
Signature · 1 line
2.13.5