Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-11 Thread Pádraig Brady

On 02/08/2013 02:53 PM, Bernhard Voelker wrote:

Shouldn't check-root be limited to SUBDIRS=. in tests/local.mk?

check-root:
   - $(MAKE) check TESTS='$(root_tests)'
   + $(MAKE) check TESTS='$(root_tests)' SUBDIRS=.


Ok to submit this in your name?

commit a2702f0f435032a269a3ef1202c3a89b8f2166cc
Author: Bernhard Voelker m...@bernhard-voelker.de
Date:   Mon Feb 11 09:48:31 2013 +

maint: avoid running check-root tests in gnulib

* tests/local.mk (check-root): Restrict to SUBDIRS=. as traversing
into gnulib-tests induces a false failure.

diff --git a/tests/local.mk b/tests/local.mk
index 83b4ab9..9be1970 100644
--- a/tests/local.mk
+++ b/tests/local.mk
@@ -137,7 +137,7 @@ all_root_tests =\
 ALL_RECURSIVE_TARGETS += check-root
 .PHONY: check-root
 check-root:
-   $(MAKE) check TESTS='$(root_tests)'
+   $(MAKE) check TESTS='$(root_tests)' SUBDIRS=.

 # Do not choose a name that is a shell keyword like 'if', or a
 # commonly-used utility like 'cat' or 'test', as the name of a test.



Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-11 Thread Bernhard Voelker
On 02/11/2013 10:51 AM, Pádraig Brady wrote:
 On 02/08/2013 02:53 PM, Bernhard Voelker wrote:
 Shouldn't check-root be limited to SUBDIRS=. in tests/local.mk?

 check-root:
- $(MAKE) check TESTS='$(root_tests)'
+ $(MAKE) check TESTS='$(root_tests)' SUBDIRS=.
 
 Ok to submit this in your name?

Yes, of course.
Thanks for wrapping it into a proper patch.

Have a nice day,
Berny



Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-09 Thread Bernhard Voelker
On 02/09/2013 05:52 AM, Pádraig Brady wrote:
 On 02/08/2013 05:09 PM, Bernhard Voelker wrote:
 On February 8, 2013 at 5:30 PM Pádraig Brady p...@draigbrady.com wrote:
 On 02/08/2013 02:53 PM, Bernhard Voelker wrote:
 On February 7, 2013 at 8:57 PM Pádraig Brady p...@draigbrady.com wrote:
 * SLES-10.3 (i586):
 gcc (GCC) 4.1.2 20070115 (SUSE Linux)

 FAIL: tests/tail-2/inotify-rotate.sh
   NFS issue during cleanup_

 I think I see what's happening.  With /bin/sh - bash,
 bash will create a redundant subshell for the :  timeout ... construct.
 I.E. this prints bash rather than timeout:
 
:  timeout 5 sleep 1  readlink /proc/$!/exe
 
 So if you had dash installed, this would probably work:
 
 make check SHELL=dash TESTS=tests/tail-2/inotify-rotate.sh \
SUBDIRS=. VERBOSE=yes RUN_EXPENSIVE_TESTS=yes

There's no dash installed, unfortunately.

 The reason the subshell causes an issue is that it won't
 auto send the SIGHUP to timeout when it gets a SIGTERM
 as it's a non interactive script, and so the timeout
 processes and thus the tail processes accessing the files
 hang around until the 40s timeout.
 
 In any case the attached should avoid the subshell
 and hopefully fix the issue.

Bingo!
Now, the test passes. ;-)
Thanks!

Have a nice day,
Berny



Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-09 Thread Pádraig Brady

On 02/09/2013 01:16 PM, Bernhard Voelker wrote:

Bingo!
Now, the test passes. ;-)
Thanks!


Great, thanks for confirming that.
I'll push these 2 test fixups so.

thanks,
Pádraig.



Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-08 Thread Bernhard Voelker
On February 7, 2013 at 8:57 PM Pádraig Brady p...@draigbrady.com wrote:
 coreutils snapshot:
