+++ /dev/null
-#! /bin/sh
-
-# Do common operations after a particular test.
-
-# This file is part of GNU tar testsuite.
-# Copyright (C) 2004 Free Software Foundation, Inc.
-#
-# This program 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 2, or (at your option)
-# any later version.
-#
-# This program 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, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-cd ..
-exec 1> /dev/null
-exec 2> /dev/null
-
-compare() {
- eval tempfile=tmp-$$/std${1}
- eval echo \""\${$1}"\" | sed '$d' > ${tempfile}0
-
- sedscript=tmp-$$/${1}.sed
- if eval test \".\${${1}_ignore}\" = .; then
- :
- else
- eval echo \"\${${1}_ignore}\" | sed 's,^.*$,/&/d,;' > $sedscript
- sed -f $sedscript ${tempfile} > ${tempfile}.1
- mv ${tempfile}.1 ${tempfile}
- fi
-
- if eval test -z \"\${${1}_regex}\" ; then
- cmp -s ${tempfile}0 ${tempfile} || exit 1
- else
- awk '{print NR " " $0}' ${tempfile}0 > ${tempfile}.1
- awk '{print NR " " $0}' ${tempfile} | join ${tempfile}.1 - |
- while read NUM RE LINE
- do
- echo "$LINE" | grep -- "$RE" >/dev/null || exit 1
- done
- fi
-}
-
-compare out
-compare err
-
-rm -rf tmp-$$
--- /dev/null
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+
+# This program 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 2, or (at your option)
+# any later version.
+
+# This program 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, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+AT_SETUP([append])
+AT_KEYWORDS([append])
+
+AT_TAR_CHECK([touch file1
+ touch file2
+ tar cf archive file1
+ tar rf archive file2
+ tar tf archive],
+ [0],
+[file1
+file2
+])
+
+AT_CLEANUP
--- /dev/null
+# @configure_input@ -*- shell-script -*-
+# Configurable variable values for tar test suite.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+
+PATH=@abs_builddir@:@abs_top_builddir@/src:$top_srcdir:$srcdir:$PATH
+
+++ /dev/null
-#! /bin/sh
-
-# Do common operations before a particular test.
-
-# This file is part of GNU tar testsuite.
-# Copyright (C) 2004 Free Software Foundation, Inc.
-#
-# This program 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 2, or (at your option)
-# any later version.
-#
-# This program 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, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-case $# in
- 0) TAR_ARCHIVE_FORMATS="${TAR_ARCHIVE_FORMATS:-v7 oldgnu ustar posix gnu}"
- for format in $TAR_ARCHIVE_FORMATS
- do
- $0 $format
- R=$?
- test $R -eq 0 || exit $R
- done
- exit 0;;
- 1) if test "x$1" = xauto; then
- TAR_OPTIONS=
- else
- TAR_OPTIONS="--format=$1"
- fi;;
- *) echo "Too many arguments" >&2
- exit 2;;
-esac
-
-mkdir tmp-$$
-cd tmp-$$
-
-out=
-err=
-
-export TAR_OPTIONS
-#echo "$0 $1"
-echo "$0 $1" > checking
-exec 1> stdout
-exec 2> stderr
-
-
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# Deleting a member after a big one was destroying the archive.
-. ./preset
-. $srcdir/before
+AT_SETUP([deleting a member after a big one])
+AT_KEYWORDS([delete01])
-set -e
+AT_TAR_CHECK([
genfile -l 50000 > file1
genfile -l 1024 > file2
tar cf archive file1 file2
tar f archive --delete file2
-tar tf archive
-
-out="\
-file1
-"
+tar tf archive],
+[0],
+[file1
+])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# Deleting a member with the archive from stdin was not working correctly.
-. ./preset
-. $srcdir/before
+AT_SETUP([deleting a member from stdin archive])
+AT_KEYWORDS([delete02])
-set -e
+AT_TAR_CHECK([
genfile -l 3073 -p zeros > 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
-echo -----
-tar tf archive2
-
-out="\
-1
+echo separator
+tar tf archive2],
+[0],
+[1
2
3
------
+separator
1
3
-"
+])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# Copyright (C) 2001 Free Software Foundation, Inc.
-#
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
-. ./preset
-TAR_ARCHIVE_FORMATS="gnu oldgnu posix"
-. $srcdir/before
+AT_SETUP([deleting members with long names])
+AT_KEYWORDS([delete03])
-set -e
-prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
+m4_define([PREFIX],[This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX])
+
+AT_TAR_CHECK([
+
+prefix=PREFIX
rm -f $prefix*
for i in 1 2 3 4 5 6 7 8 9
do touch $prefix$i
done
-tar -cf archive ./$prefix*
-tar --delete -f archive ./${prefix}5
-tar -tf archive
-
-out="\
-./${prefix}1
-./${prefix}2
-./${prefix}3
-./${prefix}4
-./${prefix}6
-./${prefix}7
-./${prefix}8
-./${prefix}9
-"
-
-. $srcdir/after
+tar -cf archive ./$prefix* &&
+ tar --delete -f archive ./${prefix}5 &&
+ tar -tf archive
+],
+[0],
+[./PREFIX[]1
+./PREFIX[]2
+./PREFIX[]3
+./PREFIX[]4
+./PREFIX[]6
+./PREFIX[]7
+./PREFIX[]8
+./PREFIX[]9
+],[],[],[],[gnu, oldgnu, posix])
+
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# Deleting a large last member was destroying earlier members.
-. ./preset
-. $srcdir/before
+AT_SETUP([deleting a large last member])
+AT_KEYWORDS([delete04])
-set -e
+AT_TAR_CHECK([
genfile -l 3 >file1
genfile -l 5 >file2
genfile -l 3 >file3
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
-
-out="\
-file1
+],
+[0],
+[file1
file2
file3
file4
file7
file8
file9
-"
+])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# There was a diagnostic when directory already exists.
-. ./preset
-. $srcdir/before
+AT_SETUP([extract01])
+AT_KEYWORDS([extract01])
-set -e
+AT_TAR_CHECK([
mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive || exit 1
+])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# Could not extract symlinks over an existing file.
-. ./preset
-. $srcdir/before
+AT_SETUP([extracting symlings over an existing file])
+AT_KEYWORDS([extract02])
+
+# FIXME: Skip if symlinks are not supported on the system
-set -e
+AT_TAR_CHECK([
touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
+])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# Paths going up and down were inducing extraction loops.
-. ./preset
-. $srcdir/before
+AT_SETUP([extraction loops])
+AT_KEYWORDS([extract03])
-set -e
+AT_TAR_CHECK([
mkdir directory
tar -cPvf archive directory/../directory
-echo -----
-tar -xPvf archive
-
-out="\
-directory/../directory/
------
+echo separator
+tar -xPvf archive],
+[0],
+[directory/../directory/
+separator
directory/../directory/
-"
+])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# Check for fnmatch problems in glibc 2.1.95.
-. ./preset
-. $srcdir/before
+AT_SETUP([extract + fnmatch])
+AT_KEYWORDS([extract04])
-set -e
+AT_TAR_CHECK([
touch file1
mkdir directory
mkdir directory/subdirectory
--exclude='./*1' \
--exclude='d*/*1' \
--exclude='d*/s*/*2' | sort
-
-out="\
-directory/
+],
+[0],
+[directory/
directory/file2
directory/subdirectory/
-"
+])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# References: <3.0.6.32.20040809113727.00a30e50@localhost>
# http://lists.gnu.org/archive/html/bug-tar/2004-08/msg00008.html
-. ./preset
-TAR_ARCHIVE_FORMATS="posix"
-. $srcdir/before
+AT_SETUP([extracting selected members from pax])
+AT_KEYWORDS([extract05])
+AT_DATA([list],
+[jeden
+cztery
+])
+
+AT_TAR_CHECK([
genfile --length 118 > jeden
genfile --length 223 > dwa
genfile --length 517 > trzy
-mksparse sparsefile 512 0 ABCD 1M EFGH 2000K IJKL
+genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL
genfile --length 110 > cztery
-tar cf archive jeden dwa trzy cztery
-
-cat > list <<EOF
-jeden
-cztery
-EOF
+tar cf archive jeden dwa trzy cztery || exit 1
mkdir dir
cd dir
-tar xvfT ../archive ../list
+tar xvfT ../archive ../../list || exit 1
cd ..
-
-out="\
-jeden
+],
+[0],
+[jeden
cztery
-"
-
-. $srcdir/after
+],
+[],[],[],
+[posix])
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# tar should detect that its gzip child failed.
-. ./preset
-TAR_ARCHIVE_FORMATS=auto
-. $srcdir/before
+AT_SETUP([gzip])
+AT_KEYWORDS([gzip])
+unset TAR_OPTIONS
+
+AT_CHECK([
tar xfvz /dev/null
test $? = 2 || exit 1
-
-err="\
-
+],
+[0],
+[],
+[
gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error exit delayed from previous errors
-"
+],
+[],[])
-. $srcdir/after
+AT_CLEANUP
\ No newline at end of file
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# Unreadable directories yielded error despite --ignore-failed-read.
-. ./preset
-. $srcdir/before
-
-> check-uid
-set - x`ls -l check-uid`
-uid_name="$3"
-set - x`ls -ln check-uid`
-uid_number="$3"
-if test "$uid_name" = root || test "$uid_number" = 0; then
-
- # The test is meaningless for super-user.
- rm check-uid
+AT_SETUP([ignfail])
+AT_KEYWORDS([ignfail])
+AT_TAR_CHECK([
+if test -w / ; then
+ # The test is meaningless for super-user.
+ AT_SKIP_TEST
else
+ touch file
+ mkdir directory
+ touch directory/file
- touch file
- mkdir directory
- touch directory/file
+ echo 1>&2 -----
+ chmod 000 file
+ tar cf archive file
+ status=$?
+ chmod 600 file
+ test $status = 2 || exit 1
- echo 1>&2 -----
- chmod 000 file
- tar cf archive file
- status=$?
- chmod 600 file
- test $status = 2 || exit 1
+ echo 1>&2 -----
+ chmod 000 file
+ tar cf archive --ignore-failed-read file || exit 1
+ status=$?
+ chmod 600 file
+ test $status = 0 || exit 1
- echo 1>&2 -----
- chmod 000 file
- tar cf archive --ignore-failed-read file || exit 1
- status=$?
- chmod 600 file
- test $status = 0 || exit 1
+ echo 1>&2 -----
+ chmod 000 directory
+ tar cf archive directory
+ status=$?
+ chmod 700 directory
+ test $status = 2 || exit 1
- echo 1>&2 -----
- chmod 000 directory
- tar cf archive directory
- status=$?
- chmod 700 directory
- test $status = 2 || exit 1
-
- echo 1>&2 -----
- chmod 000 directory
- tar cf archive --ignore-failed-read directory || exit 1
- status=$?
- chmod 700 directory
- test $status = 0 || exit 1
-
- err="\
+ echo 1>&2 -----
+ chmod 000 directory
+ tar cf archive --ignore-failed-read directory || exit 1
+ status=$?
+ chmod 700 directory
+ test $status = 0
+fi
+],
+[0],
+[],
+[
-----
tar: file: Cannot open: Permission denied
tar: Error exit delayed from previous errors
tar: Error exit delayed from previous errors
-----
tar: directory: Warning: Cannot savedir: Permission denied
-"
-
-fi
+])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# A directory older than the listed entry was skipped completely.
-. ./preset
-TAR_ARCHIVE_FORMATS="gnu oldgnu"
-. $srcdir/before
+AT_SETUP([incremental])
+AT_KEYWORDS([incremental])
-set -e
+AT_TAR_CHECK([
mkdir structure
echo x >structure/file
tar cf archive --listed=list structure
tar cfv archive --listed=list structure
-echo -----
+echo separator
sleep 1
echo y >structure/file
tar cfv archive --listed=list structure
-
-out="\
+],
+[0],
+[
structure/
------
+separator
structure/
structure/file
-"
+],
+[],[],[],[gnu,oldgnu])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# References: <2330D503-D20A-11D8-A0CF-00039391EECE@apple.com>
# http://lists.gnu.org/archive/html/bug-tar/2004-07/msg00009.html
-. ./preset
-. $srcdir/before
+AT_SETUP([link count gt 2])
+AT_KEYWORDS([link01])
+AT_TAR_CHECK([
mkdir directory
mkdir directory/test1
mkdir directory/test2
tar xf archive
ls directory/test1
+],
+[0],
+[test.txt
+])
-out="test.txt
-"
-
-. $srcdir/after
-
-# End of link01.sh
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# References: <20040215014223.GA9699@lukas.schuldei.com>
# http://lists.gnu.org/archive/html/bug-tar/2004-02/msg00011.html
-. ./preset
-TAR_ARCHIVE_FORMATS="gnu oldgnu"
-. $srcdir/before
+AT_SETUP([--listed for individual files])
+AT_KEYWORDS([listed01])
+AT_TAR_CHECK([
mkdir directory
genfile --length 10240 --pattern zeros > directory/file1
# Let the things settle
--listed-incremental=listing \
directory/file*
-tar tf archive.1
+tar tf archive.1 || exit 1
genfile --length 10240 --pattern zeros > directory/file2
tar --create \
--file=archive.2 \
--listed-incremental=listing \
- directory/file*
-
-tar tf archive.2
+ directory/file* || exit 1
-out="\
-directory/file1
+tar tf archive.2 || exit 1
+],
+[0],
+[directory/file1
separator
directory/file2
-"
+],
+[],[],[],[gnu, oldgnu])
+
+AT_CLEANUP
-. $srcdir/after
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# <20040626230315.163AA1D148@cpc5-cmbg1-6-0-cust208.cmbg.cable.ntl.com>
# http://lists.gnu.org/archive/html/bug-tar/2004-06/msg00028.html
-. ./preset
-TAR_ARCHIVE_FORMATS="gnu oldgnu"
-. $srcdir/before
+AT_SETUP([working --listed])
+AT_KEYWORDS([listed02])
+AT_TAR_CHECK([
mkdir directory
echo Create directories
sleep 1
echo Creating main archive
-tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart
+tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart || exit 1
sleep 1
echo Modifying filesystem
sleep 1
echo Creating incremental archive
cp -p tart.incr1 tart.incr2
-tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart
+tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
sleep 1
rm -rf tart/*
echo Extracting main archive
-tar -x -v --listed-incremental=tart.incr1 -f archive.1
+tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
echo Extracting incremental archive
# This command should produce three messages about deletion
# of the existing files, that may appear in any order. Piping
# to sort makes sure we don't depend on any particular ordering.
-tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort
+tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort
echo Final files:
find tart|sort
-
-err="tar: tart/c0: Directory is new
-tar: tart/c1: Directory is new
-tar: tart/c2: Directory is new
-"
-
-out="Create directories
+],
+[0],
+[Create directories
Creating main archive
tart/
tart/c0/
tart/c1/ca1
tart/c1/ca2
Extracting incremental archive
-tar: Deleting \`tart/a1'
-tar: Deleting \`tart/b1'
-tar: Deleting \`tart/c1'
+tar: Deleting `tart/a1'
+tar: Deleting `tart/b1'
+tar: Deleting `tart/c1'
tart/
tart/b2
tart/c0/
tart/c2/ca1
tart/c2/ca2
tart/c2/ca3
-"
+],
+[tar: tart/c0: Directory is new
+tar: tart/c1: Directory is new
+tar: tart/c2: Directory is new
+],
+[],[],[gnu, oldgnu])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# Old format (V7) archives should not accept file names longer than
# 99 characters
-. ./preset
-TAR_ARCHIVE_FORMATS="v7"
-. $srcdir/before
+AT_SETUP([V7 and long names])
+AT_KEYWORDS([longv7])
-DIR=this_is_a_very_long_name_for_a_directory_which_causes_problems
-FILE=this_is_a_very_long_file_name_which_raises_issues.c
-mkdir $DIR
-touch $DIR/$FILE
+m4_define([DIR],[this_is_a_very_long_name_for_a_directory_which_causes_problems])
+m4_define([FILE],[this_is_a_very_long_file_name_which_raises_issues.c])
-tar cf archive $DIR
+AT_TAR_CHECK([
+mkdir DIR
+touch DIR/FILE
+
+tar cf archive DIR
echo separator
tar tf archive
-
-err="\
-tar: $DIR/$FILE: file name is too long (max 99); not dumped
+],
+[0],
+[separator
+DIR/
+],
+[tar: DIR/FILE: file name is too long (max 99); not dumped
tar: Error exit delayed from previous errors
-"
-
-out="\
-separator
-$DIR/
-"
+],
+[],[],[v7])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# Test multivolume dumps from pipes.
-. ./preset
-TAR_ARCHIVE_FORMATS="gnu oldgnu"
-. $srcdir/before
+AT_SETUP([multivolume dumps from pipes])
+AT_KEYWORDS([multiv01])
# Fixme: should be configurable
# TRUSS=truss -o /tmp/tr
# TRUSS=strace
-set -e
+AT_TAR_CHECK([
genfile --length 7168 > file1
for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
tar -c --multi-volume --tape-length=10 \
--listed-incremental=t.snar \
- -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2
+ -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
mkdir extract-dir-pipe
dd bs=4096 count=10 if=t2-pipe.tar 2>/dev/null |
PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
-C extract-dir-pipe -x --multi-volume \
- --tape-length=10 --read-full-records
+ --tape-length=10 --read-full-records || exit 1
cmp file1 extract-dir-pipe/file1
cmp file2 extract-dir-pipe/file2
+],
+[0],
+[],[],[],[],[gnu, oldgnu])
+
+AT_CLEANUP
-out="\
-"
-. $srcdir/after
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# References: <20040402144254.GC4409@suse.de>
# http://lists.gnu.org/archive/html/bug-tar/2004-04/msg00002.html
-. ./preset
-TAR_ARCHIVE_FORMATS="gnu oldgnu"
-. $srcdir/before
+AT_SETUP([skipping a straddling member])
+AT_KEYWORDS([multiv02])
+AT_TAR_CHECK([
genfile --length 10240 > en
genfile --length 20000 > to
genfile --length 20000 > tre
genfile --length 10240 > fire
-tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire
+tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
echo separator
-tar -v -x -f A.tar -f B.tar -f C.tar -M en
-
-out="\
-separator
+tar -v -x -f A.tar -f B.tar -f C.tar -M en || exit 1
+],
+[0],
+[separator
en
-"
+],
+[],[],[],[gnu, oldgnu])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# References: <20040809214854.GB32706@suse.de>
# http://lists.gnu.org/archive/html/bug-tar/2004-08/msg00012.html
-. ./preset
-TAR_ARCHIVE_FORMATS="gnu oldgnu"
-. $srcdir/before
+AT_SETUP([MV archive & long filenames])
+AT_KEYWORDS([multiv03])
+AT_TAR_CHECK([
AFILE=`awk 'BEGIN { for (i = 0; i < 100; i++) printf "a"; exit; }'`
BFILE=`awk 'BEGIN { for (i = 0; i < 101; i++) printf "b"; exit; }'`
+
+cat > ../experr <<EOF
+tar: $BFILE: file name too long to be stored in a GNU multivolume header
+tar: Error is not recoverable: exiting now
+EOF
+
+cat > ../expout <<EOF
+$AFILE
+separator
+EOF
+
genfile --length 15360 > $AFILE
-tar -M -L 10 -c -f arch.1 -f arch.2 $AFILE
-tar -tM -f arch.1 -f arch.2
+tar -M -L 10 -c -f arch.1 -f arch.2 $AFILE || exit 1
+tar -tM -f arch.1 -f arch.2 || exit 1
echo separator
genfile --length 15360 > $BFILE
-tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE
-
-out="\
-$AFILE
-separator
-"
+tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE
+],
+[2],
+[expout],
+[experr],
+[],[],[gnu, oldgnu])
-err="\
-tar: $BFILE: file name too long to be stored in a GNU multivolume header
-tar: Error is not recoverable: exiting now
-"
+AT_CLEANUP
-. $srcdir/after
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# An old archive was not receiving directories.
-. ./preset
-TAR_ARCHIVE_FORMATS=auto
-. $srcdir/before
+AT_SETUP([old archives])
+AT_KEYWORDS([old])
-set -e
+unset TAR_OPTIONS
+AT_CHECK([
mkdir directory
-tar cfvo archive directory
+tar cfvo archive directory || exit 1
tar tf archive
-
-out="\
-directory/
+],
+[0],
+[directory/
directory/
-"
+])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# Ensure that TAR_OPTIONS works in conjunction with old-style options.
-. ./preset
-TAR_ARCHIVE_FORMATS=auto
-. $srcdir/before
+unset TAR_OPTIONS
+AT_SETUP([options])
+AT_KEYWORDS([options])
-set -e
+AT_CHECK([
echo > file1
TAR_OPTIONS=--numeric-owner tar chof archive file1
tar tf archive
+],
+[0],
+[file1
+])
-out="\
-file1
-"
+AT_CLEANUP
-. $srcdir/after
+++ /dev/null
-#! /bin/sh
-
-# Set the testing environment.
-
-# This file is part of GNU tar testsuite.
-# Copyright (C) 2004 Free Software Foundation, Inc.
-#
-# This program 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 2, or (at your option)
-# any later version.
-#
-# This program 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, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-PACKAGE=@PACKAGE@
-VERSION=@VERSION@
-top_srcdir=@abs_top_srcdir@
-srcdir=@abs_srcdir@
-PATH=@abs_builddir@:@abs_top_builddir@/src:$top_srcdir:$srcdir:$PATH
-
-export LANGUAGE
-LANGUAGE=
-export LC_ALL
-LC_ALL="C"
-
-skiptest() {
- exit 77
-}
-
-star_prereq() {
- test -z "$STAR_TESTSCRIPTS" && skiptest
- test -r "$STAR_TESTSCRIPTS/$1" || skiptest
-}
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
-. ./preset
-. $srcdir/before
+AT_SETUP([recurse])
+AT_KEYWORDS([recurse])
-set -e
+AT_TAR_CHECK([
mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
+],
+[0],
+[directory/
+])
-out="directory/
-"
-
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# References: <20040507122613.GB12457@pike.phil.uni-passau.de>
# http://lists.gnu.org/archive/html/bug-tar/2004-05/msg00008.html
-. ./preset
-. $srcdir/before
+AT_SETUP([same-order01])
+AT_KEYWORDS([same-order01])
-set -e
+AT_TAR_CHECK([
genfile -l 1024 > file1
genfile -l 1024 > file2
tar cf archive file1 file2
mkdir directory
-tar -xf archive --same-order -C directory
+tar -xf archive --same-order -C directory || exit 1
ls directory
-
-out="\
-file1
+],
+[0],
+[file1
file2
-"
+])
+
+AT_CLEANUP
-. $srcdir/after
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# (see same-order01.sh). However, multiple -C options worked OK.
# Test if we did not break the correct behavior.
-. ./preset
-. $srcdir/before
+AT_SETUP([same-order02])
+AT_KEYWORDS([same-order02])
-set -e
+AT_TAR_CHECK([
genfile -l 1024 > file1
genfile -l 1024 > file2
tar cf archive file1 file2
mkdir to
HERE=`pwd`
-tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2
+tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1
ls en
echo separator
ls to
-
-out="\
-file1
+],
+[0],
+[file1
separator
file2
-"
+])
-. $srcdir/after
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
-# Check sparse file handling.
-
-. ./preset
-TAR_ARCHIVE_FORMATS="gnu oldgnu posix"
-. $srcdir/before
+AT_SETUP([sparse01])
+AT_KEYWORDS([sparse01])
+AT_TAR_CHECK([
genfile --length 1000 > begin
genfile --length 1000 > end
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL
-tar -c -f archive --sparse begin sparsefile end
+tar -c -f archive --sparse begin sparsefile end || exit 1
echo separator
tar tfv archive
+],
+[0],
+[stdout],
+[],[],[],[gnu, oldgnu])
-out_regex="\
-separator
+RE_CHECK([stdout],
+[separator
-rw-r--r-- [^ ][^ ]* *1000 [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9] begin
-rw-r--r-- [^ ][^ ]* *10344448[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9] sparsefile
-rw-r--r-- [^ ][^ ]* *1000 [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9] end
-"
+])
+
+AT_CLEANUP
-. $srcdir/after
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
-. ./preset
-star_prereq gtarfail.tar
-TAR_ARCHIVE_FORMATS=auto
-. $srcdir/before
+AT_SETUP([gtarfail])
+AT_KEYWORDS([gtarfail])
-tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail.tar
+unset TAR_OPTIONS
+
+AT_CHECK([
+AT_STAR_PREREQ([gtarfail.tar])
-out="\
--rw-r--r-- jes/glone 518 2001-05-25 14:41:06 vedpowered.gif
+tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail.tar
+],
+[0],
+[-rw-r--r-- jes/glone 518 2001-05-25 14:41:06 vedpowered.gif
-rw-r--r-- jes/glone 6825 1997-04-29 00:19:16 cd.gif
-rw-r--r-- jes/glone 33354 1999-06-22 12:17:38 DSCN0049c.JPG
-rw-r--r-- jes/glone 86159 2001-06-05 18:16:04 Window1.jpg
-rw-r--r-- jes/glone 1310 2001-05-25 13:05:41 vipower.gif
-rw-rw-rw- jes/glone 148753 1998-09-15 13:08:15 billyboy.jpg
-"
-. $srcdir/after
+])
+
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
-. ./preset
-star_prereq gtarfail2.tar
-TAR_ARCHIVE_FORMATS=auto
-. $srcdir/before
+AT_SETUP([gtarfail2])
+AT_KEYWORDS([gtarfail2])
-tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail2.tar
+unset TAR_OPTIONS
-out="\
--rwxr-xr-x jes/glone 214 2001-09-21 14:08:36 .clean
+AT_CHECK([
+AT_STAR_PREREQ([gtarfail2.tar])
+tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail2.tar
+],
+[0],
+[-rwxr-xr-x jes/glone 214 2001-09-21 14:08:36 .clean
lrwxrwxrwx jes/cats 0 1998-05-07 12:39:00 RULES -> makefiles/RULES
drwxr-sr-x jes/glone 0 2001-12-10 00:00:58 build/
-rw-r--r-- jes/glone 312019 2001-12-10 00:00:20 build/smake-1.2.tar.gz
-rw-r--r-- jes/glone 647 2001-02-25 23:50:06 build/psmake/Makefile
lrwxrwxrwx jes/glone 0 2001-08-29 10:53:53 build/psmake/archconf.c -> ../archconf.c
lrwxrwxrwx jes/glone 0 2001-08-29 10:54:00 build/psmake/astoi.c -> ../../lib/astoi.c
-"
+])
+
+AT_CLEANUP
+
-. $srcdir/after
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
-. ./preset
-star_prereq gnu-multi-fail-volume1.gtar
-star_prereq gnu-multi-fail-volume2.gtar
-TAR_ARCHIVE_FORMATS=auto
-. $srcdir/before
+AT_SETUP([multi-fail])
+AT_KEYWORDS([multi-fail])
+
+unset TAR_OPTIONS
+
+AT_CHECK([
+AT_STAR_PREREQ([gnu-multi-fail-volume1.gtar])
+AT_STAR_PREREQ([gnu-multi-fail-volume2.gtar])
tar --utc -tvM -f $STAR_TESTSCRIPTS/gnu-multi-fail-volume1.gtar \
-f $STAR_TESTSCRIPTS/gnu-multi-fail-volume2.gtar
-
-out="\
-drwxrwsr-x joerg/bs 0 2003-10-11 14:32:43 OBJ/i386-sunos5-gcc/
+],
+[0],
+[drwxrwsr-x joerg/bs 0 2003-10-11 14:32:43 OBJ/i386-sunos5-gcc/
-rw-r--r-- joerg/bs 1 2003-10-11 14:32:50 OBJ/i386-sunos5-gcc/Dnull
-rw-r--r-- joerg/bs 1743 2003-10-10 18:06:58 OBJ/i386-sunos5-gcc/star.d
-rw-r--r-- joerg/bs 1460 2003-10-11 11:53:36 OBJ/i386-sunos5-gcc/header.d
-rw-r--r-- joerg/bs 2576 2003-10-10 18:07:10 OBJ/i386-sunos5-gcc/names.o
-rw-r--r-- joerg/bs 952 2003-10-10 18:07:10 OBJ/i386-sunos5-gcc/movearch.o
-rw-r--r-- joerg/bs 2756 2003-10-07 17:53:59 OBJ/i386-sunos5-gcc/table.o
-"
+])
+
+AT_CLEANUP
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
-. ./preset
-star_prereq pax-big-10g.tar.bz2
-TAR_ARCHIVE_FORMATS=auto
-. $srcdir/before
+AT_SETUP([pax-big-10g])
+AT_KEYWORDS([pax-big-10g])
-tar --utc -tvjf $STAR_TESTSCRIPTS/pax-big-10g.tar.bz2
+unset TAR_OPTIONS
-out="\
--rw------- jes/glone 10737418240 2002-06-15 21:18:47 10g
+AT_CHECK([
+AT_STAR_PREREQ([pax-big-10g.tar.bz2])
+
+tar --utc -tvjf $STAR_TESTSCRIPTS/pax-big-10g.tar.bz2
+],
+[0],
+[-rw------- jes/glone 10737418240 2002-06-15 21:18:47 10g
-rw-r--r-- jes/glone 0 2002-06-15 14:53:32 file
-"
+],
+[stderr])
+
+RE_CHECK([stderr],[tar: Record size = .*
+])
+
+AT_CLEANUP
-err_regex="\
-tar: Record size = .*
-"
-. $srcdir/after
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
-. ./preset
-star_prereq ustar-big-2g.tar.bz2
-TAR_ARCHIVE_FORMATS=auto
-. $srcdir/before
+AT_SETUP([ustar-big-2g])
+AT_KEYWORDS([ustar-big-2g])
-tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-2g.tar.bz2
+unset TAR_OPTIONS
+
+AT_CHECK([
+AT_STAR_PREREQ([ustar-big-2g.tar.bz2])
-out="\
--rw------- jes/glone 2147483647 2002-06-15 14:53:23 big
+tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-2g.tar.bz2
+],
+[0],
+[-rw------- jes/glone 2147483647 2002-06-15 14:53:23 big
-rw-r--r-- jes/glone 0 2002-06-15 14:53:32 file
-"
+],
+[stderr])
+
+RE_CHECK([stderr],[tar: Record size = .*
+])
-err_regex="\
-tar: Record size = .*
-"
+AT_CLEANUP
-. $srcdir/after
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
-. ./preset
-star_prereq ustar-big-8g.tar.bz2
-TAR_ARCHIVE_FORMATS=auto
-. $srcdir/before
+AT_SETUP([ustar-big-8g])
+AT_KEYWORDS([ustar-big-8g])
-tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-8g.tar.bz2
+unset TAR_OPTIONS
+
+AT_CHECK([
+AT_STAR_PREREQ([ustar-big-8g.tar.bz2])
-out="\
--rw------- jes/glone 8589934591 2002-06-15 15:08:33 8gb-1
+tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-8g.tar.bz2
+],
+[0],
+[-rw------- jes/glone 8589934591 2002-06-15 15:08:33 8gb-1
-rw-r--r-- jes/glone 0 2002-06-15 14:53:32 file
-"
+],
+[stderr])
+
+RE_CHECK([stderr],[tar: Record size = .*
+])
-err_regex="\
-tar: Record size = .*
-"
+AT_CLEANUP
-. $srcdir/after
--- /dev/null
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+
+# This program 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 2, or (at your option)
+# any later version.
+
+# This program 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, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# We need a recent Autotest.
+m4_version_prereq([2.52g])
+
+m4_define([AT_TAR_CHECK],[
+ m4_foreach([FMT],
+ [m4_if([$7],[],[v7,oldgnu,ustar,posix,gnu],[$7])],
+ [AT_CHECK([
+mkdir FMT
+(cd FMT
+TAR_OPTIONS="-H FMT"
+export TAR_OPTIONS
+rm -rf *
+$1)],$2,$3,$4,$5,$6)])
+])
+
+m4_define([RE_CHECK],[
+AT_DATA([$1.re],[$2])
+awk '{print NR " " $[]0}' $1.re > $[]$.1
+awk '{print NR " " $[]0}' $1 | join $[]$.1 - |
+while read NUM RE LINE
+do
+ echo "$LINE" | grep -- "$RE" >/dev/null || exit 1
+done
+])
+
+m4_define([AT_SKIP_TEST],[exit 77])
+
+m4_define([AT_STAR_PREREQ],[
+test -z "$STAR_TESTSCRIPTS" && AT_SKIP_TEST
+test -r "$STAR_TESTSCRIPTS/$1" || AT_SKIP_TEST
+])
+
+AT_INIT
+
+AT_TESTED([tar])
+
+m4_include([version.at])
+
+m4_include([options.at])
+
+m4_include([append.at])
+
+m4_include([delete01.at])
+m4_include([delete02.at])
+m4_include([delete03.at])
+m4_include([delete04.at])
+
+m4_include([extrac01.at])
+m4_include([extrac02.at])
+m4_include([extrac03.at])
+m4_include([extrac04.at])
+m4_include([extrac05.at])
+
+m4_include([gzip.at])
+
+m4_include([incremental.at])
+
+m4_include([ignfail.at])
+
+m4_include([link01.at])
+
+m4_include([listed01.at])
+m4_include([listed02.at])
+
+m4_include([longv7.at])
+
+m4_include([multiv01.at])
+m4_include([multiv02.at])
+m4_include([multiv03.at])
+
+m4_include([old.at])
+
+m4_include([recurse.at])
+
+m4_include([same-order01.at])
+m4_include([same-order02.at])
+
+m4_include([sparse01.at])
+
+m4_include([volume.at])
+
+m4_include([star/gtarfail.at])
+m4_include([star/gtarfail2.at])
+
+m4_include([star/multi-fail.at])
+
+m4_include([star/ustar-big-2g.at])
+m4_include([star/ustar-big-8g.at])
+
+m4_include([star/pax-big-10g.at])
+
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Checking tar version -*- Autotest -*-
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
-# Problem: Append was just not working.
-
-. ./preset
-. $srcdir/before
-
-set -e
-touch file1
-touch file2
-tar cf archive file1
-tar rf archive file2
-tar tf archive
+AT_SETUP([tar version])
-out="\
-file1
-file2
-"
+AT_CHECK([tar --version],
+ [0],
+ [AT_PACKAGE_TARNAME (AT_PACKAGE_NAME) AT_PACKAGE_VERSION
+])
-. $srcdir/after
+AT_CLEANUP
+
\ No newline at end of file
+++ /dev/null
-#! /bin/sh
-# This file is part of GNU tar testsuite.
-# Copyright (C) 2004 Free Software Foundation, Inc.
-#
-# This program 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 2, or (at your option)
-# any later version.
-#
-# This program 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, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# Check if the proper version is being tested.
-
-. ./preset
-
-if test -n "`$PACKAGE --version | sed -n s/$PACKAGE.*$VERSION/OK/p`"; then
- banner="Regression testing for GNU $PACKAGE, version $VERSION"
- dashes=`echo $banner | sed s/./=/g`
- echo $dashes
- echo $banner
- echo $dashes
-else
- echo '=============================================================='
- echo 'WARNING: Not using the proper version, *all* checks dubious...'
- echo '=============================================================='
- exit 1
-fi
-#! /bin/sh
-# This file is part of GNU tar testsuite.
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
# Copyright (C) 2004 Free Software Foundation, Inc.
-#
+
# This program 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 2, or (at your option)
# any later version.
-#
+
# This program 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# Volume labels are checked on read by fnmatch.
-. ./preset
-TAR_ARCHIVE_FORMATS="gnu oldgnu"
-. $srcdir/before
+AT_SETUP([volume])
+AT_KEYWORDS([volume])
+AT_TAR_CHECK([
tar -cf archive -V label -T /dev/null || exit 1
tar xfV archive label || exit 1
test $? = 2 || exit 1
echo 1>&2 -----
tar xfV archive babel
-test $? = 2 || exit 1
-
-err="\
------
-tar: Volume \`label' does not match \`lab'
+test $? = 2
+],
+[0],
+[],
+[-----
+tar: Volume `label' does not match `lab'
tar: Error is not recoverable: exiting now
-----
-tar: Volume \`label' does not match \`bel'
+tar: Volume `label' does not match `bel'
tar: Error is not recoverable: exiting now
-----
-tar: Volume \`label' does not match \`babel'
+tar: Volume `label' does not match `babel'
tar: Error is not recoverable: exiting now
-"
+],
+[],[],[gnu, oldgnu])
+
+AT_CLEANUP
-. $srcdir/after