Rewritten testsuite in autotest

This commit is contained in:
Sergey Poznyakoff
2004-09-07 18:48:13 +00:00
parent a1c8c7bd47
commit 35cae74c4c
40 changed files with 784 additions and 744 deletions

View File

@@ -1,55 +0,0 @@
#! /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-$$

34
tests/append.at Normal file
View File

@@ -0,0 +1,34 @@
# 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

6
tests/atlocal.in Normal file
View File

@@ -0,0 +1,6 @@
# @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

View File

@@ -1,53 +0,0 @@
#! /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

28
tests/delete01.sh → tests/delete01.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,18 +20,17 @@
# 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
tar tf archive],
[0],
[file1
])
out="\
file1
"
. $srcdir/after
AT_CLEANUP

32
tests/delete02.sh → tests/delete02.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,26 +20,25 @@
# 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

54
tests/delete03.sh → tests/delete03.at Executable file → Normal file
View File

@@ -1,44 +1,48 @@
#! /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
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])
out="\
./${prefix}1
./${prefix}2
./${prefix}3
./${prefix}4
./${prefix}6
./${prefix}7
./${prefix}8
./${prefix}9
"
. $srcdir/after
AT_CLEANUP

27
tests/delete04.sh → tests/delete04.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,10 +20,10 @@
# 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
@@ -36,9 +37,9 @@ genfile -l 256000 >file10
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
@@ -47,6 +48,6 @@ file6
file7
file8
file9
"
])
. $srcdir/after
AT_CLEANUP

20
tests/extrac01.sh → tests/extrac01.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,13 +20,14 @@
# 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

22
tests/extrac02.sh → tests/extrac02.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,15 +20,18 @@
# Could not extract symlinks over an existing file.
. ./preset
. $srcdir/before
AT_SETUP([extracting symlings over an existing file])
AT_KEYWORDS([extract02])
set -e
# FIXME: Skip if symlinks are not supported on the system
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

32
tests/extrac03.sh → tests/extrac03.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,19 +20,18 @@
# 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="\
echo separator
tar -xPvf archive],
[0],
[directory/../directory/
separator
directory/../directory/
-----
directory/../directory/
"
])
. $srcdir/after
AT_CLEANUP

27
tests/extrac04.sh → tests/extrac04.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,10 +20,10 @@
# 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
@@ -35,11 +36,11 @@ tar -tf archive \
--exclude='./*1' \
--exclude='d*/*1' \
--exclude='d*/s*/*2' | sort
out="\
directory/
],
[0],
[directory/
directory/file2
directory/subdirectory/
"
])
. $srcdir/after
AT_CLEANUP

46
tests/extrac05.sh → tests/extrac05.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -26,34 +27,35 @@
# 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

31
tests/gzip.sh → tests/gzip.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,18 +20,22 @@
# 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

97
tests/ignfail.sh → tests/ignfail.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,54 +20,50 @@
# 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
@@ -77,8 +74,6 @@ tar: directory: Cannot savedir: Permission denied
tar: Error exit delayed from previous errors
-----
tar: directory: Warning: Cannot savedir: Permission denied
"
])
fi
. $srcdir/after
AT_CLEANUP

32
tests/incremen.sh → tests/incremental.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,11 +20,10 @@
# 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
@@ -43,16 +43,18 @@ sleep 1
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

27
tests/link01.sh → tests/link01.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -29,9 +30,10 @@
# 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
@@ -45,10 +47,9 @@ rm -r directory
tar xf archive
ls directory/test1
],
[0],
[test.txt
])
out="test.txt
"
. $srcdir/after
# End of link01.sh
AT_CLEANUP

35
tests/listed01.sh → tests/listed01.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -22,10 +23,10 @@
# 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
@@ -36,7 +37,7 @@ tar --create \
--listed-incremental=listing \
directory/file*
tar tf archive.1
tar tf archive.1 || exit 1
genfile --length 10240 --pattern zeros > directory/file2
@@ -45,14 +46,16 @@ echo "separator"
tar --create \
--file=archive.2 \
--listed-incremental=listing \
directory/file*
directory/file* || exit 1
tar tf archive.2
out="\
directory/file1
tar tf archive.2 || exit 1
],
[0],
[directory/file1
separator
directory/file2
"
],
[],[],[],[gnu, oldgnu])
AT_CLEANUP
. $srcdir/after

50
tests/listed02.sh → tests/listed02.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -24,10 +25,10 @@
# <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
@@ -46,7 +47,7 @@ done
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
@@ -61,28 +62,24 @@ find tart|sort
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/
@@ -123,9 +120,9 @@ tart/c0/cq2
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/
@@ -143,6 +140,11 @@ tart/c2
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

47
tests/longv7.sh → tests/longv7.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -20,28 +21,28 @@
# 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
"
],
[],[],[v7])
out="\
separator
$DIR/
"
. $srcdir/after
AT_CLEANUP

30
tests/multiv01.sh → tests/multiv01.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,15 +20,14 @@
# 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" \
@@ -40,18 +40,20 @@ done >file2
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

32
tests/multiv02.sh → tests/multiv02.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -24,22 +25,23 @@
# 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

50
tests/multiv03.sh → tests/multiv03.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -24,30 +25,37 @@
# 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
tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE
],
[2],
[expout],
[experr],
[],[],[gnu, oldgnu])
out="\
$AFILE
separator
"
AT_CLEANUP
err="\
tar: $BFILE: file name too long to be stored in a GNU multivolume header
tar: Error is not recoverable: exiting now
"
. $srcdir/after

