GNU bug report logs - #74503
Test issues in "make check"

Previous Next

Package: coreutils;

Reported by: Gordon Steemson <gsteemso <at> gmail.com>

Date: Sun, 24 Nov 2024 05:36:01 UTC

Severity: normal

Done: Pádraig Brady <P <at> draigBrady.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 74503 in the body.
You can then email your comments to 74503 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-coreutils <at> gnu.org:
bug#74503; Package coreutils. (Sun, 24 Nov 2024 05:36:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Gordon Steemson <gsteemso <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-coreutils <at> gnu.org. (Sun, 24 Nov 2024 05:36:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Gordon Steemson <gsteemso <at> gmail.com>
To: bug-coreutils <at> gnu.org
Subject: Test issues in "make check"
Date: Sat, 23 Nov 2024 21:34:47 -0800
Setup:  Coreutils package, v. 9.5; Power Mac G5 running OS 10.5.8 (Darwin 9.8.0).

When running `make check`, I noticed the following two problems.

- tests/ls/dired.sh can’t cope with the underlying file system stealthily applying normalization to the Unicode encoding, so I was presented with a failed test and an error message complaining that “2á != 2á”.

- tests/misc/tee.sh seems to be missing a pipe.  Without adding “ |” to the end of line 99, the test freezes solid because it waits forever for input that will never come.  I'm baffled that it works for anyone else... perhaps some bizarre quirk of shell syntax causes the output of one line to automagically become the input of the next, if conditions are correct?  The mechanism by which it is somehow accidentally working for other people is beyond my knowledge of shell scripting.

It seems to be working other than these.  Several of the tests do deem themselves inapplicable for reasons that don't appear to match reality, such as tests/csplit/csplit-heap.sh believing that `ulimit -v` is absent when it is present; but as those are not actual test _failures_, I am disinclined to spend time digging into them unless someone specifically asks me to.

Gordon Steemson



Information forwarded to bug-coreutils <at> gnu.org:
bug#74503; Package coreutils. (Sun, 24 Nov 2024 08:36:01 GMT) Full text and rfc822 format available.

Message #8 received at 74503 <at> debbugs.gnu.org (full text, mbox):

From: Bernhard Voelker <mail <at> bernhard-voelker.de>
To: Gordon Steemson <gsteemso <at> gmail.com>, 74503 <at> debbugs.gnu.org
Subject: Re: bug#74503: Test issues in "make check"
Date: Sun, 24 Nov 2024 09:34:53 +0100
On 11/24/24 06:34, Gordon Steemson wrote:
> Setup:  Coreutils package, v. 9.5; Power Mac G5 running OS 10.5.8 (Darwin 9.8.0).
>
> When running `make check`, I noticed the following two problems.
>
> - tests/ls/dired.sh can’t cope with the underlying file system stealthily applying normalization to the Unicode encoding, so I was presented with a failed test and an error message complaining that “2á != 2á”.
>
> - tests/misc/tee.sh seems to be missing a pipe.  Without adding “ |” to the end of line 99, the test freezes solid because it waits forever for input that will never come.  I'm baffled that it works for anyone else... perhaps some bizarre quirk of shell syntax causes the output of one line to automagically become the input of the next, if conditions are correct?  The mechanism by which it is somehow accidentally working for other people is beyond my knowledge of shell scripting.

    97	dd count=20 bs=100K if=/dev/zero status=none |
    98	{
    99	  dd count=0 oflag=nonblock status=none
   100	  tee || { cleanup_; touch tee.fail; }
   101	} >fifo

Both commands between the { ... }, i.e., dd(1) on line 99 and tee(1),
are consuming the input from the dd(1) command on line 97.

> It seems to be working other than these.  Several of the tests do deem themselves inapplicable for reasons that don't appear to match reality, such as tests/csplit/csplit-heap.sh believing that `ulimit -v` is absent when it is present; but as those are not actual test _failures_, I am disinclined to spend time digging into them unless someone specifically asks me to.
>
> Gordon Steemson

