summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2006-11-01 00:23:52 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2006-11-01 00:23:52 +0000
commit2504e7d3ae123079e7883b8c23175b1a26a5e077 (patch)
tree7398db966dbd9abe238a26bddd472e45a7db9784
parentb0765e257cf27e5a1fd78715f1b8bef3e30890a5 (diff)
downloadtar-2504e7d3ae123079e7883b8c23175b1a26a5e077.tar.gz
Add new test cases.
-rw-r--r--tests/Makefile.am3
-rw-r--r--tests/T-empty.at52
-rw-r--r--tests/T-null.at46
-rw-r--r--tests/extrac07.at56
-rw-r--r--tests/testsuite.at4
5 files changed, 161 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 5f6a42f6..33edd0e5 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 00000000..be902fbb
--- /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 <karl@freefriends.org>
+# 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 00000000..5606b85f
--- /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 00000000..1fd25263
--- /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 <eelco@cs.uu.nl>
+# 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 ea894cc1..572c7457 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])