31
tests/old.sh → tests/old.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,18 +20,18 @@
# 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="\
],
[0],
[directory/
directory/
directory/
"
])
. $srcdir/after
AT_CLEANUP

28
tests/options.sh → tests/options.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,17 +20,18 @@
# 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

View File

@@ -1,41 +0,0 @@
#! /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
}

26
tests/recurse.sh → tests/recurse.at Executable file → Normal file
View File

@@ -1,32 +1,34 @@
#! /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

30
tests/same-order01.sh → tests/same-order01.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -22,22 +23,23 @@
# 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

29
tests/same-order02.sh → tests/same-order02.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -21,10 +22,10 @@
# (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
@@ -33,16 +34,16 @@ mkdir en
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

34
tests/sparse01.sh → tests/sparse01.at Executable file → Normal file
View File

@@ -1,41 +1,45 @@
#! /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

33
tests/star/gtarfail.sh → tests/star/gtarfail.at Executable file → Normal file
View File

@@ -1,35 +1,40 @@
#! /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])
unset TAR_OPTIONS
AT_CHECK([
AT_STAR_PREREQ([gtarfail.tar])
tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail.tar
out="\
-rw-r--r-- jes/glone 518 2001-05-25 14:41:06 vedpowered.gif
],
[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

33
tests/star/gtarfail2.sh → tests/star/gtarfail2.at Executable file → Normal file
View File

@@ -1,31 +1,34 @@
#! /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])
unset TAR_OPTIONS
AT_CHECK([
AT_STAR_PREREQ([gtarfail2.tar])
tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail2.tar
out="\
-rwxr-xr-x jes/glone 214 2001-09-21 14:08:36 .clean
],
[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
@@ -35,6 +38,8 @@ drwxr-sr-x jes/glone 0 2001-11-09 18:20:33 build/psmake/
-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

34
tests/star/multi-fail.sh → tests/star/multi-fail.at Executable file → Normal file
View File

@@ -1,33 +1,37 @@
#! /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
@@ -79,5 +83,7 @@ drwxrwsr-x joerg/bs 0 2003-10-11 14:32:43 OBJ/i386-sunos5-gcc/
-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

40
tests/star/pax-big-10g.sh → tests/star/pax-big-10g.at Executable file → Normal file
View File

@@ -1,36 +1,42 @@
#! /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])
unset TAR_OPTIONS
AT_CHECK([
AT_STAR_PREREQ([pax-big-10g.tar.bz2])
tar --utc -tvjf $STAR_TESTSCRIPTS/pax-big-10g.tar.bz2
out="\
-rw------- jes/glone 10737418240 2002-06-15 21:18:47 10g
],
[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

View File

@@ -1,36 +1,41 @@
#! /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])
unset TAR_OPTIONS
AT_CHECK([
AT_STAR_PREREQ([ustar-big-2g.tar.bz2])
tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-2g.tar.bz2
out="\
-rw------- jes/glone 2147483647 2002-06-15 14:53:23 big
],
[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])
err_regex="\
tar: Record size = .*
"
RE_CHECK([stderr],[tar: Record size = .*
])
AT_CLEANUP
. $srcdir/after

View File

@@ -1,36 +1,41 @@
#! /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])
unset TAR_OPTIONS
AT_CHECK([
AT_STAR_PREREQ([ustar-big-8g.tar.bz2])
tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-8g.tar.bz2
out="\
-rw------- jes/glone 8589934591 2002-06-15 15:08:33 8gb-1
],
[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])
err_regex="\
tar: Record size = .*
"
RE_CHECK([stderr],[tar: Record size = .*
])
AT_CLEANUP
. $srcdir/after

111
tests/testsuite.at Normal file
View File

@@ -0,0 +1,111 @@
# 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])

32
tests/append.sh → tests/version.at Executable file → Normal file
View File

@@ -1,37 +1,27 @@
#! /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.
AT_SETUP([tar version])
. ./preset
. $srcdir/before
AT_CHECK([tar --version],
[0],
[AT_PACKAGE_TARNAME (AT_PACKAGE_NAME) AT_PACKAGE_VERSION
])
set -e
touch file1
touch file2
tar cf archive file1
tar rf archive file2
tar tf archive
out="\
file1
file2
"
. $srcdir/after
AT_CLEANUP

View File

@@ -1,35 +0,0 @@
#! /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

46
tests/volume.sh → tests/volume.at Executable file → Normal file
View File

@@ -1,17 +1,18 @@
#! /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
@@ -19,10 +20,10 @@
# 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
@@ -37,18 +38,21 @@ tar xfV archive bel
test $? = 2 || exit 1
echo 1>&2 -----
tar xfV archive babel
test $? = 2 || exit 1
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: Error is not recoverable: exiting now
-----
tar: Volume `label' does not match `babel'
tar: Error is not recoverable: exiting now
],
[],[],[gnu, oldgnu])
err="\
-----
tar: Volume \`label' does not match \`lab'
tar: Error is not recoverable: exiting now
-----
tar: Volume \`label' does not match \`bel'
tar: Error is not recoverable: exiting now
-----
tar: Volume \`label' does not match \`babel'
tar: Error is not recoverable: exiting now
"
AT_CLEANUP
. $srcdir/after