sniffing-test: be robust against slightly-broken jhbuild configs
authorDan Winship <danw@gnome.org>
Mon, 7 Jun 2010 18:17:36 +0000 (20:17 +0200)
committerDan Winship <danw@gnome.org>
Tue, 8 Jun 2010 15:51:52 +0000 (11:51 -0400)
previously if you jhbuilt glib and libsoup, but not shared-mime-info,
then this test would fail. Fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=612706

tests/sniffing-test.c

index b2296be..1bab24c 100644 (file)
@@ -445,6 +445,24 @@ test_disabled (const char *path)
        g_main_loop_unref (loop);
 }
 
+/* Fix up XDG_DATA_DIRS for jhbuild runs so that it still works even
+ * if you didn't install shared-mime-info.
+ */
+static void
+fixup_xdg_dirs (void)
+{
+       const char *xdg_data_dirs = g_getenv ("XDG_DATA_DIRS");
+       char *new_data_dirs;
+
+       if (xdg_data_dirs &&
+           !g_str_has_prefix (xdg_data_dirs, "/usr/share") &&
+           !strstr (xdg_data_dirs, ":/usr/share")) {
+               new_data_dirs = g_strdup_printf ("%s:/usr/share", xdg_data_dirs);
+               g_setenv ("XDG_DATA_DIRS", new_data_dirs, TRUE);
+               g_free (new_data_dirs);
+       }
+}
+
 int
 main (int argc, char **argv)
 {
@@ -452,6 +470,8 @@ main (int argc, char **argv)
 
        test_init (argc, argv, NULL);
 
+       fixup_xdg_dirs ();
+
        server = soup_test_server_new (TRUE);
        soup_server_add_handler (server, NULL, server_callback, NULL, NULL);
        base_uri = soup_uri_new ("http://127.0.0.1/");