xref: /openbmc/qemu/tests/qtest/libqmp.h (revision ed75658a)
1 /*
2  * libqmp test unit
3  *
4  * Copyright IBM, Corp. 2012
5  * Copyright Red Hat, Inc. 2012
6  * Copyright SUSE LINUX Products GmbH 2013
7  *
8  * Authors:
9  *  Anthony Liguori   <aliguori@us.ibm.com>
10  *  Paolo Bonzini     <pbonzini@redhat.com>
11  *  Andreas Färber    <afaerber@suse.de>
12  *
13  * This work is licensed under the terms of the GNU GPL, version 2 or later.
14  * See the COPYING file in the top-level directory.
15  *
16  */
17 
18 #ifndef LIBQMP_H
19 #define LIBQMP_H
20 
21 #include "qapi/qmp/qdict.h"
22 
23 QDict *qmp_fd_receive(int fd);
24 #ifndef _WIN32
25 void qmp_fd_vsend_fds(int fd, int *fds, size_t fds_num,
26                       const char *fmt, va_list ap) G_GNUC_PRINTF(4, 0);
27 #endif
28 void qmp_fd_vsend(int fd, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0);
29 void qmp_fd_send(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
30 void qmp_fd_send_raw(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
31 void qmp_fd_vsend_raw(int fd, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0);
32 QDict *qmp_fdv(int fd, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0);
33 QDict *qmp_fd(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
34 
35 /**
36  * qmp_rsp_is_err:
37  * @rsp: QMP response to check for error
38  *
39  * Test @rsp for error and discard @rsp.
40  * Returns 'true' if there is error in @rsp and 'false' otherwise.
41  */
42 bool qmp_rsp_is_err(QDict *rsp);
43 
44 /**
45  * qmp_expect_error_and_unref:
46  * @rsp: QMP response to check for error
47  * @class: an error class
48  *
49  * Assert the response has the given error class and discard @rsp.
50  */
51 void qmp_expect_error_and_unref(QDict *rsp, const char *class);
52 
53 #endif /* LIBQMP_H */
54