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 <[email protected]> --- 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
