bug-automake
[Top][All Lists]
Advanced

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

bug#15181: t/dist-formats.tap: zip + unzip


From: Stefano Lattarini
Subject: bug#15181: t/dist-formats.tap: zip + unzip
Date: Wed, 30 Oct 2013 00:52:38 +0000

severity 15181 minor
close 15181
stop

(Reference: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15181)

Hi Andrea, thanks for the report and the patch, and
sorry for the awful delay.

On 08/24/2013 06:24 AM, Andrea Urbani wrote:
> Good morning,
> 
> gzip, lzip, bzip2, tar, xz can compress and decompress.
> 
> zip is able just to compress. To decompress you need unzip.
> During the tests of Automake 1.14, in particular t/dist-formats.tap, the 
> nogzip function called via
> 
> nogzip in ac and zip in ac
> 
> looks if zip is available and, if yes, tests the zip creation + unzip.
> If in your system zip is installed but unzip no, you will have a FAIL like 
> the following:
> 
> /bin/sh: line 14: unzip: command not found
> make: *** [distcheck] Error 127
> + tap_result_='not ok'
> + result_ 'not ok' -D '' -r '' -- 'ac=dist-zip,no-dist-gzip [distcheck]'
> + set +x
> not ok 45 - ac=dist-zip,no-dist-gzip [distcheck]
> FAIL: t/dist-formats.tap 45 - ac=dist-zip,no-dist-gzip [distcheck]
> 
> and so the final result of the "make check" operation will fail too.
> 
> In my opinion the unzip should be skipped if no unzip is available.
> 
Good point.  In fact, I've managed to reproduce your issue (by faking
a failing 'unzip' command).

> == PATCH BEGIN ====================================================
> --- t/dist-formats.tap.orig 2013-06-19 11:29:50.000000000 +0200
> +++ t/dist-formats.tap 2013-08-24 07:12:42.000000000 +0200
> @@ -97,6 +97,33 @@
>  fatal_ "have_compressor(): dead code reached"
>  }
> 
> +have_decompressor ()
> +{
> + test $# -eq 1 || fatal_ "have_decompressor(): bad usage"
> + case $1 in
> + zip)
> + # 2013-08-24 matfanjol
> + # gzip, lzip, bzip2, tar, xz can compress and decompress.
> + # zip is able just to compress. To decompress you need unzip.
> + # Here I check if unzip is available.
> + # I checked "Oracle Solaris 11" and "Fedora 19": "unzip -v" is
> + # OK, "unzip --version" is NOT ok.
> + if unzip -v </dev/null >&2; then
> + return 0
> + else
> + return 1
> + fi
> + ;;
> + *)
> + # 2013-08-24 matfanjol
> + # gzip, lzip, bzip2, tar, xz can compress and decompress.
> + return 0
> + ;;
> + esac
> + fatal_ "have_decompressor(): dead code reached"
> +}
> +
> +
>  all_compression_formats='gzip lzip xz bzip2 zip'
> 
>  all_compressors=$(
> @@ -165,6 +192,20 @@
>  fi
>  }
> 
> +command_ok_if_have_compressor_and_decompressor ()
> +{
> + if have_compressor "$compressor"; then
> + if have_decompressor "$compressor"; then
> + command_ok_ "$@"
> + else
> + skip_ -r "decompressor for '$compressor' not available" "$1"
> + fi
> + else
> + skip_ -r "'$compressor' not available" "$1"
> + fi
> +}
> +
> +
>  can_compress ()
>  {
>  test $# -eq 2 || fatal_ "can_compress: bad number of arguments"
> @@ -276,8 +317,8 @@
>  command_ok_ "$desc [autoconf]" $AUTOCONF
>  command_ok_ "$desc [configure]" ./configure
>  command_ok_ "$desc [ark-name]" $MAKE check-ark-name
> - command_ok_if_have_compressor "$desc [distcheck]" $MAKE distcheck
> - command_ok_if_have_compressor "$desc [ark-exists]" $MAKE check-ark-exists
> + command_ok_if_have_compressor_and_decompressor "$desc [distcheck]" $MAKE 
> distcheck
> + command_ok_if_have_compressor_and_decompressor "$desc [ark-exists]" $MAKE 
> check-ark-exists
>  command_ok_ "$desc [no .tar.gz]" $MAKE check-no-tar-gz
> 
>  unset desc
> == PATCH END ====================================================
>
Thanks for the patch (it's always appreciated to receive one with a
bug report!), but I've chose a slightly smaller and less invasive
change to fix the issue (see attached patch).  With that, all the
checks involving either zip or unzip will be skipped on systems
lacking unzip (even if they have zip); this is less granular than
your approach, but this added coarseness is IMO worth the reduction
in complexity.

> Bye
> Andrea
> matfanjol
> http://matfanjol.users.sourceforge.net/
> 
I'm marking this bug as solved.

Thanks again,
  Stefano

Attachment: 0001-tests-fix-spurious-failure-when-zip-is-present-but-u.patch
Description: Text Data


reply via email to

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