+2012-01-28 Bruno Haible <bruno@clisp.org>
+
+ test-framework-sh: Fix test failure with AIX 7.1 diff.
+ * tests/init.sh (compare_): Don't use 'diff -u' if it inserts a space
+ in column 1, like 'diff -c' does.
+ * tests/test-init.sh (test_compare): Don't repeat the test from init.sh
+ whether 'diff -u' is used. Instead, test whether the output contains
+ some '@' character.
+
2012-01-28 Paul Eggert <eggert@cs.ucla.edu>
strtoimax: eliminate need for stdint.h, inttypes.h checks
return 2
}
-if diff_out_=`exec 2>/dev/null; diff -u "$0" "$0" < /dev/null`; then
+if diff_out_=`exec 2>/dev/null; diff -u "$0" "$0" < /dev/null` \
+ && diff -u Makefile "$0" 2>/dev/null | grep '^[+]#!' >/dev/null; then
+ # diff accepts the -u option and does not (like AIX 7 'diff') produce an
+ # extra space on column 1 of every content line.
if test -z "$diff_out_"; then
compare_ () { diff -u "$@"; }
else
case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac
compare empty in >out 2>err && fail=1
- # Remove the TAB-date suffix on each --- and +++ line,
- # for both the expected and the actual output files.
- # Also remove the @@ line, since Solaris 5.10 and GNU diff formats differ:
- # -@@ -0,0 +1 @@
- # +@@ -1,0 +1,1 @@
- cat <<\EOF > exp
+ # Compare against expected output only if compare is using diff -u.
+ if grep @ out >/dev/null; then
+ # Remove the TAB-date suffix on each --- and +++ line,
+ # for both the expected and the actual output files.
+ # Also remove the @@ line, since Solaris 5.10 and GNU diff formats differ:
+ # -@@ -0,0 +1 @@
+ # +@@ -1,0 +1,1 @@
+ sed 's/ .*//;/^@@/d' out > k && mv k out
+ cat <<\EOF > exp
--- empty
+++ in
+xyz
EOF
- sed 's/ .*//;/^@@/d' out > k && mv k out
-
- # Compare against expected output only if compare is using diff -u.
- if diff -u out out < /dev/null > /dev/null 2>&1; then
compare exp out || fail=1
fi
case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac