xref: /qemu/tests/qtest/libqmp.h (revision 66997c42e02c84481fc162a5b7bd6ad6c643bae2)
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