Reviewed-by: Kostiantyn Kostiuk <[email protected]>

On Wed, Sep 16, 2026 at 7:57 PM Roman Bogorodskiy <[email protected]>
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
>          ret = connect(s, (struct sockaddr *)&remote, len);
>          if (ret == -1) {
>              g_usleep(G_USEC_PER_SEC);
> --
> 2.55.0
>
>

Reply via email to