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 21:00:05 +0300	[thread overview]
Message-ID: <20160403180005.GG3620@debian-netbook> (raw)
In-Reply-To: <1459650631-13117-3-git-send-email-iyzsong@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 17998 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
> 

I just applied the first three patches and glib failed to build, with
the following errors from the test phase:

ERROR: gapplication - too few tests run (expected 12, got 4)
ERROR: gapplication - exited with status 139 (terminated by signal 11?)

Unfortunately I didn't tell it to keep the output of the build so I
can't attach the test-suite.log file. It would be best if glib built
with this commit, just in case.

-- 
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 18:00 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
2016-04-03 18:00   ` Efraim Flashner [this message]
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=20160403180005.GG3620@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).