guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 3/4] gnu: glib: Disable tests in build phases instead of patc


From: Efraim Flashner
Subject: Re: [PATCH 3/4] gnu: glib: Disable tests in build phases instead of patches.
Date: Sun, 3 Apr 2016 20:11:50 +0300
User-agent: Mutt/1.5.24 (2015-08-30)

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             
>         \
> address@hidden@@OS_UNIX_TRUE@ gdbus-connection                        \
> address@hidden@@OS_UNIX_TRUE@ gdbus-connection-loss                   \
> address@hidden@@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                    
>         \
> address@hidden@@OS_UNIX_TRUE@ gdbus-introspection                     \
> - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@       gdbus-names                     
>         \
> address@hidden@@OS_UNIX_TRUE@ gdbus-proxy                             \
> - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@       gdbus-proxy-threads             
>         \
> address@hidden@@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          
>         \
> address@hidden@@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 =
> - @address@hidden = contenttype$(EXEEXT) file$(EXEEXT) \
> - @OS_UNIX_TRUE@      gdbus-peer-object-manager$(EXEEXT) \
> address@hidden@       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   <address@hidden>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]