Thanks for the reports, but please also provide the original testsuite.log as
'make check' instructs at the end of the output.  We need it to analyze further.

Have a nice day,
Berny






Information forwarded to bug-coreutils <at> gnu.org:
bug#74503; Package coreutils. (Sun, 24 Nov 2024 13:12:01 GMT) Full text and rfc822 format available.

Message #11 received at 74503 <at> debbugs.gnu.org (full text, mbox):

From: Pádraig Brady <P <at> draigBrady.com>
To: Gordon Steemson <gsteemso <at> gmail.com>, 74503 <at> debbugs.gnu.org
Subject: Re: bug#74503: Test issues in "make check"
Date: Sun, 24 Nov 2024 13:09:52 +0000
On 24/11/2024 05:34, Gordon Steemson wrote:
> Setup:  Coreutils package, v. 9.5; Power Mac G5 running OS 10.5.8 (Darwin 9.8.0).
> 
> When running `make check`, I noticed the following two problems.
> 
> - tests/ls/dired.sh can’t cope with the underlying file system stealthily applying normalization to the Unicode encoding, so I was presented with a failed test and an error message complaining that “2á != 2á”.

I pushed a fix to use æ instead, as that does not have a separate decomposed form.

> - tests/misc/tee.sh seems to be missing a pipe.  Without adding “ |” to the end of line 99, the test freezes solid because it waits forever for input that will never come.  I'm baffled that it works for anyone else... perhaps some bizarre quirk of shell syntax causes the output of one line to automagically become the input of the next, if conditions are correct?  The mechanism by which it is somehow accidentally working for other people is beyond my knowledge of shell scripting.

The script is OK I think. darwin 9 is old (nearly 20 years old now!),
so perhaps its poll vs select behavior is divergent enough with more recent macOS to be problematic.
Could you try with this adjustment to the code.
You can run that test in isolation with: make TESTS=tests/misc/tee.sh SUBDIRS=. check

diff --git a/src/iopoll.c b/src/iopoll.c
index 8e5c92dd8..9adc51bb2 100644
--- a/src/iopoll.c
+++ b/src/iopoll.c
@@ -23,7 +23,7 @@
    a readable event).  Also use poll(2) on systems we know work
    and/or are already using poll (linux).  */

