summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am3
-rw-r--r--gnu/packages/glib.scm75
-rw-r--r--gnu/packages/patches/glib-tests-desktop.patch138
-rw-r--r--gnu/packages/patches/glib-tests-gapplication.patch28
-rw-r--r--gnu/packages/patches/glib-tests-prlimit.patch14
-rw-r--r--gnu/packages/patches/glib-tests-timer.patch11
6 files changed, 61 insertions, 208 deletions
diff --git a/gnu-system.am b/gnu-system.am
index c7ba159ad5..0c24c05d15 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -485,10 +485,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/ghostscript-CVE-2015-3228.patch		\
   gnu/packages/patches/ghostscript-runpath.patch		\
   gnu/packages/patches/glib-networking-ssl-cert-file.patch	\
-  gnu/packages/patches/glib-tests-desktop.patch			\
-  gnu/packages/patches/glib-tests-prlimit.patch			\
   gnu/packages/patches/glib-tests-timer.patch			\
-  gnu/packages/patches/glib-tests-gapplication.patch		\
   gnu/packages/patches/glibc-CVE-2015-7547.patch		\
   gnu/packages/patches/glibc-bootstrap-system.patch		\
   gnu/packages/patches/glibc-hurd-extern-inline.patch		\
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 13f3f3a8a2..25b6a81d70 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -138,10 +138,7 @@ shared NFS home directories.")
             (sha256
              (base32
               "1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss"))
-            (patches (search-patches "glib-tests-desktop.patch"
-                                     "glib-tests-prlimit.patch"
-                                     "glib-tests-timer.patch"
-                                     "glib-tests-gapplication.patch"))))
+            (patches (search-patches "glib-tests-timer.patch"))))
    (build-system gnu-build-system)
    (outputs '("out"           ; everything
               "bin"           ; glib-mkenums, gtester, etc.; depends on Python
@@ -176,16 +173,66 @@ shared NFS home directories.")
                            "glib/tests/utils.c"
                            "tests/spawn-test.c")
               (("/bin/sh")
-               (string-append (assoc-ref inputs "bash") "/bin/sh")))
-
-            ;; Disable a test that requires /etc/machine-id.
-            (substitute* "gio/tests/gdbus-peer.c"
-              (("g_test_add_func.*/gdbus/codegen-peer-to-peer.*") ""))
-            ;; Disable a test that requires dbus.
-            (substitute* "gio/tests/gdbus-serialization.c"
-              (("g_test_add_func \
-\\(\"/gdbus/message-serialize/double-array\", test_double_array\\);" all)
-               (string-append "/* " all " */"))))))
+               (string-append (assoc-ref inputs "bash") "/bin/sh")))))
+        (add-before 'check 'disable-failing-tests
+          (lambda _
+            (let ((disable
+                   (lambda (test-file test-paths)
+                     (define pattern+procs
+                       (map (lambda (test-path)
+                              (cons
+                               ;; XXX: only works for single line statements.
+                               (format #f "g_test_add_func.*\"~a\".*" test-path)
+                               (const "")))
+                            test-paths))
+                     (substitute test-file pattern+procs)))
+                  (failing-tests
+                   '(("glib/tests/thread.c"
+                      (;; prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64
+                       ;; as found on hydra.gnu.org, and strace(1) doesn't
+                       ;; recognize it.
+                       "/thread/thread4"))
+
+                     ("glib/tests/timer.c"
+                      (;; fails if compiler optimizations are enabled, which they
+                       ;; are by default.
+                       "/timer/stop"))
+
+                     ("gio/tests/gapplication.c"
+                      (;; XXX: proven to be unreliable.  See:
+                       ;;  <https://bugs.debian.org/756273>
+                       ;;  <http://bugs.gnu.org/18445>
+                       "/gapplication/quit"))
+
+                     ("gio/tests/contenttype.c"
+                      (;; XXX: requires shared-mime-info.
+                       "/contenttype/guess"
+                       "/contenttype/subtype"
+                       "/contenttype/list"
+                       "/contenttype/icon"
+                       "/contenttype/symbolic-icon"
+                       "/contenttype/tree"))
+
+                     ("gio/tests/appinfo.c"
+                      (;; XXX: requires update-desktop-database.
+                       "/appinfo/associations"))
+
+                     ("gio/tests/desktop-app-info.c"
+                      (;; XXX: requires update-desktop-database.
+                       "/desktop-app-info/delete"
+                       "/desktop-app-info/default"
+                       "/desktop-app-info/fallback"
+                       "/desktop-app-info/lastused"
+                       "/desktop-app-info/search"))
+
+                     ("gio/tests/gdbus-peer.c"
+                      (;; Requires /etc/machine-id.
+                       "/gdbus/codegen-peer-to-peer"))
+
+                     ("gio/tests/gdbus-unix-addresses.c"
+                      (;; Requires /etc/machine-id.
+                       "/gdbus/x11-autolaunch")))))
+              (and-map (lambda (x) (apply disable x)) failing-tests)))))
 
       ;; Note: `--docdir' and `--htmldir' are not honored, so work around it.
       #:configure-flags (list (string-append "--with-html-dir="
