From dda414454193ae3445ceeec0b7275a16f29d3727 Mon Sep 17 00:00:00 2001 From: Ryan Hope Date: Thu, 14 Jul 2022 23:07:38 +0100 Subject: [PATCH] Add tests for GMemorySettingsBackend and GNullSettingsBackend (cherry-picked from commit 7c4e6032c6e383db94d917e9af6836d938114241) --- gio/tests/memory-settings-backend.c | 57 +++++++++++++++++++++++++++++ gio/tests/meson.build | 2 + gio/tests/null-settings-backend.c | 54 +++++++++++++++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 gio/tests/memory-settings-backend.c create mode 100644 gio/tests/null-settings-backend.c diff --git a/gio/tests/memory-settings-backend.c b/gio/tests/memory-settings-backend.c new file mode 100644 index 000000000..80e9919bf --- /dev/null +++ b/gio/tests/memory-settings-backend.c @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2022 Ryan Hope + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * 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 . + * + * Authors: Ryan Hope + */ + +#include +#include +#define G_SETTINGS_ENABLE_BACKEND +#include + +/* Test that the "gsettings-backend" extension point has been registered. + * Must be run first and separetly from other GSettingsBackend, + * as they will register the extension point making the test useless. + */ +static void +test_extension_point_registered (void) +{ + GSettingsBackend *backend; + GIOExtensionPoint *extension_point; + + backend = g_memory_settings_backend_new (); + g_assert_true (G_IS_SETTINGS_BACKEND (backend)); + + extension_point = g_io_extension_point_lookup (G_SETTINGS_BACKEND_EXTENSION_POINT_NAME); + g_assert_nonnull (extension_point); + + g_object_unref (backend); +} + +int +main (int argc, char *argv[]) +{ + setlocale (LC_ALL, ""); + + g_test_init (&argc, &argv, NULL); + + /* Must be run first */ + g_test_add_func ("/memory-settings-backend/extension-point-registered", test_extension_point_registered); + + return g_test_run (); +} diff --git a/gio/tests/meson.build b/gio/tests/meson.build index 3ed23a5f2..eac412aa1 100644 --- a/gio/tests/meson.build +++ b/gio/tests/meson.build @@ -86,10 +86,12 @@ gio_tests = { 'memory-input-stream' : {}, 'memory-monitor' : {}, 'memory-output-stream' : {}, + 'memory-settings-backend' : {}, 'mount-operation' : {}, 'network-address' : {'extra_sources': ['mock-resolver.c']}, 'network-monitor' : {}, 'network-monitor-race' : {}, + 'null-settings-backend' : {}, 'permission' : {}, 'pollable' : {'dependencies' : [libdl_dep]}, 'power-profile-monitor' : {}, diff --git a/gio/tests/null-settings-backend.c b/gio/tests/null-settings-backend.c new file mode 100644 index 000000000..34dee56d2 --- /dev/null +++ b/gio/tests/null-settings-backend.c @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 Ryan Hope + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * 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 . + * + * Authors: Ryan Hope + */ + +#include +#define G_SETTINGS_ENABLE_BACKEND +#include + +/* Test that the "gsettings-backend" extension point has been registered. + * Must be run first and separetly from other GSettingsBackend, + * as they will register the extension point making the test useless. + */ +static void +test_extension_point_registered (void) +{ + GSettingsBackend *backend; + GIOExtensionPoint *extension_point; + + backend = g_null_settings_backend_new (); + g_assert_true (G_IS_SETTINGS_BACKEND (backend)); + extension_point = g_io_extension_point_lookup (G_SETTINGS_BACKEND_EXTENSION_POINT_NAME); + + g_assert_nonnull (extension_point); + + g_object_unref (backend); +} + +int +main (int argc, char *argv[]) +{ + g_test_init (&argc, &argv, NULL); + + /* Must be run first */ + g_test_add_func ("/null-settings-backend/extension-point-registered", test_extension_point_registered); + + return g_test_run (); +}