[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v2 03/15] tests: make libqmp buildable for win32
From: |
marcandre . lureau |
Subject: |
[PULL v2 03/15] tests: make libqmp buildable for win32 |
Date: |
Mon, 30 May 2022 00:51:25 +0200 |
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20220525144140.591926-4-marcandre.lureau@redhat.com>
---
tests/qtest/libqmp.h | 2 ++
tests/qtest/libqmp.c | 34 +++++++++++++++++++++++++++++-----
2 files changed, 31 insertions(+), 5 deletions(-)
diff --git a/tests/qtest/libqmp.h b/tests/qtest/libqmp.h
index 5cb7eeaa18..3445b753ff 100644
--- a/tests/qtest/libqmp.h
+++ b/tests/qtest/libqmp.h
@@ -21,8 +21,10 @@
#include "qapi/qmp/qdict.h"
QDict *qmp_fd_receive(int fd);
+#ifndef _WIN32
void qmp_fd_vsend_fds(int fd, int *fds, size_t fds_num,
const char *fmt, va_list ap) G_GNUC_PRINTF(4, 0);
+#endif
void qmp_fd_vsend(int fd, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0);
void qmp_fd_send(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
void qmp_fd_send_raw(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
diff --git a/tests/qtest/libqmp.c b/tests/qtest/libqmp.c
index 0358b8313d..ade26c15f0 100644
--- a/tests/qtest/libqmp.c
+++ b/tests/qtest/libqmp.c
@@ -18,6 +18,11 @@
#include "libqmp.h"
+#ifndef _WIN32
+#include <sys/socket.h>
+#endif
+
+#include "qemu/cutils.h"
#include "qapi/error.h"
#include "qapi/qmp/json-parser.h"
#include "qapi/qmp/qjson.h"
@@ -87,6 +92,7 @@ QDict *qmp_fd_receive(int fd)
return qmp.response;
}
+#ifndef _WIN32
/* Sends a message and file descriptors to the socket.
* It's needed for qmp-commands like getfd/add-fd */
static void socket_send_fds(int socket_fd, int *fds, size_t fds_num,
@@ -120,17 +126,23 @@ static void socket_send_fds(int socket_fd, int *fds,
size_t fds_num,
} while (ret < 0 && errno == EINTR);
g_assert_cmpint(ret, >, 0);
}
+#endif
/**
* Allow users to send a message without waiting for the reply,
* in the case that they choose to discard all replies up until
* a particular EVENT is received.
*/
-void qmp_fd_vsend_fds(int fd, int *fds, size_t fds_num,
- const char *fmt, va_list ap)
+static void
+_qmp_fd_vsend_fds(int fd, int *fds, size_t fds_num,
+ const char *fmt, va_list ap)
{
QObject *qobj;
+#ifdef _WIN32
+ assert(fds_num == 0);
+#endif
+
/* Going through qobject ensures we escape strings properly */
qobj = qobject_from_vjsonf_nofail(fmt, ap);
@@ -148,10 +160,14 @@ void qmp_fd_vsend_fds(int fd, int *fds, size_t fds_num,
if (log) {
fprintf(stderr, "%s", str->str);
}
+
+#ifndef _WIN32
/* Send QMP request */
if (fds && fds_num > 0) {
socket_send_fds(fd, fds, fds_num, str->str, str->len);
- } else {
+ } else
+#endif
+ {
socket_send(fd, str->str, str->len);
}
@@ -160,15 +176,23 @@ void qmp_fd_vsend_fds(int fd, int *fds, size_t fds_num,
}
}
+#ifndef _WIN32
+void qmp_fd_vsend_fds(int fd, int *fds, size_t fds_num,
+ const char *fmt, va_list ap)
+{
+ _qmp_fd_vsend_fds(fd, fds, fds_num, fmt, ap);
+}
+#endif
+
void qmp_fd_vsend(int fd, const char *fmt, va_list ap)
{
- qmp_fd_vsend_fds(fd, NULL, 0, fmt, ap);
+ _qmp_fd_vsend_fds(fd, NULL, 0, fmt, ap);
}
QDict *qmp_fdv(int fd, const char *fmt, va_list ap)
{
- qmp_fd_vsend_fds(fd, NULL, 0, fmt, ap);
+ _qmp_fd_vsend_fds(fd, NULL, 0, fmt, ap);
return qmp_fd_receive(fd);
}
--
2.36.1
- [PULL v2 00/15] Misc patches, marcandre . lureau, 2022/05/29
- [PULL v2 01/15] include: move qemu_*_exec_dir() to cutils, marcandre . lureau, 2022/05/29
- [PULL v2 03/15] tests: make libqmp buildable for win32,
marcandre . lureau <=
- [PULL v2 02/15] util/win32: simplify qemu_get_local_state_dir(), marcandre . lureau, 2022/05/29
- [PULL v2 05/15] qga: add qga_open_cloexec() helper, marcandre . lureau, 2022/05/29
- [PULL v2 06/15] qga: use qga_open_cloexec() for safe_open_or_create(), marcandre . lureau, 2022/05/29
- [PULL v2 07/15] qga: throw an Error in ga_channel_open(), marcandre . lureau, 2022/05/29
- [PULL v2 08/15] qga: replace qemu_open_old() with qga_open_cloexec(), marcandre . lureau, 2022/05/29
- [PULL v2 11/15] qga/wixl: prefer variables over environment, marcandre . lureau, 2022/05/29
- [PULL v2 04/15] qga: flatten safe_open_or_create(), marcandre . lureau, 2022/05/29
- [PULL v2 09/15] qga: make build_fs_mount_list() return a bool, marcandre . lureau, 2022/05/29
- [PULL v2 12/15] qga/wixl: require Mingw_bin, marcandre . lureau, 2022/05/29
- [PULL v2 10/15] test/qga: use G_TEST_DIR to locate os-release test file, marcandre . lureau, 2022/05/29