http://pixelbeat.org/cu/coreutils-8.20.113-1f1f4.tar.xz

Hi Padraig,

* SLES-10.4 (x86_64):
  gcc (GCC) 4.1.2 20070115 (SUSE Linux)

  FAIL: tests/misc/numfmt.pl

  1 of 477 tests failed
  (61 tests were not run)


* SLES-10.3 (i586):
  gcc (GCC) 4.1.2 20070115 (SUSE Linux)

  FAIL: tests/tail-2/inotify-rotate.sh
NFS issue during cleanup_
reproduced: 2x out of 2 tries.

  FAIL: tests/misc/numfmt.log
same as above

  2 of 468 tests failed
  (70 tests were not run)

* openSUSE-12.2 (x86_64):
  gcc (GCC) 4.1.2 20070115 (SUSE Linux)

  All 501 tests passed
  (37 tests were not run)

  BUT 1 gnulib test failed (2x out of 2 times):

  FAIL: test-utimensat (exit: 134)
  test-lutimens.h:64: assertion failed


* Regarding check-root tests (run on the above openSUSE system):

As running them in the gnulib-tests directory doesn't work:

  make  check-TESTS
  make[6]: Entering directory
`/home/berny/test/coreutils-8.20.113-1f1f4/gnulib-tests'
  make[7]: Entering directory
`/home/berny/test/coreutils-8.20.113-1f1f4/gnulib-tests'
  make[7]: *** No rule to make target `tests/chown/basic.sh.log', needed by
`test-suite.log'.
  make[7]: *** No rule to make target `tests/cp/cp-a-selinux.sh.log', needed by
`test-suite.log'.
  ...

Shouldn't check-root be limited to SUBDIRS=. in tests/local.mk?

   check-root:
  - $(MAKE) check TESTS='$(root_tests)'
  + $(MAKE) check TESTS='$(root_tests)' SUBDIRS=.


Have a nice day,
Berny

SLES-10.4.x86_64.tar.xz
Description: Binary data


SLES-10.3.i586.tar.xz
Description: Binary data


Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-08 Thread Assaf Gordon
Hello Bernhard,

Bernhard Voelker wrote, On 02/08/2013 09:53 AM:
 On February 7, 2013 at 8:57 PM Pádraig Brady p...@draigbrady.com wrote:
 coreutils snapshot:
http://pixelbeat.org/cu/coreutils-8.20.113-1f1f4.tar.xz
 
 Hi Padraig,
 
 * SLES-10.4 (x86_64):
   gcc (GCC) 4.1.2 20070115 (SUSE Linux)
 
   FAIL: tests/misc/numfmt.pl
 

Regarding the 'numfmt' failures - these are locale-related problems (in both 
cases).
Perhaps I wrote the tests incorrectly.

May I ask you to try the followings on those systems, and send the output (or 
compare with this expected output):
  
 # The french locale is used for locale testing - if it doesn't exist, 
those tests should not run at all.
 $ locale -a | grep -i fr
 fr_FR.utf8

 # First try without locale (this is test 'lcl-grp-1' which succeeded) 
 $ LC_ALL=C ./src/numfmt --debug --grouping  --from=si 7M
 ./src/numfmt: grouping has no effect in this locale
 700

 # Try grouping, the expected output should have a space as 
thousands-separator
 # this is test lcl-grp-3 which failed, on your system the result was 
700
 $ LC_ALL=fr_FR.utf8 ./src/numfmt --debug --grouping  --from=si 7M
 7 000 000
 

Thanks!
 -gordon




Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-08 Thread Bernhard Voelker
On February 8, 2013 at 4:13 PM Assaf Gordon assafgor...@gmail.com wrote:
 Regarding the 'numfmt' failures - these are locale-related problems (in both
 cases).
 Perhaps I wrote the tests incorrectly.

 May I ask you to try the followings on those systems, and send the output (or
 compare with this expected output):
 
  # The french locale is used for locale testing - if it doesn't exist,
 those tests should not run at all.
  $ locale -a | grep -i fr
  fr_FR.utf8

