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