1/* GLib testing framework examples and tests
2 *
3 * Copyright (C) 2012 Collabora Ltd. <http://www.collabora.co.uk/>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General
16 * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
17 *
18 * Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
19 */
20
21#include "gdbus-sessionbus.h"
22
23static GTestDBus *singleton = NULL;
24
25void
26session_bus_up (void)
27{
28 gchar *relative, *servicesdir;
29 g_assert (singleton == NULL);
30 singleton = g_test_dbus_new (flags: G_TEST_DBUS_NONE);
31
32 /* We ignore deprecations here so that gdbus-test-codegen-old can
33 * build successfully despite these two functions not being
34 * available in GLib 2.36 */
35 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
36 relative = g_test_build_filename (file_type: G_TEST_BUILT, first_path: "services", NULL);
37 servicesdir = g_canonicalize_filename (filename: relative, NULL);
38 G_GNUC_END_IGNORE_DEPRECATIONS
39 g_free (mem: relative);
40
41 g_test_dbus_add_service_dir (self: singleton, path: servicesdir);
42 g_free (mem: servicesdir);
43 g_test_dbus_up (self: singleton);
44}
45
46void
47session_bus_stop (void)
48{
49 g_assert (singleton != NULL);
50 g_test_dbus_stop (self: singleton);
51}
52
53void
54session_bus_down (void)
55{
56 g_assert (singleton != NULL);
57 g_test_dbus_down (self: singleton);
58 g_clear_object (&singleton);
59}
60
61gint
62session_bus_run (void)
63{
64 gint ret;
65
66 session_bus_up ();
67 ret = g_test_run ();
68 session_bus_down ();
69
70 return ret;
71}
72

source code of gtk/subprojects/glib/gio/tests/gdbus-sessionbus.c