libfeedback: Only cancel feedbacks if ever inited
If lfb_init() wasn't called before lfb_uninit() we'd otherwise raise a critical which isn't nice for a library. Signed-off-by: Guido Günther <agx@sigxcpu.org>
This commit is contained in:
@@ -112,7 +112,8 @@ lfb_uninit (void)
|
|||||||
_initted = FALSE;
|
_initted = FALSE;
|
||||||
|
|
||||||
/* Cancel all feedbacks that the client forgot to clean up */
|
/* Cancel all feedbacks that the client forgot to clean up */
|
||||||
lfb_cancel_feedbacks ();
|
if (_active_ids)
|
||||||
|
lfb_cancel_feedbacks ();
|
||||||
g_clear_pointer (&_active_ids, g_hash_table_destroy);
|
g_clear_pointer (&_active_ids, g_hash_table_destroy);
|
||||||
g_clear_pointer (&_app_id, g_free);
|
g_clear_pointer (&_app_id, g_free);
|
||||||
g_clear_object (&_proxy);
|
g_clear_object (&_proxy);
|
||||||
|
|||||||
+12
-10
@@ -44,16 +44,18 @@ if get_option('tests')
|
|||||||
test(test, t, env: test_env, depends: fbd_exe)
|
test(test, t, env: test_env, depends: fbd_exe)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
test = 'lfb-event'
|
unit_tests = ['lfb-event', 'lfb-main']
|
||||||
t = executable(
|
foreach test : unit_tests
|
||||||
'test-@0@'.format(test),
|
t = executable(
|
||||||
['test-@0@.c'.format(test)],
|
'test-@0@'.format(test),
|
||||||
c_args: test_lfb_cflags,
|
['test-@0@.c'.format(test)],
|
||||||
pie: true,
|
c_args: test_lfb_cflags,
|
||||||
link_args: test_lfb_link_args,
|
pie: true,
|
||||||
dependencies: test_lfb_deps,
|
link_args: test_lfb_link_args,
|
||||||
)
|
dependencies: test_lfb_deps,
|
||||||
test(test, t, env: test_env)
|
)
|
||||||
|
test(test, t, env: test_env)
|
||||||
|
endforeach
|
||||||
|
|
||||||
# Daemon Unit tests
|
# Daemon Unit tests
|
||||||
if get_option('daemon')
|
if get_option('daemon')
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2025 The Phosh Developers
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-3.0+
|
||||||
|
*
|
||||||
|
* Author: Guido Günther <agx@sigxcpu.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "libfeedback.h"
|
||||||
|
#include <gio/gio.h>
|
||||||
|
|
||||||
|
/* unpaired uninit not raise any criticals */
|
||||||
|
static void
|
||||||
|
test_lfb_main_uninit (void)
|
||||||
|
{
|
||||||
|
g_assert_false (lfb_is_initted ());
|
||||||
|
lfb_uninit ();
|
||||||
|
g_assert_false (lfb_is_initted ());
|
||||||
|
}
|
||||||
|
|
||||||
|
gint
|
||||||
|
main (gint argc, gchar *argv[])
|
||||||
|
{
|
||||||
|
g_test_init (&argc, &argv, NULL);
|
||||||
|
|
||||||
|
g_autoptr(GTestDBus) bus = g_test_dbus_new (G_TEST_DBUS_NONE);
|
||||||
|
g_test_dbus_up (bus);
|
||||||
|
|
||||||
|
g_test_add_func ("/feedbackd/libfeedback/lfb-main/uninit", test_lfb_main_uninit);
|
||||||
|
|
||||||
|
return g_test_run();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user