[glib] apps test: add new "monitor" subcommand



commit 2f55c66c64d77de9fa7d5524468d424071aecc44
Author: Ryan Lortie <desrt desrt ca>
Date:   Tue Sep 9 13:58:18 2014 -0400

    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 files changed, 24 insertions(+), 0 deletions(-)
---
diff --git a/gio/tests/apps.c b/gio/tests/apps.c
index dedd719..191edd4 100644
--- a/gio/tests/apps.c
+++ b/gio/tests/apps.c
@@ -1,6 +1,7 @@
 #include <gio/gio.h>
 #include <gio/gdesktopappinfo.h>
 #include <locale.h>
+#include <stdlib.h>
 
 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;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]