EXTRA_DIST = $(TESTSUITE_AT) \
testsuite package.m4 star/README star/quicktest.sh \
- compress.at.in
+ compress.m4
DISTCLEANFILES = atconfig $(check_SCRIPTS)
MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
TESTSUITE_AT = \
testsuite.at\
+ compress.m4\
T-cd.at\
T-dir00.at\
T-dir01.at\
chtype.at\
comprec.at\
comperr.at\
- compress-zstd.at\
- compress-xz.at\
- compress-bzip2.at\
- compress-gzip.at\
- compress-lzip.at\
- compress-lzop.at\
checkpoint/defaults.at\
checkpoint/interval.at\
checkpoint/dot.at\
selacl01.at\
capabs_raw01.at
-CLEANFILES += compress-zstd.at
-compress-zstd.at: compress.at.in
- $(AM_V_GEN)rm -rf $@ $@-t
- $(AM_V_at)sed 's/@tool@/zstd/g;s/@suff@/zst/g;s/@suff2@/tzst/g;' \
- $(srcdir)/compress.at.in > $@-t && chmod a-w $@-t && mv $@-t $@
-
-CLEANFILES += compress-gzip.at
-compress-gzip.at: compress.at.in
- $(AM_V_GEN)rm -rf $@ $@-t
- $(AM_V_at)sed 's/@tool@/gzip/g;s/@suff@/gz/g;s/@suff2@/tgz/g;' \
- $(srcdir)/compress.at.in > $@-t && chmod a-w $@-t && mv $@-t $@
-
-CLEANFILES += compress-xz.at
-compress-xz.at: compress.at.in
- $(AM_V_GEN)rm -rf $@ $@-t
- $(AM_V_at)sed 's/@tool@/xz/g;s/@suff@/xz/g;s/@suff2@/txz/g;' \
- $(srcdir)/compress.at.in > $@-t && chmod a-w $@-t && mv $@-t $@
-
-CLEANFILES += compress-bzip2.at
-compress-bzip2.at: compress.at.in
- $(AM_V_GEN)rm -rf $@ $@-t
- $(AM_V_at)sed 's/@tool@/bzip2/g;s/@suff@/bz2/g;s/@suff2@/tbz2/g;' \
- $(srcdir)/compress.at.in > $@-t && chmod a-w $@-t && mv $@-t $@
-
-CLEANFILES += compress-lzip.at
-compress-lzip.at: compress.at.in
- $(AM_V_GEN)rm -rf $@ $@-t
- $(AM_V_at)sed 's/@tool@/lzip/g;s/@suff@/lz/g;s/@suff2@//g;' \
- $(srcdir)/compress.at.in > $@-t && chmod a-w $@-t && mv $@-t $@
-
-CLEANFILES += compress-lzop.at
-compress-lzop.at: compress.at.in
- $(AM_V_GEN)rm -rf $@ $@-t
- $(AM_V_at)sed 's/@tool@/lzop/g;s/@suff@/lzo/g;s/@suff2@//g;' \
- $(srcdir)/compress.at.in > $@-t && chmod a-w $@-t && mv $@-t $@
-
distclean-local:
-rm -rf download
+++ /dev/null
-# Process this file with autom4te to create testsuite. -*- Autotest -*-
-
-# Test suite for GNU tar.
-# Copyright 2018-2019 Free Software Foundation, Inc.
-
-# This file is part of GNU tar.
-
-# GNU tar is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-
-# GNU tar is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# tar can create/decompress @tool@-compressed tarballs
-
-AT_SETUP([compress: @tool@])
-AT_KEYWORDS([compression @tool@])
-
-unset TAR_OPTIONS
-
-AT_CHECK([
-AT_GZIP_PREREQ([@tool@])
-
-touch empty
-# Create with --@tool@:
-tar --@tool@ -cf - empty 2>err > k.tar.@suff@ || exit 1
-test -s err && exit 1
-tar tf k.tar.@suff@ 2>err > out || exit 1
-test "$(cat out)" = empty || exit 1
-test -s err && exit 1
-
-# Ensure -ac works with an -f-specified .@suff@-suffixed name.
-tar -acf k2.tar.@suff@ empty 2>err > out || exit 1
-cmp k2.tar.@suff@ k.tar.@suff@ || exit 1
-test -s err && exit 1
-
-# Extraction: ensure the .@suff@ suffix is recognized.
-rm -f empty || exit 1
-tar xf k.tar.@suff@ 2>err > out || exit 1
-test -s err && exit 1
-test -f empty || exit 1
-
-if test -n '@suff2@'; then
- # Extraction: ensure the .@suff2@ suffix is also recognized.
- mv k.tar.@suff@ k.@suff2@ || exit 1
- rm -f empty
- tar xf k.@suff2@ 2>err > out || exit 1
- test -s err && exit 1
- test -f empty || exit 1
-else
- :
-fi
-
-],
-[0],
-[],
-[],
-[],[])
-
-AT_CLEANUP
--- /dev/null
+# This file is part of GNU tar testsuite. -*- Autotest -*-
+# Copyright 2018-2019 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNU tar is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+dnl TAR_CHECK_COMPRESS(TOOL, SUF[, SUF2])
+dnl Tests whether tar can create archives using TOOL (i.e. using the --TOOL
+dnl command line option). SUF and optional SUF2 are suffixes for created
+dnl archives (without leading dot). Tar should be able to use TOOL to
+dnl automatically decompress archives with names ending on these suffixes.
+m4_define([TAR_CHECK_COMPRESS],
+[AT_SETUP([compress: $1])
+AT_KEYWORDS([compression compress-$1 $1])
+
+AT_CHECK([
+AT_GZIP_PREREQ($1)
+unset TAR_OPTIONS
+
+touch empty
+set -e
+: create with --$1
+tar --$1 -cf k.tar.$2 empty
+tar tf k.tar.$2
+
+m4_foreach([SUF], m4_quote(m4_shift($@)),
+[
+echo testing .SUF
+tar -acf k2.tar.SUF empty
+cat k2.tar.SUF | $1 -d > k.SUF.tar
+tar tf k.SUF.tar
+])
+
+# Extraction: ensure compressed format is correctly recognized
+rm -f empty
+tar xf k.tar.$2
+test -f empty
+],
+[0],
+[empty
+m4_foreach([SUF],m4_quote(m4_shift($@)),[testing .SUF
+empty
+])])
+
+AT_CLEANUP
+])
m4_popdef([CPT_CHECK])
AT_BANNER([Compression])
-m4_include([compress-gzip.at])
-m4_include([compress-bzip2.at])
-m4_include([compress-xz.at])
+m4_include([compress.m4])
+TAR_CHECK_COMPRESS(gzip, gz, tgz)
+TAR_CHECK_COMPRESS(bzip2, bz2, tbz2)
+TAR_CHECK_COMPRESS(xz, xz, txz)
dnl: omit lzma, because it would fail due to magic number mismatch
-m4_include([compress-lzip.at])
-m4_include([compress-lzop.at])
-m4_include([compress-zstd.at])
+TAR_CHECK_COMPRESS(lzip, lz)
+TAR_CHECK_COMPRESS(lzop, lzo)
+TAR_CHECK_COMPRESS(zstd, zst, tzst)
AT_BANNER([Positional options])
m4_include([positional01.at])