diff mbox series

[bug#64711,02/43] gnu: guile: Skip hanging and failing pipe tests on the Hurd.

Message ID 86a9ff0068ac21d4fa340f450f0835fa840111b2.1689690897.git.janneke@gnu.org
State New
Headers show
Series Fix builds and skip failing tests for the Hurd. | expand

Commit Message

Janneke Nieuwenhuizen July 18, 2023, 2:39 p.m. UTC
* gnu/packages/guile.scm (guile-3.0)[arguments]: When building on the Hurd,
add stage 'disable-popen.test-open-pipe' to avoid running the
open-input-pipe test (hangs) and open-output-pipe test (fails.
---
 gnu/packages/guile.scm | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Ludovic Courtès July 18, 2023, 8:18 p.m. UTC | #1
Hi,

(+Cc: Josselin.)

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

> * gnu/packages/guile.scm (guile-3.0)[arguments]: When building on the Hurd,
> add stage 'disable-popen.test-open-pipe' to avoid running the
> open-input-pipe test (hangs) and open-output-pipe test (fails.

[...]

> +                   #~((add-after 'unpack 'disable-popen.test-no-duplicate
> +                        ;; This test hangs on the Hurd.
> +                        (lambda _
> +                          (substitute* "test-suite/tests/popen.test"
> +                            (("\\(pass-if \"no duplicate\".*" all)
> +                             (string-append all "     (when (string-ci= \"GNU\" (vector-ref (uname) 0)) (throw 'unresolved))
> +"))))))

Maybe write:

  (string-append all
                 (object->string '(when …)))

Out of curiosity, is there a bug report for this one?  IIRC, the test
suite of Guile 3.0.9 + ‘guile-hurd-posix-spawn.patch’ used to pass on
glibc 2.35.

As discussed on IRC, skipping this test is not great in that it’ll
likely come to haunt us.  However, like you write, we can do that for
now in the interest of making progress :-) and remove it with a proper
fix once we have it.

So… LGTM!

Ludo’.
Janneke Nieuwenhuizen July 19, 2023, 5:23 a.m. UTC | #2
Ludovic Courtès writes:

Hi!

> (+Cc: Josselin.)
>
> Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
>
>> * gnu/packages/guile.scm (guile-3.0)[arguments]: When building on the Hurd,
>> add stage 'disable-popen.test-open-pipe' to avoid running the
>> open-input-pipe test (hangs) and open-output-pipe test (fails.
>
> [...]
>
>> +                   #~((add-after 'unpack 'disable-popen.test-no-duplicate
>> +                        ;; This test hangs on the Hurd.
>> +                        (lambda _
>> +                          (substitute* "test-suite/tests/popen.test"
>> +                            (("\\(pass-if \"no duplicate\".*" all)
>> +                             (string-append all "     (when (string-ci= \"GNU\" (vector-ref (uname) 0)) (throw 'unresolved))
>> +"))))))
>
> Maybe write:
>
>   (string-append all
>                  (object->string '(when …)))

That's a neat trick; changed to

                             (string-append
                              all
                              (object->string
                               '(when (string-ci= "GNU"
                                                  (vector-ref (uname) 0))
                                  (throw 'unresolved)))))))))

> Out of curiosity, is there a bug report for this one?

Sorry, no!  I was kinda hoping this would resolve itself somehow, I
think.  Let's make sure there's a bug report if we still need this
after Josselin's work.

>  IIRC, the test suite of Guile 3.0.9 + ‘guile-hurd-posix-spawn.patch’
> used to pass on glibc 2.35.

Ok, good to know.

> As discussed on IRC, skipping this test is not great in that it’ll
> likely come to haunt us.  However, like you write, we can do that for
> now in the interest of making progress :-) and remove it with a proper
> fix once we have it.
>
> So… LGTM!

Thanks!

Janneke
Janneke Nieuwenhuizen July 19, 2023, 6:27 a.m. UTC | #3
Ludovic Courtès writes:

Hi!

> (+Cc: Josselin.)
>
> Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
>
>> * gnu/packages/guile.scm (guile-3.0)[arguments]: When building on the Hurd,
>> add stage 'disable-popen.test-open-pipe' to avoid running the
>> open-input-pipe test (hangs) and open-output-pipe test (fails.
>
> [...]
>
>> +                   #~((add-after 'unpack 'disable-popen.test-no-duplicate
>> +                        ;; This test hangs on the Hurd.
>> +                        (lambda _
>> +                          (substitute* "test-suite/tests/popen.test"
>> +                            (("\\(pass-if \"no duplicate\".*" all)
>> +                             (string-append all "     (when (string-ci= \"GNU\" (vector-ref (uname) 0)) (throw 'unresolved))
>> +"))))))
>
> Maybe write:
>
>   (string-append all
>                  (object->string '(when …)))

That's a neat trick; changed to

                             (string-append
                              all
                              (object->string
                               '(when (string-ci= "GNU"
                                                  (vector-ref (uname) 0))
                                  (throw 'unresolved)))))))))

> Out of curiosity, is there a bug report for this one?

Sorry, no!  I was kinda hoping this would resolve itself somehow, I
think.  Let's make sure there's a bug report if we still need this
after Josselin's work.

>  IIRC, the test suite of Guile 3.0.9 + ‘guile-hurd-posix-spawn.patch’
> used to pass on glibc 2.35.

Ok, good to know.

> As discussed on IRC, skipping this test is not great in that it’ll
> likely come to haunt us.  However, like you write, we can do that for
> now in the interest of making progress :-) and remove it with a proper
> fix once we have it.
>
> So… LGTM!

Thanks!

Janneke
diff mbox series

Patch

diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 48bee600a9..ed20c1dfbc 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -378,6 +378,15 @@  (define-public guile-3.0
                                (search-patch "guile-hurd-posix-spawn.patch")))
                           (invoke "patch" "--force" "-p1" "-i" patch))))
                    #~())
+            #$@(if (system-hurd?)
+                   #~((add-after 'unpack 'disable-popen.test-no-duplicate
+                        ;; This test hangs on the Hurd.
+                        (lambda _
+                          (substitute* "test-suite/tests/popen.test"
+                            (("\\(pass-if \"no duplicate\".*" all)
+                             (string-append all "     (when (string-ci= \"GNU\" (vector-ref (uname) 0)) (throw 'unresolved))
+"))))))
+                   #~())
             #$@(if (target-ppc32?)
                    #~((add-after 'unpack 'adjust-bootstrap-flags
                         (lambda _