On 28/06/15 23:13, Pádraig Brady wrote:
> On 28/06/15 21:20, Assaf Gordon wrote:
>> Hello Pádraig,
>>
>> On 06/28/2015 01:04 AM, Pádraig Brady wrote:
>>> We plan to release coreutils-8.24 in about a week, so any testing
>>> you can do on various different systems between now and then
>>> would be most welcome.
>>>
>>> You can download the coreutils snapshot in xz format (5.4 MB) from:
>>>    http://pixelbeat.org/cu/coreutils-ss.tar.xz
>>
>> Few failures on OpenSolaris, attached logs from 5.10 and 5.11, i386 and 
>> sparc.
>>
>> On 5.11 (both i386 and sparc) many failures seem related shell usage (e.g. 
>> "local: not found", hinting and bash-ism  and "expr: synyax error").
>>
>> On the sparc machine, the interactive shell is bash but "/bin/sh" is ksh:

Note in tests/init.sh we make an attempt to find a usable shell.
The order is '/bin/sh bash dash zsh pdksh'
Though I see no explicit test for "local" in that code.
I wonder should we add this to the top of gl_shell_test_script_:
  f() { local v=1; }; f || exit 1
which should at least stop early, indicating no appropriate shell?
The "expr: syntax error" is only a symptom of the "local" issue.
On a solaris 10 system with bash here I have no shell issues.

>>      > ls -l /bin/sh
>>      lrwxrwxrwx   1 root     root          13 Jan 22 14:36 /bin/sh -> 
>> sparcv7/ksh93
>>
>> Also,
>>
>> Sadly numfmt fails on all of them, with something like this:
>>      $ ./src/numfmt --to=si 4000
>>      0K
>>
>> Using debug gives:
>>      $ ./src/numfmt ---debug --to=si 2000
>>      setting Auto-Padding to 0 characters
>>      simple_strtod_human:
>>        input string: ‘2000’
>>        locale decimal-point: ‘.’
>>        MAX_UNSCALED_DIGITS: 18
>>        parsed numeric value: 2000.000000
>>        input precision = 0
>>        suffix power=1000^0 = 1.000000
>>        returning value: 2000.000000 (2000)
>>      double_to_human:
>>        scaled value to 2.000000 * 1000 ^ 1
>>        after rounding, value=2.000000 * 1000 ^ 1
>>        returning value: ‘NaNK’
>>      formatting output:
>>        value: 2000.000000
>>        humanized: ‘NaNK’
>>      NaNK
>>
>> Which hints the problem is in numfmt.c:797, perhaps the system's "snprintf" 
>> can't handle the format "%.*Lf" correctly with "long double" ?
> 
> Ugh right, I noted that issue and possible solutions at:
> http://lists.gnu.org/archive/html/coreutils/2014-11/msg00052.html

FWIW numfmt tests are passing on:
SunOS login 5.10 Generic_150400-17 sun4v sparc SUNW,SPARC-Enterprise-T5220

BTW I noticed a test race on this slower system
which is fixed by the attached.

thanks,
Pádraig.
From fbe0802085e239a324834ca11ad0a4062d48489b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <[email protected]>
Date: Tue, 30 Jun 2015 03:51:28 +0100
Subject: [PATCH] tests: fix false failure on slower systems

* tests/dd/stats.sh: Wait 20s for dd to write 250MB through a fifo,
rather than 10s for 500MB.  The failure was seen often on
a lightly loaded SPARC-Enterprise-T5220 running Solaris 10.
---
 tests/dd/stats.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/dd/stats.sh b/tests/dd/stats.sh
index e906c74..a82c66d 100755
--- a/tests/dd/stats.sh
+++ b/tests/dd/stats.sh
@@ -39,7 +39,7 @@ cleanup_()
 for open in '' '1'; do
   # Run dd with the fullblock iflag to avoid short reads
   # which can be triggered by reception of signals
-  dd iflag=fullblock if=/dev/zero of=fifo count=100 bs=5000000 2>err & pid=$!
+  dd iflag=fullblock if=/dev/zero of=fifo count=50 bs=5000000 2>err & pid=$!
 
   # Note if we sleep here we give dd a chance to exec and block on open.
   # Otherwise we're probably testing SIG_IGN in the forked shell or early dd.
@@ -47,7 +47,7 @@ for open in '' '1'; do
 
   # dd will block on open until fifo is opened for reading.
   # Timeout in case dd goes away erroneously which we check for below.
-  timeout 10 sh -c 'wc -c < fifo > nwritten' & pid2=$!
+  timeout 20 sh -c 'wc -c < fifo > nwritten' & pid2=$!
 
   # Send lots of signals immediately to ensure dd not killed due
   # to race setting handler, or blocking on open of fifo.
@@ -59,7 +59,7 @@ for open in '' '1'; do
   wait
 
   # Ensure all data processed and at least last status written
-  grep '500000000 bytes .* copied' err || { cat err; fail=1; }
+  grep '250000000 bytes .* copied' err || { cat err; fail=1; }
 done
 
 progress_output()
-- 
2.4.1

Reply via email to