From: Sergey Poznyakoff Date: Wed, 1 Nov 2006 00:23:52 +0000 (+0000) Subject: Add new test cases. X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=2504e7d3ae123079e7883b8c23175b1a26a5e077;p=chaz%2Ftar Add new test cases. --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 5f6a42f..33edd0e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -46,6 +46,8 @@ $(srcdir)/package.m4: $(top_srcdir)/configure.ac ## ------------ ## TESTSUITE_AT = \ + T-empty.at\ + T-null.at\ testsuite.at\ append.at\ append01.at\ @@ -63,6 +65,7 @@ TESTSUITE_AT = \ extrac04.at\ extrac05.at\ extrac06.at\ + extrac07.at\ gzip.at\ grow.at\ incremental.at\ diff --git a/tests/T-empty.at b/tests/T-empty.at new file mode 100644 index 0000000..be902fb --- /dev/null +++ b/tests/T-empty.at @@ -0,0 +1,52 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# Tar 1.16 coredumped if a filelist file contained empty (zero-length) +# entries +# Reported by: Karl Berry +# References: <200610301353.k9UDr1O30680@f7.net> + +AT_SETUP([files-from: empty entries]) +AT_KEYWORDS([files-from empty]) + +AT_DATA([file-list], +[jeden +dwa + +trzy +]) + +AT_TAR_CHECK([ +AT_SORT_PREREQ + +genfile --file jeden +genfile --file dwa +genfile --file trzy + +tar cfvT archive ../file-list | sort +], +[0], +[dwa +jeden +trzy +], +[],[],[],[ustar]) # Testing one format is enough + +AT_CLEANUP \ No newline at end of file diff --git a/tests/T-null.at b/tests/T-null.at new file mode 100644 index 0000000..5606b85 --- /dev/null +++ b/tests/T-null.at @@ -0,0 +1,46 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +AT_SETUP([files-from: 0-separated file without -0]) +AT_KEYWORDS([files-from null]) + +AT_TAR_CHECK([ +AT_SORT_PREREQ + +echo dwa > temp +echo trzy >> temp +cat temp | tr '\n' '\0' > temp1 +echo jeden > file-list +cat temp1 >> file-list + +genfile -f "jeden +dwa" +genfile -f trzy + +tar cfTv archive file-list | sort +], +[0], +[jeden\ndwa +trzy +], +[tar: file-list: file name read contains nul character +],[],[ustar]) # Testing one format is enough + +AT_CLEANUP diff --git a/tests/extrac07.at b/tests/extrac07.at new file mode 100644 index 0000000..1fd2526 --- /dev/null +++ b/tests/extrac07.at @@ -0,0 +1,56 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# Tar 1.16 failed to extract archives that have symlinks +# in read-only directories. +# +# Reported-by: Eelco Dolstra +# References: <45475D78.8050708@cs.uu.nl> + +AT_SETUP([extracting symlinks to a read-only dir]) +AT_KEYWORDS([extract extract07 read-only symlink]) + +AT_TAR_CHECK([ +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir + +echo Create the archive +tar cf archive dir || exit 1 + +echo Extract +mkdir out +tar -C out -xvf archive +], +[0], +[Prepare the directory +Create the archive +Extract +dir/ +dir/foo +],[],[],[ustar]) # Testing one format is enough + +AT_CLEANUP + + diff --git a/tests/testsuite.at b/tests/testsuite.at index ea894cc..572c745 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -100,6 +100,9 @@ m4_include([pipe.at]) m4_include([options.at]) m4_include([options02.at]) +m4_include([T-empty.at]) +m4_include([T-null.at]) + m4_include([indexfile.at]) m4_include([verbose.at]) @@ -119,6 +122,7 @@ m4_include([extrac03.at]) m4_include([extrac04.at]) m4_include([extrac05.at]) m4_include([extrac06.at]) +m4_include([extrac07.at]) m4_include([gzip.at])