unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Efraim Flashner <efraim@flashner.co.il>
To: 宋文武 <iyzsong@gmail.com>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH 3/4] gnu: glib: Disable tests in build phases instead of patches.
Date: Sun, 3 Apr 2016 20:11:50 +0300	[thread overview]
Message-ID: <20160403171150.GF3620@debian-netbook> (raw)
In-Reply-To: <1459650631-13117-3-git-send-email-iyzsong@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 17829 bytes --]

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:
> +                       ;;  <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 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 <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 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   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  parent reply	other threads:[~2016-04-03 17:11 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-03  2:30 [PATCH 1/4] gnu: glib: Use modify-phases syntax 宋文武
2016-04-03  2:30 ` [PATCH 2/4] gnu: glib: Drop glib-tests-homedir.patch 宋文武
2016-04-03 10:09   ` Efraim Flashner
2016-04-03 17:00   ` Efraim Flashner
2016-04-03  2:30 ` [PATCH 3/4] gnu: glib: Disable tests in build phases instead of patches 宋文武
2016-04-03  2:55   ` 宋文武
2016-04-03 17:03     ` Efraim Flashner
2016-04-05  9:52       ` Ludovic Courtès
2016-04-03 17:11   ` Efraim Flashner [this message]
2016-04-03 18:00   ` Efraim Flashner
2016-04-04  5:26     ` 宋文武
2016-04-05 11:48       ` Efraim Flashner
2016-04-19 12:25         ` 宋文武
2016-04-03  2:30 ` [PATCH 4/4] gnu: glib: Update to 2.48.0 宋文武
2016-04-03 16:56 ` [PATCH 1/4] gnu: glib: Use modify-phases syntax Efraim Flashner
2016-04-07 12:03 ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160403171150.GF3620@debian-netbook \
    --to=efraim@flashner.co.il \
    --cc=guix-devel@gnu.org \
    --cc=iyzsong@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).