Sure:

$ locale -a | grep -i fr
br_FR
br_FR@euro
br_FR.utf8
fr_BE
fr_BE@euro
fr_BE.utf8
fr_CA
fr_CA.utf8
fr_CH
fr_CH.utf8
fr_FR
fr_FR@euro
fr_FR.utf8
fr_LU
fr_LU@euro
fr_LU.utf8
oc_FR
oc_FR.utf8

  # First try without locale (this is test 'lcl-grp-1' which succeeded)
  $ LC_ALL=C ./src/numfmt --debug --grouping  --from=si 7M
  ./src/numfmt: grouping has no effect in this locale
  700

 LC_ALL=C ./src/numfmt --debug --grouping  --from=si 7M
./src/numfmt: grouping has no effect in this locale
700

  # Try grouping, the expected output should have a space as
 thousands-separator
  # this is test lcl-grp-3 which failed, on your system the result was
 700
  $ LC_ALL=fr_FR.utf8 ./src/numfmt --debug --grouping  --from=si 7M
  7 000 000

 LC_ALL=fr_FR.utf8 ./src/numfmt --debug --grouping  --from=si 7M
./src/numfmt: grouping has no effect in this locale
700

Have a nice day,
Berny



Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-08 Thread Pádraig Brady

On 02/08/2013 03:47 PM, Bernhard Voelker wrote:

On February 8, 2013 at 4:13 PM Assaf Gordon assafgor...@gmail.com wrote:

Regarding the 'numfmt' failures - these are locale-related problems (in both
cases).
Perhaps I wrote the tests incorrectly.

May I ask you to try the followings on those systems, and send the output (or
compare with this expected output):

  # The french locale is used for locale testing - if it doesn't exist,
those tests should not run at all.
  $ locale -a | grep -i fr
  fr_FR.utf8


Sure:

$ locale -a | grep -i fr
br_FR
br_FR@euro
br_FR.utf8
fr_BE
fr_BE@euro
fr_BE.utf8
fr_CA
fr_CA.utf8
fr_CH
fr_CH.utf8
fr_FR
fr_FR@euro
fr_FR.utf8
fr_LU
fr_LU@euro
fr_LU.utf8
oc_FR
oc_FR.utf8


  # First try without locale (this is test 'lcl-grp-1' which succeeded)
  $ LC_ALL=C ./src/numfmt --debug --grouping  --from=si 7M
  ./src/numfmt: grouping has no effect in this locale
  700


  LC_ALL=C ./src/numfmt --debug --grouping  --from=si 7M
./src/numfmt: grouping has no effect in this locale
700


  # Try grouping, the expected output should have a space as
thousands-separator
  # this is test lcl-grp-3 which failed, on your system the result was
700
  $ LC_ALL=fr_FR.utf8 ./src/numfmt --debug --grouping  --from=si 7M
  7 000 000


  LC_ALL=fr_FR.utf8 ./src/numfmt --debug --grouping  --from=si 7M
./src/numfmt: grouping has no effect in this locale
700

Have a nice day,
Berny



OK so we can't assume the locale will behave as we want.
Therefore we can gate the test on the output of the independent
printf like:

diff --git a/tests/misc/numfmt.pl b/tests/misc/numfmt.pl
index c542483..603b60a 100644
--- a/tests/misc/numfmt.pl
+++ b/tests/misc/numfmt.pl
@@ -883,7 +883,19 @@ my @Locale_Tests =
  {ENV=LC_ALL=$locale}],

   );
