From 2f55c66c64d77de9fa7d5524468d424071aecc44 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Tue, 9 Sep 2014 13:58:18 -0400 Subject: [PATCH] apps test: add new "monitor" subcommand Waits until something modifies a desktop directory, then exits. https://bugzilla.gnome.org/show_bug.cgi?id=736350 --- gio/tests/apps.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gio/tests/apps.c b/gio/tests/apps.c index dedd71958..191edd4aa 100644 --- a/gio/tests/apps.c +++ b/gio/tests/apps.c @@ -1,6 +1,7 @@ #include #include #include +#include static void print (const gchar *str) @@ -20,6 +21,13 @@ print_app_list (GList *list) } } +static void +quit (gpointer user_data) +{ + g_print ("appinfo database changed.\n"); + exit (0); +} + int main (int argc, char **argv) { @@ -119,5 +127,21 @@ main (int argc, char **argv) } } + else if (g_str_equal (argv[1], "monitor")) + { + GAppInfoMonitor *monitor; + GAppInfo *info; + + monitor = g_app_info_monitor_get (); + + info = (GAppInfo *) g_desktop_app_info_new ("this-desktop-file-does-not-exist"); + g_assert (!info); + + g_signal_connect (monitor, "changed", G_CALLBACK (quit), NULL); + + while (1) + g_main_context_iteration (NULL, TRUE); + } + return 0; }