[Spice-devel] [PATCH spice-server 01/10] tests: Check leaks in spice_server_add_ssl_client if invalid connection

Christophe Fergeau cfergeau at redhat.com
Mon Sep 11 15:31:36 UTC 2017


Since you needed a comment in the code, I guess the commit log could be
a bit more detailed as well... Which would probably allow to have a
shorter short log.
On Mon, Sep 11, 2017 at 11:15:38AM +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/tests/Makefile.am  |  1 +
>  server/tests/test-leaks.c | 12 ++++++++++++
>  2 files changed, 13 insertions(+)
> 
> diff --git a/server/tests/Makefile.am b/server/tests/Makefile.am
> index 01e636265..d50c590c3 100644
> --- a/server/tests/Makefile.am
> +++ b/server/tests/Makefile.am
> @@ -138,6 +138,7 @@ test_vdagent_CPPFLAGS =			\
>  test_codecs_parsing_CPPFLAGS = $(test_vdagent_CPPFLAGS)
>  test_qxl_parsing_CPPFLAGS = $(test_vdagent_CPPFLAGS)
>  test_fail_on_null_core_interface_CPPFLAGS = $(test_vdagent_CPPFLAGS)
> +test_leaks_CPPFLAGS = $(test_vdagent_CPPFLAGS)
>  
>  if HAVE_GSTREAMER
>  test_gst_SOURCES = test-gst.c \
> diff --git a/server/tests/test-leaks.c b/server/tests/test-leaks.c
> index 74ab2afd5..5be8ac859 100644
> --- a/server/tests/test-leaks.c
> +++ b/server/tests/test-leaks.c
> @@ -29,6 +29,7 @@
>   * For cleaner output you should suppress GLib checks with glib.supp file.
>   */
>  #include <config.h>
> +#include <unistd.h>
>  #include <spice.h>
>  
>  #include "test-glib-compat.h"
> @@ -42,6 +43,7 @@ static void server_leaks(void)
>      int result;
>      SpiceCoreInterface *core;
>      SpiceServer *server = spice_server_new();
> +    int sv[2];
>  
>      g_assert_nonnull(server);
>  
> @@ -64,6 +66,16 @@ static void server_leaks(void)
>      result = spice_server_set_channel_security(server, "main", SPICE_CHANNEL_SECURITY_SSL);
>      g_assert_cmpint(result, ==, 0);
>  
> +    /* spice_server_add_ssl_client should not leak passing a disconnected socket */

"when it's given a disconnected socket"

> +    g_test_expect_message(G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
> +                          "*SSL_accept failed*");
> +    g_assert_cmpint(socketpair(AF_LOCAL, SOCK_STREAM, 0, sv), ==, 0);
> +    close(sv[1]);
> +    result = spice_server_add_ssl_client(server, sv[0], 1);
> +    g_assert_cmpint(result, ==, -1);
> +    /* if the function fails should not close the socket */

".. fails, it should not close .." ?

Christophe


More information about the Spice-devel mailing list