-push @Tests, @Locale_Tests if $locale ne C;
+if ($locale ne 'C')
+  {
+# Reset locale to 'C' if LOCALE_FR_UTF8 doesn't output as expected
+# as determined by the separate printf program.
+my $loc_num = `LC_ALL=$locale printf %'d\n 1234`;
+chomp($loc_num);
+if ($loc_num ne '1 234')
+  {
+warn loc_num =$loc_num=\n;
+$locale = 'C';
+  }
+  }
+push @Tests, @Locale_Tests if $locale ne 'C';

 ## Check all valid/invalid suffixes
 foreach my $suf ( 'A' .. 'Z', 'a' .. 'z' ) {


cheers,
Pádraig.



Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-08 Thread Bernhard Voelker


On February 8, 2013 at 4:56 PM Pádraig Brady p...@draigbrady.com wrote:
 OK so we can't assume the locale will behave as we want.
 Therefore we can gate the test on the output of the independent
 printf like:

PASS: tests/misc/numfmt.pl
;-)

Have a nice day,
Berny



Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-08 Thread Pádraig Brady

On 02/08/2013 02:53 PM, Bernhard Voelker wrote:

On February 7, 2013 at 8:57 PM Pádraig Brady p...@draigbrady.com wrote:

coreutils snapshot:
http://pixelbeat.org/cu/coreutils-8.20.113-1f1f4.tar.xz


Hi Padraig,

* SLES-10.4 (x86_64):
   gcc (GCC) 4.1.2 20070115 (SUSE Linux)

   FAIL: tests/misc/numfmt.pl

   1 of 477 tests failed
   (61 tests were not run)


* SLES-10.3 (i586):
   gcc (GCC) 4.1.2 20070115 (SUSE Linux)

   FAIL: tests/tail-2/inotify-rotate.sh
 NFS issue during cleanup_
 reproduced: 2x out of 2 tries.


If you put a wait before the Exit at the end of that test, does it help.
As a less desirable solution we could put require_local_dir_ at the top
of this test.



   FAIL: tests/misc/numfmt.log
 same as above

   2 of 468 tests failed
   (70 tests were not run)

* openSUSE-12.2 (x86_64):
   gcc (GCC) 4.1.2 20070115 (SUSE Linux)

   All 501 tests passed
   (37 tests were not run)

   BUT 1 gnulib test failed (2x out of 2 times):

   FAIL: test-utimensat (exit: 134)
   test-lutimens.h:64: assertion failed


On NFS again?
http://lists.gnu.org/archive/html/bug-gnulib/2011-10/threads.html#00291


* Regarding check-root tests (run on the above openSUSE system):

As running them in the gnulib-tests directory doesn't work:

   make  check-TESTS
   make[6]: Entering directory
`/home/berny/test/coreutils-8.20.113-1f1f4/gnulib-tests'
   make[7]: Entering directory
`/home/berny/test/coreutils-8.20.113-1f1f4/gnulib-tests'
   make[7]: *** No rule to make target `tests/chown/basic.sh.log', needed by
`test-suite.log'.
   make[7]: *** No rule to make target `tests/cp/cp-a-selinux.sh.log', needed by
`test-suite.log'.
   ...

Shouldn't check-root be limited to SUBDIRS=. in tests/local.mk?

check-root:
   - $(MAKE) check TESTS='$(root_tests)'
   + $(MAKE) check TESTS='$(root_tests)' SUBDIRS=.


Probably.

thanks,
Pádraig.



Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-08 Thread Assaf Gordon
Thanks for the quick fix.

Bernhard Voelker wrote, On 02/08/2013 11:02 AM:
 On February 8, 2013 at 4:56 PM Pádraig Brady p...@draigbrady.com wrote:
 OK so we can't assume the locale will behave as we want.
 Therefore we can gate the test on the output of the independent
 printf like:
 
 PASS: tests/misc/numfmt.pl

I don't know if this is a SUSE bug or not.
The closest thing I've found is a Debian bug report from 2004:

  locales: Wrong thousands_sep value in fr_FR locale
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=248377