-#if defined _AIX || defined __sun || defined __APPLE__ || \
+#if defined _AIX || defined __sun || \
     defined __linux__ || defined __ANDROID__
 # define IOPOLL_USES_POLL 1
   /* Check we've not enabled gnulib's poll module

cheers,
Pádraig




Information forwarded to bug-coreutils <at> gnu.org:
bug#74503; Package coreutils. (Tue, 26 Nov 2024 04:29:02 GMT) Full text and rfc822 format available.

Message #14 received at 74503 <at> debbugs.gnu.org (full text, mbox):

From: Gordon Steemson <gsteemso <at> gmail.com>
To: Pádraig Brady <P <at> draigbrady.com>
Cc: 74503 <at> debbugs.gnu.org
Subject: Re: bug#74503: Test issues in "make check"
Date: Mon, 25 Nov 2024 20:27:17 -0800
Hello again,

> On Nov 24, 2024, at 5:10 AM, Pádraig Brady <P <at> draigbrady.com> wrote:
> 
> On 24/11/2024 05:34, Gordon Steemson wrote:
>> Setup:  [...]

I should also have added that the tests were running under the latest Bash 5.2.37 rather than the stock Bash 3.2, though fortunately it doesn't seem to have mattered.

>>  an error message complaining that “2á != 2á”.
> 
> I pushed a fix to use æ instead, as that does not have a separate decomposed form.

I can confirm that works.

>> - tests/misc/tee.sh [...]
> 
> The script is OK I think. darwin 9 is old (nearly 20 years old now!),
> so perhaps its poll vs select behavior is divergent enough with more recent macOS to be problematic.
> Could you try with this adjustment to the code.
> [...]

Got to admit I never would have guessed that one in a million years, but you appear to have been exactly right – your proposed tweak worked perfectly.

Thank you -- both 'make check' issues I encountered are now resolved.

Gordon S.



Reply sent to Pádraig Brady <P <at> draigBrady.com>:
You have taken responsibility. (Tue, 26 Nov 2024 15:07:02 GMT) Full text and rfc822 format available.

Notification sent to Gordon Steemson <gsteemso <at> gmail.com>:
bug acknowledged by developer. (Tue, 26 Nov 2024 15:07:02 GMT) Full text and rfc822 format available.

Message #19 received at 74503-done <at> debbugs.gnu.org (full text, mbox):

From: Pádraig Brady <P <at> draigBrady.com>
To: Gordon Steemson <gsteemso <at> gmail.com>
Cc: 74503-done <at> debbugs.gnu.org
Subject: Re: bug#74503: Test issues in "make check"
Date: Tue, 26 Nov 2024 15:05:09 +0000
On 26/11/2024 04:27, Gordon Steemson wrote:
> Hello again,
> 
>> On Nov 24, 2024, at 5:10 AM, Pádraig Brady <P <at> draigbrady.com> wrote:
>>
>> On 24/11/2024 05:34, Gordon Steemson wrote:
>>> Setup:  [...]
> 
> I should also have added that the tests were running under the latest Bash 5.2.37 rather than the stock Bash 3.2, though fortunately it doesn't seem to have mattered.
> 
>>>   an error message complaining that “2á != 2á”.
>>
>> I pushed a fix to use æ instead, as that does not have a separate decomposed form.
> 
> I can confirm that works.
> 
>>> - tests/misc/tee.sh [...]
>>
>> The script is OK I think. darwin 9 is old (nearly 20 years old now!),
>> so perhaps its poll vs select behavior is divergent enough with more recent macOS to be problematic.
>> Could you try with this adjustment to the code.
>> [...]
> 
> Got to admit I never would have guessed that one in a million years, but you appear to have been exactly right – your proposed tweak worked perfectly.
> 
> Thank you -- both 'make check' issues I encountered are now resolved.

Thanks for the confirmation.
I'll apply the following to address this.
Marking this as done.

thanks,
Pádraig

commit 4a4377f8697385b0676d08b51d10694afca1d9bf (HEAD -> master)Author: Pádraig Brady <P <at> draigBrady.com>
Date:   Tue Nov 26 14:04:32 2024 +0000

    tail,tee: fix broken pipe detection on darwin 9

    * src/iopoll.c (): Restrict use of poll() on macOS
    to >= 11 (darwin 20), as it was seen to fail on macOS 10.5.
    Fixes https://bugs.gnu.org/74503

diff --git a/src/iopoll.c b/src/iopoll.c
index 8e5c92dd8..174048639 100644
--- a/src/iopoll.c
+++ b/src/iopoll.c
@@ -21,10 +21,11 @@
 /* poll(2) is needed on AIX (where 'select' gives a readable
    event immediately) and Solaris (where 'select' never gave
    a readable event).  Also use poll(2) on systems we know work
-   and/or are already using poll (linux).  */
-
-#if defined _AIX || defined __sun || defined __APPLE__ || \
-    defined __linux__ || defined __ANDROID__
+   and/or are already using poll (linux).  On macOS we know poll()
+   doesn't work on 10.5, while it does work on >= 11 at least. */
+#if defined _AIX || defined __sun \
+    || defined __linux__ || defined __ANDROID__ \
+    || __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 110000
 # define IOPOLL_USES_POLL 1
   /* Check we've not enabled gnulib's poll module
      as that will emulate poll() in a way not





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 25 Dec 2024 12:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 176 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.