diff mbox

[PULL,for-2.0,10/16] qtest: Factor out qtest_qmp_receive()

Message ID 1396300262-10430-11-git-send-email-afaerber@suse.de
State New
Headers show

Commit Message

Andreas Färber March 31, 2014, 9:10 p.m. UTC
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 tests/libqtest.c | 15 ++++++++++-----
 tests/libqtest.h | 18 ++++++++++++++++++
 2 files changed, 28 insertions(+), 5 deletions(-)
diff mbox

Patch

diff --git a/tests/libqtest.c b/tests/libqtest.c
index d9e3a33..8155695 100644
--- a/tests/libqtest.c
+++ b/tests/libqtest.c
@@ -345,14 +345,10 @@  static void qmp_response(JSONMessageParser *parser, QList *tokens)
     qmp->response = (QDict *)obj;
 }
 
-QDict *qtest_qmpv(QTestState *s, const char *fmt, va_list ap)
+QDict *qtest_qmp_receive(QTestState *s)
 {
     QMPResponseParser qmp;
 
-    /* Send QMP request */
-    socket_sendf(s->qmp_fd, fmt, ap);
-
-    /* Receive reply */
     qmp.response = NULL;
     json_message_parser_init(&qmp.parser, qmp_response);
     while (!qmp.response) {
@@ -376,6 +372,15 @@  QDict *qtest_qmpv(QTestState *s, const char *fmt, va_list ap)
     return qmp.response;
 }
 
+QDict *qtest_qmpv(QTestState *s, const char *fmt, va_list ap)
+{
+    /* Send QMP request */
+    socket_sendf(s->qmp_fd, fmt, ap);
+
+    /* Receive reply */
+    return qtest_qmp_receive(s);
+}
+
 QDict *qtest_qmp(QTestState *s, const char *fmt, ...)
 {
     va_list ap;
diff --git a/tests/libqtest.h b/tests/libqtest.h
index 8268c09..8f323c7 100644
--- a/tests/libqtest.h
+++ b/tests/libqtest.h
@@ -83,6 +83,14 @@  void qtest_qmpv_discard_response(QTestState *s, const char *fmt, va_list ap);
 QDict *qtest_qmpv(QTestState *s, const char *fmt, va_list ap);
 
 /**
+ * qtest_receive:
+ * @s: #QTestState instance to operate on.
+ *
+ * Reads a QMP message from QEMU and returns the response.
+ */
+QDict *qtest_qmp_receive(QTestState *s);
+
+/**
  * qtest_get_irq:
  * @s: #QTestState instance to operate on.
  * @num: Interrupt to observe.
@@ -367,6 +375,16 @@  QDict *qmp(const char *fmt, ...);
 void qmp_discard_response(const char *fmt, ...);
 
 /**
+ * qmp_receive:
+ *
+ * Reads a QMP message from QEMU and returns the response.
+ */
+static inline QDict *qmp_receive(void)
+{
+    return qtest_qmp_receive(global_qtest);
+}
+
+/**
  * get_irq:
  * @num: Interrupt to observe.
  *