-gordon




Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-08 Thread Bernhard Voelker
On February 8, 2013 at 5:30 PM Pádraig Brady p...@draigbrady.com wrote:
 On 02/08/2013 02:53 PM, Bernhard Voelker wrote:
  On February 7, 2013 at 8:57 PM Pádraig Brady p...@draigbrady.com wrote:
  * SLES-10.3 (i586):
 gcc (GCC) 4.1.2 20070115 (SUSE Linux)
 
 FAIL: tests/tail-2/inotify-rotate.sh
   NFS issue during cleanup_
   reproduced: 2x out of 2 tries.

 If you put a wait before the Exit at the end of that test, does it help.
 As a less desirable solution we could put require_local_dir_ at the top
 of this test.

Unfortunately not:

+ for j in '$(seq 150)'
+ grep ok out
+ return 0
+ found=1
+ kill 27060
+ test 1 = 0
+ wait
+ Exit 0
+ set +e
+ exit 0
+ exit 0
+ remove_tmp_
+ __st=0
+ cleanup_
+ :
+ cd /homes/vb027591/depot/coreutils-8.20.113-1f1f4
+ chmod -R u+rwx
/homes/vb027591/depot/coreutils-8.20.113-1f1f4/gt-inotify-rotate.sh.aQIe
+ rm -rf
/homes/vb027591/depot/coreutils-8.20.113-1f1f4/gt-inotify-rotate.sh.aQIe
rm: cannot remove
'/homes/vb027591/depot/coreutils-8.20.113-1f1f4/gt-inotify-rotate.sh.aQIe/.nfs005d43e60398':
Device or resource busy
rm: cannot remove
'/homes/vb027591/depot/coreutils-8.20.113-1f1f4/gt-inotify-rotate.sh.aQIe/.nfs005d43e7039b':
Device or resource busy
rm: cannot remove
'/homes/vb027591/depot/coreutils-8.20.113-1f1f4/gt-inotify-rotate.sh.aQIe/.nfs005d43e8039e':
Device or resource busy
rm: cannot remove
'/homes/vb027591/depot/coreutils-8.20.113-1f1f4/gt-inotify-rotate.sh.aQIe/.nfs005d43e203a1':
Device or resource busy
+ test 0 = 0
+ __st=1
+ exit 1


I even tried with

  + wait
  + sleep 5

