[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 5/9] libqtest: add qmp_eventwait_ref
From: |
John Snow |
Subject: |
[Qemu-devel] [PULL v2 5/9] libqtest: add qmp_eventwait_ref |
Date: |
Mon, 14 Nov 2016 11:25:42 -0500 |
Wait for an event, but return a copy so we can investigate parameters.
Signed-off-by: John Snow <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Message-id: address@hidden
Signed-off-by: John Snow <address@hidden>
---
tests/libqtest.c | 13 ++++++++++---
tests/libqtest.h | 22 ++++++++++++++++++++++
2 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/tests/libqtest.c b/tests/libqtest.c
index d4e6bff..6f69752 100644
--- a/tests/libqtest.c
+++ b/tests/libqtest.c
@@ -533,7 +533,7 @@ void qtest_qmp_discard_response(QTestState *s, const char
*fmt, ...)
QDECREF(response);
}
-void qtest_qmp_eventwait(QTestState *s, const char *event)
+QDict *qtest_qmp_eventwait_ref(QTestState *s, const char *event)
{
QDict *response;
@@ -541,13 +541,20 @@ void qtest_qmp_eventwait(QTestState *s, const char *event)
response = qtest_qmp_receive(s);
if ((qdict_haskey(response, "event")) &&
(strcmp(qdict_get_str(response, "event"), event) == 0)) {
- QDECREF(response);
- break;
+ return response;
}
QDECREF(response);
}
}
+void qtest_qmp_eventwait(QTestState *s, const char *event)
+{
+ QDict *response;
+
+ response = qtest_qmp_eventwait_ref(s, event);
+ QDECREF(response);
+}
+
char *qtest_hmpv(QTestState *s, const char *fmt, va_list ap)
{
char *cmd;
diff --git a/tests/libqtest.h b/tests/libqtest.h
index 0224f06..90f182e 100644
--- a/tests/libqtest.h
+++ b/tests/libqtest.h
@@ -114,6 +114,16 @@ QDict *qtest_qmp_receive(QTestState *s);
void qtest_qmp_eventwait(QTestState *s, const char *event);
/**
+ * qtest_qmp_eventwait_ref:
+ * @s: #QTestState instance to operate on.
+ * @s: #event event to wait for.
+ *
+ * Continuosly polls for QMP responses until it receives the desired event.
+ * Returns a copy of the event for further investigation.
+ */
+QDict *qtest_qmp_eventwait_ref(QTestState *s, const char *event);
+
+/**
* qtest_hmpv:
* @s: #QTestState instance to operate on.
* @fmt...: HMP command to send to QEMU
@@ -559,6 +569,18 @@ static inline void qmp_eventwait(const char *event)
}
/**
+ * qmp_eventwait_ref:
+ * @s: #event event to wait for.
+ *
+ * Continuosly polls for QMP responses until it receives the desired event.
+ * Returns a copy of the event for further investigation.
+ */
+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
*
--
2.7.4
- [Qemu-devel] [PULL v2 0/9] Ide patches, John Snow, 2016/11/14
- [Qemu-devel] [PULL v2 6/9] libqos/ahci: Support expected errors, John Snow, 2016/11/14
- [Qemu-devel] [PULL v2 2/9] ahci-test: Create smaller test ISO images, John Snow, 2016/11/14
- [Qemu-devel] [PULL v2 4/9] block-backend: Always notify on blk_eject, John Snow, 2016/11/14
- [Qemu-devel] [PULL v2 7/9] libqos/ahci: Add ATAPI tray macros, John Snow, 2016/11/14
- [Qemu-devel] [PULL v2 1/9] atapi: classify read_cd as conditionally returning data, John Snow, 2016/11/14
- [Qemu-devel] [PULL v2 5/9] libqtest: add qmp_eventwait_ref,
John Snow <=
- [Qemu-devel] [PULL v2 3/9] ahci-test: test atapi read_cd with bcl, nb_sectors = 0, John Snow, 2016/11/14
- [Qemu-devel] [PULL v2 8/9] libqos/ahci: Add get_sense and test_ready, John Snow, 2016/11/14
- [Qemu-devel] [PULL v2 9/9] ahci-test: add QMP tray test for ATAPI, John Snow, 2016/11/14
- Re: [Qemu-devel] [PULL v2 0/9] Ide patches, no-reply, 2016/11/14
- Re: [Qemu-devel] [PULL v2 0/9] Ide patches, Stefan Hajnoczi, 2016/11/14