On Sun, Apr 03, 2016 at 10:30:30AM +0800, 宋文武 wrote: > * gnu/packages/glib.scm (glib)[sources]: Remove glib-tests-desktop.patch, > glib-tests-prlimit.patch and glib-tests-gapplicatiotn.patch. > [arguments]: Add 'disable-falling-tests' phase. > * gnu/packages/patches/glib-tests-timer.patch: Adjust accordingly. > * gnu/packages/patches/glib-tests-desktop.patch, > gnu/packages/patches/glib-tests-gapplication.patch, > gnu/packages/patches/glib-tests-prlimit.patch: Remove files. > * gnu-system.am (dist_patch_DATA): Remove them. > --- > gnu-system.am | 3 - > gnu/packages/glib.scm | 75 ++++++++--- > gnu/packages/patches/glib-tests-desktop.patch | 138 --------------------- > gnu/packages/patches/glib-tests-gapplication.patch | 28 ----- > gnu/packages/patches/glib-tests-prlimit.patch | 14 --- > gnu/packages/patches/glib-tests-timer.patch | 11 -- > 6 files changed, 61 insertions(+), 208 deletions(-) > delete mode 100644 gnu/packages/patches/glib-tests-desktop.patch > delete mode 100644 gnu/packages/patches/glib-tests-gapplication.patch > delete mode 100644 gnu/packages/patches/glib-tests-prlimit.patch > > diff --git a/gnu-system.am b/gnu-system.am > index 293bda3..0930455 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 2b90c12..71d2082 100644 > --- a/gnu/packages/glib.scm > +++ b/gnu/packages/glib.scm > @@ -139,10 +139,7 @@ shared NFS home directories.") > (sha256 > (base32 > "1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss")) > - (patches (list (search-patch "glib-tests-desktop.patch") > - (search-patch "glib-tests-prlimit.patch") > - (search-patch "glib-tests-timer.patch") > - (search-patch "glib-tests-gapplication.patch"))))) > + (patches (list (search-patch "glib-tests-timer.patch"))))) > (build-system gnu-build-system) > (outputs '("out" ; everything > "bin" ; glib-mkenums, gtester, etc.; depends on Python > @@ -177,16 +174,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: > + ;; > + ;; > + "/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 642234e..0000000 > --- 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 1845fcb..0000000 > --- 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 and . > - > - > ---- 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 f2b2a61..0000000 > --- 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 1ac364f..e37425c 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); > -- > 2.6.3 > There are a lot of tests here. From trying to follow between the patches and the substitutions it looks like you've also gone through and only disabled the tests that are currently failing, not the ones that were failing when the patches were written. -- Efraim Flashner אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted