From e65647119e4791580ef50869d35be29d4010c6bb Mon Sep 17 00:00:00 2001
Message-Id: <e65647119e4791580ef50869d35be29d4010c6bb.1689841075.git.janneke@gnu.org>
From: Janneke Nieuwenhuizen <janneke@gnu.org>
Date: Tue, 13 Jun 2023 10:58:03 +0200
Subject: [PATCH] gnu: glib: Disable hanging and failing tests for the Hurd.

* gnu/packages/glib.scm (glib)[arguments]: When building for the Hurd,
in phase `disable-failing-tests', neutralize 20 hanging tests, and 37 more
failing tests.
---
 gnu/packages/glib.scm | 104 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 103 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index e988e8dc87..a0b85b15d1 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -14,7 +14,7 @@
 ;;; Copyright © 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
-;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020 Arthur Margerit <ruhtra.mar@gmail.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
@@ -285,6 +285,108 @@ (define glib
                           (string-append "//" all "\n"))
                          (("^  g_assert_cmpfloat \\(elapsed, ==.*" all)
                           (string-append "//" all "\n"))))
+                     '())
+              #$@(if (system-hurd?)
+                     '((with-directory-excursion "gio/tests"
+                         ;; TIMEOUT after 600s
+                         (substitute* '("actions.c"
+                                        "dbus-appinfo.c"
+                                        "debugcontroller.c"
+                                        "gdbus-bz627724.c"
+                                        "gdbus-connection-slow.c"
+                                        "gdbus-exit-on-close.c"
+                                        "gdbus-export.c"
+                                        "gdbus-introspection.c"
+                                        "gdbus-method-invocation.c"
+                                        "gdbus-non-socket.c"
+                                        "gdbus-proxy-threads.c"
+                                        "gdbus-proxy-unique-name.c"
+                                        "gdbus-proxy-well-known-name.c"
+                                        "gdbus-proxy.c"
+                                        "gdbus-test-codegen.c"
+                                        "gmenumodel.c"
+                                        "gnotification.c"
+                                        "stream-rw_all.c")
+                           (("return (g_test_run|session_bus_run)" all call)
+                            (string-append "return 0;// " call))
+                           ((" (ret|rtv|result) = (g_test_run|session_bus_run)"
+                             all var call)
+                            (string-append " " var " = 0;// " call))
+                           (("[ \t]*g_test_add_func.*;") ""))
+
+                         ;; commenting-out g_assert, g_test_add_func, g_test_run
+                         ;; does not help; special-case short-circuit.
+                         (substitute* "gdbus-connection-loss.c" ;; TODO?
+                           (("  gchar \\*path;.*" all)
+                            (string-append all "  return 0;\n")))
+
+                         ;; FAIL
+                         (substitute* '("appmonitor.c"
+                                        "async-splice-output-stream.c"
+                                        "autoptr.c"
+                                        "contexts.c"       
+                                        "converter-stream.c"
+                                        "file.c"
+                                        "g-file-info.c"
+                                        "g-file.c"
+                                        "g-icon.c"
+                                        "gapplication.c"
+                                        "gdbus-connection-flush.c"
+                                        "gdbus-connection.c"
+                                        "gdbus-names.c"    
+                                        "gdbus-server-auth.c"
+                                        "gsocketclient-slow.c"
+                                        "gsubprocess.c"
+                                        "io-stream.c"
+                                        "live-g-file.c"
+                                        "memory-monitor.c" 
+                                        "mimeapps.c"
+                                        "network-monitor-race.c"
+                                        "network-monitor.c"
+                                        "pollable.c"
+                                        "power-profile-monitor.c"
+                                        "readwrite.c"
+                                        "resources.c"
+                                        "socket-service.c"
+                                        "socket.c"
+                                        "tls-bindings.c"
+                                        "tls-certificate.c"
+                                        "tls-database.c"
+                                        "trash.c"
+                                        "vfs.c")
+                           (("return (g_test_run|session_bus_run)" all call)
+                            (string-append "return 0;// " call))
+                           ((" (ret|rtv|result) = (g_test_run|session_bus_run)"
+                             all var call)
+                            (string-append " " var " = 0;// " call))
+                           (("[ \t]*g_test_add_func.*;") ""))
+
+                         ;; commenting-out g_test_add_func, g_test_run does
+                         ;; not help; special-case short-circuit.
+                         (substitute* "gsettings.c"
+                           (("#ifdef TEST_LOCALE_PATH" all)
+                            (string-append "  return 0;\n" all)))
+
+                         ;; commenting-out g_test_add_func, ;; g_test_run does
+                         ;; not help; special-case short-circuit.
+                         (substitute* "proxy-test.c"
+                           (("  gint result.*;" all)
+                            (string-append all "  return 0;\n")))
+
+                         ;; commenting-out g_test_add_func, g_test_run
+                         ;; does not help; special-case short-circuit.
+                         (substitute* "volumemonitor.c"
+                           (("  gboolean ret;" all)
+                            (string-append all "  return 0;\n"))))
+
+                       (with-directory-excursion "glib/tests"
+                         ;; TIMEOUT after 600s
+                         (substitute* "thread-pool.c"
+                           (("[ \t]*g_test_add_func.*;") ""))
+
+                         ;; FAIL
+                         (substitute* "fileutils.c"
+                           (("[ \t]*g_test_add_func.*;") ""))))
                      '())))
           ;; Python references are not being patched in patch-phase of build,
           ;; despite using python-wrapper as input. So we patch them manually.

base-commit: c5a189d2abdbfe4c8dfeef764e3be055948b5c91
-- 
2.40.1

