FreeBSD has all necessary commands implemented,
so enable test-qga for it.
Requires only minimal portability fixes for sockets
in connect_qga().
Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
---
tests/unit/meson.build | 2 +-
tests/unit/test-qga.c | 6 +++++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/tests/unit/meson.build b/tests/unit/meson.build
index e47bc7225a..0ca0d8974e 100644
--- a/tests/unit/meson.build
+++ b/tests/unit/meson.build
@@ -169,7 +169,7 @@ if have_system
tests += {'test-qdev': [qom, hwcore]}
endif
-if have_ga and host_os == 'linux'
+if have_ga and host_os in ['freebsd', 'linux']
tests += {'test-qga': ['../qtest/libqmp.c', '../qtest/libqtest.c']}
test_deps += {'test-qga': qga}
endif
diff --git a/tests/unit/test-qga.c b/tests/unit/test-qga.c
index 01ccf826e6..dbedfe3d5f 100644
--- a/tests/unit/test-qga.c
+++ b/tests/unit/test-qga.c
@@ -18,7 +18,7 @@ typedef struct {
static int connect_qga(char *path)
{
int s, ret, len, i = 0;
- struct sockaddr_un remote;
+ struct sockaddr_un remote = { 0 };
s = socket(AF_UNIX, SOCK_STREAM, 0);
g_assert(s != -1);
@@ -26,7 +26,11 @@ static int connect_qga(char *path)
remote.sun_family = AF_UNIX;
do {
strcpy(remote.sun_path, path);
+#ifdef SUN_LEN
+ len = SUN_LEN(&remote);
+#else
len = strlen(remote.sun_path) + sizeof(remote.sun_family);
+#endif
ret = connect(s, (struct sockaddr *)&remote, len);
if (ret == -1) {
g_usleep(G_USEC_PER_SEC);
--
2.55.0