but still Device or resource busy. ;-(

Why do we need this in remove_tmp_ ()?

  # If removal fails and exit status was to be 0, then change it to 1.
  rm -rf $test_dir_ || { test $__st = 0  __st=1; }

  * openSUSE-12.2 (x86_64):
 gcc (GCC) 4.1.2 20070115 (SUSE Linux)
 
 All 501 tests passed
 (37 tests were not run)
 
 BUT 1 gnulib test failed (2x out of 2 times):
 
 FAIL: test-utimensat (exit: 134)
 test-lutimens.h:64: assertion failed

 On NFS again?
 http://lists.gnu.org/archive/html/bug-gnulib/2011-10/threads.html#00291

No, that's a VirtualBox VM with no NFS mounts running on a Win7 host.
The file system is ext4 on plain /dev/sdb.

Have a nice day,
Berny



Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-08 Thread Bernhard Voelker
On 02/08/2013 05:35 PM, Assaf Gordon wrote:
 Thanks for the quick fix.
 
 Bernhard Voelker wrote, On 02/08/2013 11:02 AM:
 On February 8, 2013 at 4:56 PM Pádraig Brady p...@draigbrady.com wrote:
 OK so we can't assume the locale will behave as we want.
 Therefore we can gate the test on the output of the independent
 printf like:

 PASS: tests/misc/numfmt.pl
 
 I don't know if this is a SUSE bug or not.
 The closest thing I've found is a Debian bug report from 2004:
 
   locales: Wrong thousands_sep value in fr_FR locale
   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=248377
 
 -gordon

Hmm, these servers aren't updated regularly, so it's possible
that such a bug is already fixed for years ...

Thanks  have a nice day,
Berny



Re: new snapshot available: coreutils-8.20.113-1f1f4

2013-02-08 Thread Pádraig Brady

On 02/08/2013 05:09 PM, Bernhard Voelker wrote:

On February 8, 2013 at 5:30 PM Pádraig Brady p...@draigbrady.com wrote:

On 02/08/2013 02:53 PM, Bernhard Voelker wrote:

On February 7, 2013 at 8:57 PM Pádraig Brady p...@draigbrady.com wrote:
* SLES-10.3 (i586):
gcc (GCC) 4.1.2 20070115 (SUSE Linux)

FAIL: tests/tail-2/inotify-rotate.sh
  NFS issue during cleanup_
  reproduced: 2x out of 2 tries.


If you put a wait before the Exit at the end of that test, does it help.
As a less desirable solution we could put require_local_dir_ at the top
of this test.


Unfortunately not:


I think I see what's happening.  With /bin/sh - bash,
bash will create a redundant subshell for the :  timeout ... construct.
I.E. this prints bash rather than timeout:

  :  timeout 5 sleep 1  readlink /proc/$!/exe

So if you had dash installed, this would probably work:

make check SHELL=dash TESTS=tests/tail-2/inotify-rotate.sh \
  SUBDIRS=. VERBOSE=yes RUN_EXPENSIVE_TESTS=yes

The reason the subshell causes an issue is that it won't
auto send the SIGHUP to timeout when it gets a SIGTERM
as it's a non interactive script, and so the timeout
processes and thus the tail processes accessing the files
hang around until the 40s timeout.

In any case the attached should avoid the subshell
and hopefully fix the issue.

BTW I found a related signal race in bash when looking at this,
where it will ignore the SIGTERM before it execs the background
command, but I'm fairly sure we're not hitting this here
and so will only send details of that to the bash list.


Why do we need this in remove_tmp_ ()?

   # If removal fails and exit status was to be 0, then change it to 1.
   rm -rf $test_dir_ || { test $__st = 0  __st=1; }


I think that's fine. It's indicating the error which
we would have missed otherwise.
Maybe it should call framework_failure_ or something,
rather than set __st=1, but that's a minor detail.

cheers,
Pádraig.
From 1420fb36651d105c96eee2ace3563a32c1c0a1af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= p...@draigbrady.com
Date: Sat, 9 Feb 2013 04:39:40 +
Subject: [PATCH] tests: tail-2/inotify-rotate: fix a false failure on NFS

* tests/tail-2/inotify-rotate.sh: Avoid a subshell with bash,
which in turn causes the `kill` to be ineffective to the tail
processes (as the SIGTERM is sent to the subshell which doesn't
propagate the signal on to its children).  On NFS the test
cleanup will then fail as there will be .nfs files maintained
in the directory for the files still opened by the tail processes.
Reported by Bernhard Voelker.
---
 tests/tail-2/inotify-rotate.sh |4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/tests/tail-2/inotify-rotate.sh b/tests/tail-2/inotify-rotate.sh
index 94c2b7d..4a16202 100755
--- a/tests/tail-2/inotify-rotate.sh
+++ b/tests/tail-2/inotify-rotate.sh
@@ -47,7 +47,8 @@ for i in $(seq 50); do
 # Normally less than a second is required here, but with heavy load
 # and a lot of disk activity, even 20 seconds is insufficient, which
 # leads to this timeout killing tail before the ok is written below.
-:k  :x  timeout 40 tail -F k  out 21 
+:k  :x || framework_failure_ failed to initialize files
+timeout 40 tail -F k  out 21 
 pid=$!
 sleep .1
 echo b  k;
@@ -65,4 +66,5 @@ for i in $(seq 50); do
 test $found = 0  { cat out; fail_ failed to detect echoed 'ok'; }
 done
 
+wait
 Exit $fail
-- 
1.7.7.6