Cause allocation of some internal SpiceServer resources which was not free correctly. Using a leak detector this test results in errors if leaks happen. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/tests/.gitignore | 1 + server/tests/Makefile.am | 1 + server/tests/test-leaks.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 server/tests/test-leaks.c diff --git a/server/tests/.gitignore b/server/tests/.gitignore index 0154f32..0c34616 100644 --- a/server/tests/.gitignore +++ b/server/tests/.gitignore @@ -23,3 +23,4 @@ test-stream test-two-servers test-vdagent test-gst +test-leaks diff --git a/server/tests/Makefile.am b/server/tests/Makefile.am index af0bd20..4867d58 100644 --- a/server/tests/Makefile.am +++ b/server/tests/Makefile.am @@ -45,6 +45,7 @@ check_PROGRAMS = \ test-loop \ test-qxl-parsing \ test-stat-file \ + test-leaks \ $(NULL) noinst_PROGRAMS = \ diff --git a/server/tests/test-leaks.c b/server/tests/test-leaks.c new file mode 100644 index 0000000..cd96bc8 --- /dev/null +++ b/server/tests/test-leaks.c @@ -0,0 +1,59 @@ +/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* + Copyright (C) 2017 Red Hat, Inc. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, see <http://www.gnu.org/licenses/>. +*/ +#include <config.h> +#include <glib.h> +#include <spice.h> + +#include "basic-event-loop.h" + +/* GLIB_CHECK_VERSION(2, 40, 0) */ +#ifndef g_assert_nonnull +#define g_assert_nonnull g_assert +#endif + +static void leaks(void) +{ + int result; + SpiceCoreInterface *core; + SpiceServer *server = spice_server_new(); + + g_assert_nonnull(server); + + core = basic_event_loop_init(); + g_assert_nonnull(core); + + g_assert_cmpint(spice_server_init(server, core), ==, 0); + + /* cause the allocation of spice name */ + spice_server_set_name(server, "Test Spice Name"); + + /* cause the allocation of security options */ + result = spice_server_set_channel_security(server, "main", SPICE_CHANNEL_SECURITY_SSL); + g_assert_cmpint(result, ==, 0); + + spice_server_destroy(server); +} + +int main(int argc, char *argv[]) +{ + g_test_init(&argc, &argv, NULL); + + g_test_add_func("/server/server leaks", leaks); + + return g_test_run(); +} -- 2.9.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel