Hello,

On 11/01/2014 07:06 PM, Jim Meyering wrote:
On NetBSD 6.1.4, these fail:
   XFAIL: equiv-classes
   FAIL: symlink
   FAIL: word-multibyte

<...>

However, I'll need more information to understand the "symlink" failure.
Normally the log file contains verbose output information (resulting
from init.sh's "set -x"), but on your NetBSD system, it appears not to
have been enabled, perhaps because that system's /bin/sh is
inadequate.  Can you rerun the tests using bash as your shell?  That
may be enough to evoke the log information that will highlight which
part(s) of the "symlink" test actually fail.

It turned out not to be directly a shell issue (I tried with forcing shell to 
bash), but a BSD make vs GNU make.
using "gmake" did use the correct shell, and produced a detailed log, which is 
attached.

If I understand correctly, the failure is triggered in line 177 in the attached 
log.
running "grep -r '^'" was supposed to return zero, but it returns 2.

I disabled the removal of the temporary directory, and so was able to reproduce 
manually:
====
$ uname -a
NetBSD  6.1.4 NetBSD 6.1.4 (GENERIC) amd64

$ pwd
/tmp/grep-2.20.72-d512/tests/gt-symlink.1F01
$ ls -lR
total 20
drwxr-xr-x  2 miles  wheel  512 Nov  2 00:55 dir
-rw-r--r--  1 miles  wheel   30 Nov  2 00:55 exp
-rw-r--r--  1 miles  wheel   30 Nov  2 00:55 grepout
-rw-r--r--  1 miles  wheel   30 Nov  2 00:55 out
-rw-r--r--  1 miles  wheel   30 Nov  2 00:55 out-t

./dir:
total 8
-rw-r--r--  1 miles  wheel  2 Nov  2 00:55 a
-rw-r--r--  1 miles  wheel  2 Nov  2 00:55 b
lrwxr-xr-x  1 miles  wheel  1 Nov  2 00:55 c -> a
lrwxr-xr-x  1 miles  wheel  1 Nov  2 00:55 d -> .
lrwxr-xr-x  1 miles  wheel  8 Nov  2 00:55 e -> dangling

$ cd dir
$ pwd
/tmp/grep-2.20.72-d512/tests/gt-symlink.1F01/dir

$ ../../../src/grep -r '^' ; echo $?
a:a
b:b
../../../src/grep: c: Inappropriate file type or format
../../../src/grep: d: Inappropriate file type or format
../../../src/grep: e: Inappropriate file type or format
2
====

For comparison,
On Linux (Ubuntu 14.04.1 amd64), the exit code is zero, somehow c,d,e are 
ignored:

===
$ uname -a
Linux XXXX 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 
GNU/Linux
$ pwd
/tmp/grep/grep-2.20.72-d512/tests/gt-symlink.3Zym
$ ls -lR
.:
total 20
drwxrwxr-x 2 gordon gordon 4096 Nov  1 21:18 dir
-rw-rw-r-- 1 gordon gordon   30 Nov  1 21:18 exp
-rw-rw-r-- 1 gordon gordon   30 Nov  1 21:18 grepout
-rw-rw-r-- 1 gordon gordon   30 Nov  1 21:18 out
-rw-rw-r-- 1 gordon gordon   30 Nov  1 21:18 out-t

./dir:
total 8
-rw-rw-r-- 1 gordon gordon 2 Nov  1 21:18 a
-rw-rw-r-- 1 gordon gordon 2 Nov  1 21:18 b
lrwxrwxrwx 1 gordon gordon 1 Nov  1 21:18 c -> a
lrwxrwxrwx 1 gordon gordon 1 Nov  1 21:18 d -> .
lrwxrwxrwx 1 gordon gordon 8 Nov  1 21:18 e -> dangling

$ cd dir
$ pwd
/tmp/grep/grep-2.20.72-d512/tests/gt-symlink.3Zym/dir

$ ../../../src/grep -r '^' ; echo $?
b:b
a:a
0
===


 - Assaf
=================================================
   GNU grep 2.20.72-d512: tests/test-suite.log
=================================================

# TOTAL: 85
# PASS:  58
# SKIP:  24
# XFAIL: 1
# FAIL:  2
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: symlink
=============

++ initial_cwd_=/tmp/grep-2.20.72-d512/tests
++ fail=0
+++ testdir_prefix_
+++ printf gt
++ pfx_=gt
+++ mktempd_ /tmp/grep-2.20.72-d512/tests gt-symlink.XXXX
+++ case $# in
+++ destdir_=/tmp/grep-2.20.72-d512/tests
+++ template_=gt-symlink.XXXX
+++ MAX_TRIES_=4
+++ case $destdir_ in
+++ case $template_ in
++++ unset TMPDIR
+++ d='/tmp/-p.009117aa
gt-symlink.117c'
+++ fail=1
+++ case $d in
+++ fail=1
+++ test -d '/tmp/-p.009117aa
gt-symlink.117c'
+++ fail=1
++++ ls -dgo '/tmp/-p.009117aa
gt-symlink.117c'
++++ tr S -
+++ perms=
+++ case $perms in
+++ fail=1
+++ test 1 = 0
++++ echo gt-symlink.XXXX
++++ sed 's/XX*$//'
+++ base_template_=gt-symlink.
++++ echo gt-symlink.XXXX
++++ wc -c
+++ template_length_='      16'
++++ echo gt-symlink.
++++ wc -c
+++ nx_='      12'
++++ expr 16 - 12
+++ nx_=4
+++ err_=
+++ i_=1
+++ :
++++ rand_bytes_ 4
++++ n_=4
++++ chars_=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
++++ dev_rand_=/dev/urandom
++++ test -r /dev/urandom
++++ dd ibs=4 count=1 if=/dev/urandom
++++ LC_ALL=C
++++ tr -c abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 01234567abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
++++ return
+++ X_=1F01
+++ candidate_dir_=/tmp/grep-2.20.72-d512/tests/gt-symlink.1F01
++++ mkdir -m 0700 /tmp/grep-2.20.72-d512/tests/gt-symlink.1F01
+++ err_=
+++ echo /tmp/grep-2.20.72-d512/tests/gt-symlink.1F01
+++ return
++ test_dir_=/tmp/grep-2.20.72-d512/tests/gt-symlink.1F01
++ cd /tmp/grep-2.20.72-d512/tests/gt-symlink.1F01
++ gl_init_sh_nl_='
'
++ IFS=' 	
'
++ for sig_ in 1 2 3 13 15
+++ expr 1 + 128
++ eval 'trap '\''Exit 129'\'' 1'
+++ trap 'Exit 129' 1
++ for sig_ in 1 2 3 13 15
+++ expr 2 + 128
++ eval 'trap '\''Exit 130'\'' 2'
+++ trap 'Exit 130' 2
++ for sig_ in 1 2 3 13 15
+++ expr 3 + 128
++ eval 'trap '\''Exit 131'\'' 3'
+++ trap 'Exit 131' 3
++ for sig_ in 1 2 3 13 15
+++ expr 13 + 128
++ eval 'trap '\''Exit 141'\'' 13'
+++ trap 'Exit 141' 13
++ for sig_ in 1 2 3 13 15
+++ expr 15 + 128
++ eval 'trap '\''Exit 143'\'' 15'
+++ trap 'Exit 143' 15
+ path_prepend_ ../src
+ test 1 '!=' 0
+ path_dir_=../src
+ case $path_dir_ in
+ abs_path_dir_=/tmp/grep-2.20.72-d512/tests/../src
+ case $abs_path_dir_ in
+ PATH=/tmp/grep-2.20.72-d512/tests/../src:/tmp/grep-2.20.72-d512/src:/home/miles/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R7/bin:/usr/X11R6/bin:/usr/pkg/bin:/usr/pkg/sbin:/usr/games:/usr/local/bin:/usr/local/sbin
+ create_exe_shims_ /tmp/grep-2.20.72-d512/tests/../src
+ case $EXEEXT in
+ return 0
+ shift
+ test 0 '!=' 0
+ export PATH
+ mkdir dir
+ echo a
+ echo b
+ ln -s a dir/c
+ ln -s . dir/d
+ ln -s dangling dir/e
+ touch out
+ for recursion in ''\'''\''' -r -R
+ for files in ''\'''\''' ''\''*'\'''
+ case $recursion,$files in
+ expected_status=0
+ cd dir
+ grep '^'
+ test 0 -eq 0
+ case $recursion,$files in
+ exp='a\n'
+ printf 'a\n'
+ LC_ALL=C
+ sort grepout
+ grep -v Binary out-t
+ case $? in
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ diff -u exp out
+ for files in ''\'''\''' ''\''*'\'''
+ case $recursion,$files in
+ expected_status=2
+ cd dir
+ grep '^' a b c d e
grep: e: No such file or directory
+ test 2 -eq 2
+ case $recursion,$files in
+ exp='a:a\nb:b\nc:a\n'
+ printf 'a:a\nb:b\nc:a\n'
+ LC_ALL=C
+ sort grepout
+ grep -v Binary out-t
+ case $? in
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ diff -u exp out
+ for recursion in ''\'''\''' -r -R
+ for files in ''\'''\''' ''\''*'\'''
+ case $recursion,$files in
+ expected_status=0
+ cd dir
+ grep -r '^'
grep: c: Inappropriate file type or format
grep: d: Inappropriate file type or format
grep: e: Inappropriate file type or format
+ test 2 -eq 0
+ fail=1
+ case $recursion,$files in
+ exp='a:a\nb:b\n'
+ printf 'a:a\nb:b\n'
+ LC_ALL=C
+ sort grepout
+ grep -v Binary out-t
+ case $? in
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ diff -u exp out
+ for files in ''\'''\''' ''\''*'\'''
+ case $recursion,$files in
+ expected_status=2
+ cd dir
+ grep -r '^' a b c d e
grep: d/c: Inappropriate file type or format
grep: d/d: Inappropriate file type or format
grep: d/e: Inappropriate file type or format
grep: e: No such file or directory
+ test 2 -eq 2
+ case $recursion,$files in
+ exp='a:a\nb:b\nc:a\nd/a:a\nd/b:b\n'
+ printf 'a:a\nb:b\nc:a\nd/a:a\nd/b:b\n'
+ LC_ALL=C
+ sort grepout
+ grep -v Binary out-t
+ case $? in
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ diff -u exp out
+ for recursion in ''\'''\''' -r -R
+ for files in ''\'''\''' ''\''*'\'''
+ case $recursion,$files in
+ expected_status=2
+ cd dir
+ grep -R '^'
grep: warning: d: recursive directory loop
grep: e: No such file or directory
+ test 2 -eq 2
+ case $recursion,$files in
+ exp='a:a\nb:b\nc:a\n'
+ printf 'a:a\nb:b\nc:a\n'
+ LC_ALL=C
+ sort grepout
+ grep -v Binary out-t
+ case $? in
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ diff -u exp out
+ for files in ''\'''\''' ''\''*'\'''
+ case $recursion,$files in
+ expected_status=2
+ cd dir
+ grep -R '^' a b c d e
grep: warning: d/d: recursive directory loop
grep: d/e: No such file or directory
grep: e: No such file or directory
+ test 2 -eq 2
+ case $recursion,$files in
+ exp='a:a\nb:b\nc:a\nd/a:a\nd/b:b\nd/c:a\n'
+ printf 'a:a\nb:b\nc:a\nd/a:a\nd/b:b\nd/c:a\n'
+ LC_ALL=C
+ sort grepout
+ grep -v Binary out-t
+ case $? in
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ diff -u exp out
+ Exit 1
+ set +e
+ exit 1
+ exit 1
FAIL symlink (exit status: 1)

Reply via email to