diff --git a/gnu/packages/patches/glib-tests-desktop.patch b/gnu/packages/patches/glib-tests-desktop.patch
deleted file mode 100644
index 642234ebbc..0000000000
--- a/gnu/packages/patches/glib-tests-desktop.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-Some GLib tests expect desktop things, such as an xterm, a MIME
-database, the `update-desktop-database' program, which we don't provide.
-
---- glib-2.37.1/gio/tests/appinfo.c	2013-06-07 23:44:44.000000000 +0200
-+++ glib-2.37.1/gio/tests/appinfo.c	2013-06-07 23:44:56.000000000 +0200
-@@ -497,16 +497,10 @@ main (int argc, char *argv[])
- 
-   g_test_add_func ("/appinfo/basic", test_basic);
-   g_test_add_func ("/appinfo/text", test_text);
--  g_test_add_func ("/appinfo/launch", test_launch);
-   g_test_add_func ("/appinfo/show-in", test_show_in);
-   g_test_add_func ("/appinfo/commandline", test_commandline);
--  g_test_add_func ("/appinfo/launch-context", test_launch_context);
--  g_test_add_func ("/appinfo/launch-context-signals", test_launch_context_signals);
-   g_test_add_func ("/appinfo/tryexec", test_tryexec);
--  g_test_add_func ("/appinfo/associations", test_associations);
-   g_test_add_func ("/appinfo/environment", test_environment);
--  g_test_add_func ("/appinfo/startup-wm-class", test_startup_wm_class);
--  g_test_add_func ("/appinfo/supported-types", test_supported_types);
-   g_test_add_func ("/appinfo/from-keyfile", test_from_keyfile);
- 
-   return g_test_run ();
-
---- glib-2.40.0/gio/tests/contenttype.c	2013-01-16 21:22:29.000000000 +0100
-+++ glib-2.40.0/gio/tests/contenttype.c	2013-01-16 21:22:33.000000000 +0100
-@@ -207,15 +207,6 @@ main (int argc, char *argv[])
- {
-   g_test_init (&argc, &argv, NULL);
- 
--  g_test_add_func ("/contenttype/guess", test_guess);
--  g_test_add_func ("/contenttype/unknown", test_unknown);
--  g_test_add_func ("/contenttype/subtype", test_subtype);
--  g_test_add_func ("/contenttype/list", test_list);
--  g_test_add_func ("/contenttype/executable", test_executable);
--  g_test_add_func ("/contenttype/description", test_description);
--  g_test_add_func ("/contenttype/icon", test_icon);
--  g_test_add_func ("/contenttype/symbolic-icon", test_symbolic_icon);
--  g_test_add_func ("/contenttype/tree", test_tree);
- 
-   return g_test_run ();
- }
-
-
---- glib-2.40.0/gio/tests/desktop-app-info.c	2014-03-19 22:50:45.000000000 -0500
-+++ glib-2.40.0/gio/tests/desktop-app-info.c	2014-06-30 14:27:52.543358331 -0500
-@@ -708,6 +708,8 @@
-   g_setenv ("XDG_DATA_HOME", basedir, TRUE);
-   cleanup_subdirs (basedir);
- 
-+  result = g_test_run ();
-+  return result;
-   g_test_add_func ("/desktop-app-info/delete", test_delete);
-   g_test_add_func ("/desktop-app-info/default", test_default);
-   g_test_add_func ("/desktop-app-info/fallback", test_fallback);
-
-
------------------------------
-The hunk below removes tests that depend on `gdbus-testserver.py',
-because that script depends on python-gobject.  The second hunk
-disables a test that expects /etc/machine-id in the build environment.
- 
---- glib-2.46.0/gio/tests/Makefile.in	2015-10-14 14:11:00.928809504 +0200
-+++ glib-2.46.0/gio/tests/Makefile.in	2015-10-14 14:12:13.157291092 +0200
-@@ -186,20 +186,13 @@ check_PROGRAMS = $(am__EXEEXT_16)
- @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-auth				\
- @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-bz627724				\
- @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-close-pending			\
--@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-connection			\
--@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-connection-loss			\
--@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-connection-slow			\
- @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-error				\
- @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-exit-on-close			\
- @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-export				\
--@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-introspection			\
- @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-names				\
--@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-proxy				\
- @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-proxy-threads			\
--@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-proxy-well-known-name		\
- @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-test-codegen			\
- @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-test-codegen-old			\
--@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-threading				\
- @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gmenumodel				\
- @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gnotification				\
- @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	$(NULL)
-@@ -321,8 +314,7 @@ libresourceplugin_la_LINK = $(LIBTOOL) $
- am__EXEEXT_1 =
- @OS_UNIX_TRUE@am__EXEEXT_2 = contenttype$(EXEEXT) file$(EXEEXT) \
- @OS_UNIX_TRUE@	gdbus-peer-object-manager$(EXEEXT) \
--@OS_UNIX_TRUE@	gdbus-unix-addresses$(EXEEXT) \
- @OS_UNIX_TRUE@	live-g-file$(EXEEXT) socket-address$(EXEEXT) \
- @OS_UNIX_TRUE@	stream-rw_all$(EXEEXT) unix-fd$(EXEEXT) \
- @OS_UNIX_TRUE@	unix-streams$(EXEEXT) $(am__EXEEXT_1) \
-  
-
-The test below depends on the availability /etc/passwd to dbus-daemon.
-
---- glib-2.40.0/gio/tests/gdbus-auth.c	2014-02-03 11:40:41.000000000 -0600
-+++ glib-2.40.0/gio/tests/gdbus-auth.c	2014-06-30 15:08:43.719421893 -0500
-@@ -286,6 +286,8 @@
- {
-   gint ret;
- 
-+  g_test_init (&argc, &argv, NULL);
-+  return g_test_run();
-   setlocale (LC_ALL, "C");
- 
-   temp_dbus_keyrings_setup ();
-
-
-The test dbus-appinfo is dropped as it hangs indefinitely since 2.37.5, see
-   https://launchpad.net/ubuntu/+source/glib2.0/2.37.5-1ubuntu1
-
---- glib-2.40.0/gio/tests/dbus-appinfo.c	2014-02-03 11:40:41.000000000 -0600
-+++ glib-2.40.0/gio/tests/dbus-appinfo.c	2014-06-30 14:44:08.215383632 -0500
-@@ -278,7 +278,7 @@
- {
-   g_test_init (&argc, &argv, NULL);
- 
--  g_test_add_func ("/appinfo/dbusappinfo", test_dbus_appinfo);
-+  return g_test_run();
- 
-   return session_bus_run ();
- }
-
-
-The test below fails for unknown reasons (!).
-
---- glib-2.39.1/gio/tests/gsettings.c.orig	2014-01-20 00:45:04.000000000 +0100
-+++ glib-2.39.1/gio/tests/gsettings.c	2014-01-20 00:45:10.000000000 +0100
-@@ -2489,7 +2489,6 @@ main (int argc, char *argv[])
-   g_test_add_func ("/gsettings/range/subprocess/high", test_range_high);
-   g_test_add_func ("/gsettings/range/subprocess/low", test_range_low);
-   g_test_add_func ("/gsettings/list-items", test_list_items);
--  g_test_add_func ("/gsettings/list-schemas", test_list_schemas);
-   g_test_add_func ("/gsettings/mapped", test_get_mapped);
-   g_test_add_func ("/gsettings/get-range", test_get_range);
-   g_test_add_func ("/gsettings/schema-source", test_schema_source);
-
diff --git a/gnu/packages/patches/glib-tests-gapplication.patch b/gnu/packages/patches/glib-tests-gapplication.patch
deleted file mode 100644
index 1845fcb9b8..0000000000
--- a/gnu/packages/patches/glib-tests-gapplication.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-This test has proven to be unreliable, often leading to things like this
-in gapplication.log:
-
-  PASS: gapplication 3 /gapplication/properties
-  Failed to register: The connection is closed
-  **
-  GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated)
-  ok 4 /gapplication/app-id
-  PASS: gapplication 4 /gapplication/app-id
-  ../../tap-test: line 5: 24133 Aborted                 $1 -k --tap
-  # GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated)
-  cleaning up pid 24154
-  ERROR: gapplication - missing test plan
-  ERROR: gapplication - exited with status 134 (terminated by signal 6?)
-
-See <https://bugs.debian.org/756273> and <http://bugs.gnu.org/18445>.
-
-
---- glib-2.40.2/gio/tests/gapplication.c	2014-12-03 22:34:44.566667649 +0100
-+++ glib-2.40.2/gio/tests/gapplication.c	2014-12-03 22:34:45.346674179 +0100
-@@ -685,7 +685,6 @@ main (int argc, char **argv)
- /*  g_test_add_func ("/gapplication/non-unique", test_nonunique); */
-   g_test_add_func ("/gapplication/properties", properties);
-   g_test_add_func ("/gapplication/app-id", appid);
--  g_test_add_func ("/gapplication/quit", test_quit);
-   g_test_add_func ("/gapplication/local-actions", test_local_actions);
- /*  g_test_add_func ("/gapplication/remote-actions", test_remote_actions); */
-   g_test_add_func ("/gapplication/local-command-line", test_local_command_line);
diff --git a/gnu/packages/patches/glib-tests-prlimit.patch b/gnu/packages/patches/glib-tests-prlimit.patch
deleted file mode 100644
index f2b2a61bee..0000000000
--- a/gnu/packages/patches/glib-tests-prlimit.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64 as found on
-hydra.gnu.org, and strace(1) doesn't recognize it.
-
---- glib-2.34.3/glib/tests/thread.c	2012-11-20 15:27:12.000000000 +0100
-+++ glib-2.34.3/glib/tests/thread.c	2013-03-27 14:48:31.000000000 +0100
-@@ -130,7 +130,7 @@ test_thread3 (void)
- static void
- test_thread4 (void)
- {
--#ifdef HAVE_PRLIMIT
-+#if 0
-   struct rlimit ol, nl;
-   GThread *thread;
-   GError *error;
diff --git a/gnu/packages/patches/glib-tests-timer.patch b/gnu/packages/patches/glib-tests-timer.patch
index 1ac364fcc1..e37425c0c8 100644
--- a/gnu/packages/patches/glib-tests-timer.patch
+++ b/gnu/packages/patches/glib-tests-timer.patch
@@ -2,9 +2,6 @@
   fail depending on the elapsed microseconds.  Improve rounding by adding a
   fractional bit.
 
-* The /timer/stop test fails if compiler optimizations are enabled, which they
-  are by default.  Disable that test.
-
 --- glib-2.40.0/glib/tests/timer.c	2014-03-05 08:05:42.000000000 -0600
 +++ glib-2.40.0/glib/tests/timer.c	2014-07-10 16:33:12.746862822 -0500
 @@ -35,7 +35,7 @@
@@ -16,11 +13,3 @@
  
    g_timer_destroy (timer);
  }
-@@ -204,7 +204,6 @@
-   g_test_init (&argc, &argv, NULL);
- 
-   g_test_add_func ("/timer/basic", test_timer_basic);
--  g_test_add_func ("/timer/stop", test_timer_stop);
-   g_test_add_func ("/timer/continue", test_timer_continue);
-   g_test_add_func ("/timer/reset", test_timer_reset);
-   g_test_add_func ("/timeval/add", test_timeval_add);