[PATCH] tests: use macros for registering char tests for sockets

Daniel P. Berrangé posted 1 patch 3 months, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20251016132548.1654627-1-berrange@redhat.com
tests/unit/test-char.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
[PATCH] tests: use macros for registering char tests for sockets
Posted by Daniel P. Berrangé 3 months, 3 weeks ago
The test-char.c has a couple of helper macros for registering tests that
need to be repeated for both IP and UNIX sockets. One test case was not
using the macro though.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 tests/unit/test-char.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/tests/unit/test-char.c b/tests/unit/test-char.c
index f30a39f61f..3c9f0a68e8 100644
--- a/tests/unit/test-char.c
+++ b/tests/unit/test-char.c
@@ -1969,19 +1969,17 @@ int main(int argc, char **argv)
     g_test_add_data_func("/char/socket/client/reconnect-error/" # name, \
                          &client7 ##name, char_socket_client_test);     \
     g_test_add_data_func("/char/socket/client/dupid-reconnect/" # name, \
-                         &client8 ##name, char_socket_client_dupid_test)
+                         &client8 ##name, char_socket_client_dupid_test); \
+    g_test_add_data_func("/char/socket/server/two-clients/" # name,     \
+                         addr, char_socket_server_two_clients_test)
 
     if (has_ipv4) {
         SOCKET_SERVER_TEST(tcp, &tcpaddr);
         SOCKET_CLIENT_TEST(tcp, &tcpaddr);
-        g_test_add_data_func("/char/socket/server/two-clients/tcp", &tcpaddr,
-                             char_socket_server_two_clients_test);
     }
 #ifndef WIN32
     SOCKET_SERVER_TEST(unix, &unixaddr);
     SOCKET_CLIENT_TEST(unix, &unixaddr);
-    g_test_add_data_func("/char/socket/server/two-clients/unix", &unixaddr,
-                         char_socket_server_two_clients_test);
 #endif
 
     g_test_add_func("/char/udp", char_udp_test);
-- 
2.50.1


Re: [PATCH] tests: use macros for registering char tests for sockets
Posted by Peter Maydell 3 months, 3 weeks ago
On Thu, 16 Oct 2025 at 14:27, Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> The test-char.c has a couple of helper macros for registering tests that
> need to be repeated for both IP and UNIX sockets. One test case was not
> using the macro though.
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  tests/unit/test-char.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/tests/unit/test-char.c b/tests/unit/test-char.c
> index f30a39f61f..3c9f0a68e8 100644
> --- a/tests/unit/test-char.c
> +++ b/tests/unit/test-char.c
> @@ -1969,19 +1969,17 @@ int main(int argc, char **argv)
>      g_test_add_data_func("/char/socket/client/reconnect-error/" # name, \
>                           &client7 ##name, char_socket_client_test);     \
>      g_test_add_data_func("/char/socket/client/dupid-reconnect/" # name, \
> -                         &client8 ##name, char_socket_client_dupid_test)
> +                         &client8 ##name, char_socket_client_dupid_test); \
> +    g_test_add_data_func("/char/socket/server/two-clients/" # name,     \
> +                         addr, char_socket_server_two_clients_test)
>
>      if (has_ipv4) {
>          SOCKET_SERVER_TEST(tcp, &tcpaddr);
>          SOCKET_CLIENT_TEST(tcp, &tcpaddr);
> -        g_test_add_data_func("/char/socket/server/two-clients/tcp", &tcpaddr,
> -                             char_socket_server_two_clients_test);
>      }
>  #ifndef WIN32
>      SOCKET_SERVER_TEST(unix, &unixaddr);
>      SOCKET_CLIENT_TEST(unix, &unixaddr);
> -    g_test_add_data_func("/char/socket/server/two-clients/unix", &unixaddr,
> -                         char_socket_server_two_clients_test);
>  #endif

This is a "server" test, but it looks like you've added it to
the SOCKET_CLIENT_TEST macro instead of the SOCKET_SERVER_TEST macro ?

thanks
-- PMM
Re: [PATCH] tests: use macros for registering char tests for sockets
Posted by Daniel P. Berrangé 3 months, 3 weeks ago
On Thu, Oct 16, 2025 at 02:30:47PM +0100, Peter Maydell wrote:
> On Thu, 16 Oct 2025 at 14:27, Daniel P. Berrangé <berrange@redhat.com> wrote:
> >
> > The test-char.c has a couple of helper macros for registering tests that
> > need to be repeated for both IP and UNIX sockets. One test case was not
> > using the macro though.
> >
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > ---
> >  tests/unit/test-char.c | 8 +++-----
> >  1 file changed, 3 insertions(+), 5 deletions(-)
> >
> > diff --git a/tests/unit/test-char.c b/tests/unit/test-char.c
> > index f30a39f61f..3c9f0a68e8 100644
> > --- a/tests/unit/test-char.c
> > +++ b/tests/unit/test-char.c
> > @@ -1969,19 +1969,17 @@ int main(int argc, char **argv)
> >      g_test_add_data_func("/char/socket/client/reconnect-error/" # name, \
> >                           &client7 ##name, char_socket_client_test);     \
> >      g_test_add_data_func("/char/socket/client/dupid-reconnect/" # name, \
> > -                         &client8 ##name, char_socket_client_dupid_test)
> > +                         &client8 ##name, char_socket_client_dupid_test); \
> > +    g_test_add_data_func("/char/socket/server/two-clients/" # name,     \
> > +                         addr, char_socket_server_two_clients_test)
> >
> >      if (has_ipv4) {
> >          SOCKET_SERVER_TEST(tcp, &tcpaddr);
> >          SOCKET_CLIENT_TEST(tcp, &tcpaddr);
> > -        g_test_add_data_func("/char/socket/server/two-clients/tcp", &tcpaddr,
> > -                             char_socket_server_two_clients_test);
> >      }
> >  #ifndef WIN32
> >      SOCKET_SERVER_TEST(unix, &unixaddr);
> >      SOCKET_CLIENT_TEST(unix, &unixaddr);
> > -    g_test_add_data_func("/char/socket/server/two-clients/unix", &unixaddr,
> > -                         char_socket_server_two_clients_test);
> >  #endif
> 
> This is a "server" test, but it looks like you've added it to
> the SOCKET_CLIENT_TEST macro instead of the SOCKET_SERVER_TEST macro ?

Opps, yes, though it raises the question of why we have separate
macros for server vs client tests instead of one.


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|