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:
Guido Günther
2025-03-25 21:55:34 +01:00
parent a0295286ff
commit e8ecc3d0c1
3 changed files with 46 additions and 11 deletions
+12 -10
View File
@@ -44,16 +44,18 @@ if get_option('tests')
test(test, t, env: test_env, depends: fbd_exe)
endif
test = 'lfb-event'
t = executable(
'test-@0@'.format(test),
['test-@0@.c'.format(test)],
c_args: test_lfb_cflags,
pie: true,
link_args: test_lfb_link_args,
dependencies: test_lfb_deps,
)
test(test, t, env: test_env)
unit_tests = ['lfb-event', 'lfb-main']
foreach test : unit_tests
t = executable(
'test-@0@'.format(test),
['test-@0@.c'.format(test)],
c_args: test_lfb_cflags,
pie: true,
link_args: test_lfb_link_args,
dependencies: test_lfb_deps,
)
test(test, t, env: test_env)
endforeach
# Daemon Unit tests
if get_option('daemon')
+32
View File
@@ -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();
}