On Wed, Sep 16, 2026 at 06:56:20PM +0200, Roman Bogorodskiy wrote:
> 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
This conditional shouldn't be needed, as this ought to be written
as
len = sizeof(remote)
given that sun_path is NUL terminate, there's no reason to try
to calculate a shorter size, only paths in the abstract namespace
need special length handling.
> ret = connect(s, (struct sockaddr *)&remote, len);
> if (ret == -1) {
> g_usleep(G_USEC_PER_SEC);
> --
> 2.55.0
>
>
With regards,
Daniel
--
|: https://berrange.com ~~ https://hachyderm.io/@berrange :|
|: https://libvirt.org ~~ https://entangle-photo.org :|
|: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|