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)
