bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: test-init.sh failure on AIX 7.1


From: Jim Meyering
Subject: Re: test-init.sh failure on AIX 7.1
Date: Sat, 28 Jan 2012 21:58:35 +0100

Bruno Haible wrote:
> The recently added test-init.sh test fails on AIX 7.1:
>
> --- exp       2012-01-28 18:51:15.000000000 +0000
> +++ out       2012-01-28 18:51:15.000000000 +0000
> @@ -1,3 +1,3 @@
>   --- empty
>   +++ in
> - +xyz
> + + xyz
> FAIL: test-init.sh
...

Hi Bruno,
Thanks for the analysis and patch!
That looks fine and passed my test on Fedora 16.
Only one question:

> --- tests/init.sh.orig        Sat Jan 28 20:34:28 2012
> +++ tests/init.sh     Sat Jan 28 20:21:12 2012
> @@ -255,7 +255,10 @@
>    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

Why use "." rather than a literal "+" there?
Are you worried that Makefile will contain a line matching /^#!/ near
the top, which would lead to a regular diff containing a space rather
than "+" there?

That's fine to push either way.

> +  # 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
> --- tests/test-init.sh.orig   Sat Jan 28 20:34:28 2012
> +++ tests/test-init.sh        Sat Jan 28 20:34:02 2012
> @@ -50,20 +50,19 @@
>    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

Good idea.

> +    # 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]