summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Stratton Treadway <nathanst@ontko.com>2014-07-27 23:27:28 +0300
committerSergey Poznyakoff <gray@gnu.org>2014-07-27 23:27:28 +0300
commitfcde08534bdabfaa50d9c762631c8ccc0a94fefa (patch)
treeb5b68725dc132841bca3a793f141d9a9669d1439
parenta5db4ba5cb8a4e2685ff5eb109eb43d19f7912f8 (diff)
downloadtar-fcde08534bdabfaa50d9c762631c8ccc0a94fefa.tar.gz
Restructure the remfiles testsuite.
-rw-r--r--tests/remfiles06c.at2
-rw-r--r--tests/remfiles07a.at6
-rw-r--r--tests/remfiles07b.at6
-rw-r--r--tests/remfiles07c.at8
-rw-r--r--tests/remfiles08a.at31
-rw-r--r--tests/remfiles08b.at38
-rw-r--r--tests/remfiles08c.at37
-rw-r--r--tests/remfiles09a.at2
-rw-r--r--tests/remfiles09b.at3
9 files changed, 67 insertions, 66 deletions
diff --git a/tests/remfiles06c.at b/tests/remfiles06c.at
index 6cb2f507..78a70e49 100644
--- a/tests/remfiles06c.at
+++ b/tests/remfiles06c.at
@@ -37,7 +37,7 @@ tar -cf foo.tar -C foo file -C $DIR/bar file
decho A
find . | sort
decho B
-tar -rvf foo.tar --remove-files -C foo file -C ../bar file
+tar -rvf foo.tar --remove-files -C foo file -C $DIR/bar file
decho C
find . | sort
],
diff --git a/tests/remfiles07a.at b/tests/remfiles07a.at
index 36c42e0d..f3131f77 100644
--- a/tests/remfiles07a.at
+++ b/tests/remfiles07a.at
@@ -18,11 +18,11 @@
# Description: ensure tar correctly respects -C option when deleting
# files due to the --remove-files option.
#
-# This case checks the use of a relative -C option followed by an absolute -C,
+# This case checks the use of an absolute -C option followed by a relative -C,
# in --create/non-incremental mode.
#
-AT_SETUP([remove-files with -C:rel,abs in -c/non-incr. mode])
+AT_SETUP([remove-files with -C:abs,rel in -c/non-incr. mode])
AT_KEYWORDS([create remove-files remfiles07 remfiles07a])
AT_TAR_CHECK([
@@ -34,7 +34,7 @@ echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
decho A
-tar -cvf foo.tar --remove-files -C foo file -C $DIR/bar file
+tar -cvf foo.tar --remove-files -C $DIR/foo file -C ../bar file
decho B
find . | sort
],
diff --git a/tests/remfiles07b.at b/tests/remfiles07b.at
index e3aa4542..c5db0d5a 100644
--- a/tests/remfiles07b.at
+++ b/tests/remfiles07b.at
@@ -18,11 +18,11 @@
# Description: ensure tar correctly respects -C option when deleting
# files due to the --remove-files option.
#
-# This case checks the use of a relative -C option followed by an absolute -C,
+# This case checks the use of an absolute -C option followed by a relative -C,
# in --create/incremental mode.
#
-AT_SETUP([remove-files with -C:rel,abs in -c/incr. mode])
+AT_SETUP([remove-files with -C:abs,rel in -c/incr. mode])
AT_KEYWORDS([create incremental remove-files remfiles07 remfiles07b])
AT_TAR_CHECK([
@@ -34,7 +34,7 @@ echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
decho A
-tar -cvf foo.tar --incremental --remove-files -C foo file -C $DIR/bar file
+tar -cvf foo.tar --incremental --remove-files -C $DIR/foo file -C ../bar file
decho B
find . | sort
],
diff --git a/tests/remfiles07c.at b/tests/remfiles07c.at
index f8ac0baa..9b4139a4 100644
--- a/tests/remfiles07c.at
+++ b/tests/remfiles07c.at
@@ -18,11 +18,11 @@
# Description: ensure tar correctly respects -C option when deleting
# files due to the --remove-files option.
#
-# This case checks the use of a relative -C option followed by an absolute -C,
+# This case checks the use of an absolute -C option followed by a relative -C,
# in --append mode.
#
-AT_SETUP([remove-files with -C:rel,abs in -r mode])
+AT_SETUP([remove-files with -C:abs,rel in -r mode])
AT_KEYWORDS([create append remove-files remfiles07 remfiles07c])
AT_TAR_CHECK([
@@ -33,11 +33,11 @@ echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
-tar -cf foo.tar -C foo file -C $DIR/bar file
+tar -cf foo.tar -C $DIR/foo file -C ../bar file
decho A
find . | sort
decho B
-tar -rvf foo.tar --remove-files -C foo file -C $DIR/bar file
+tar -rvf foo.tar --remove-files -C $DIR/foo file -C ../bar file
decho C
find . | sort
],
diff --git a/tests/remfiles08a.at b/tests/remfiles08a.at
index edb5170a..8db9f717 100644
--- a/tests/remfiles08a.at
+++ b/tests/remfiles08a.at
@@ -15,38 +15,37 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Description: ensure tar correctly respects -C option when deleting
-# files due to the --remove-files option.
+# Description: If tar 1.26 was called with the --remove-files option and told
+# to archive (and thus delete) two subdirectories where the second was
+# specified relative to the first, it would be unable to delete the
+# second directory (and its contents), since the relative path would no
+# longer be valid once the first directory was deleted.
#
-# This case checks the use of an absolute -C option followed by a relative -C,
+# This case checks for successful deletion of all archived items
# in --create/non-incremental mode.
#
-AT_SETUP([remove-files with -C:abs,rel in -c/non-incr. mode])
+AT_SETUP([remove-files deleting two subdirs in -c/non-incr. mode])
AT_KEYWORDS([create remove-files remfiles08 remfiles08a])
AT_TAR_CHECK([
-AT_SORT_PREREQ
mkdir foo
mkdir bar
-echo file > file
-echo foo/file > foo/file
-echo bar/file > bar/file
-DIR=`pwd`
+echo foo/foo_file > foo/foo_file
+echo bar/bar_file > bar/bar_file
decho A
-tar -cvf foo.tar --remove-files -C $DIR/foo file -C ../bar file
+tar -cvf foo.tar --remove-files -C foo . -C ../bar .
decho B
-find . | sort
+find .
],
[0],
[A
-file
-file
+./
+./foo_file
+./
+./bar_file
B
.
-./bar
-./file
-./foo
./foo.tar
],
[A
diff --git a/tests/remfiles08b.at b/tests/remfiles08b.at
index f05b7f8d..13beaf42 100644
--- a/tests/remfiles08b.at
+++ b/tests/remfiles08b.at
@@ -15,41 +15,47 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Description: ensure tar correctly respects -C option when deleting
-# files due to the --remove-files option.
+# Description: If tar 1.26 was called with the --remove-files option and told
+# to archive (and thus delete) two subdirectories where the second was
+# specified relative to the first, it would be unable to delete the
+# second directory (and its contents), since the relative path would no
+# longer be valid once the first directory was deleted.
#
-# This case checks the use of an absolute -C option followed by a relative -C,
+# This case checks for successful deletion of all archived items
# in --create/incremental mode.
#
+# Note: tar 1.27 fails this test case due to a more general issue
+# archving-and-removing a full directory tree when run in incremental
+# mode; see remfiles09b.at for that specific test case.
-AT_SETUP([remove-files with -C:abs,rel in -c/incr. mode])
+AT_SETUP([remove-files deleting two subdirs in -c/incr. mode])
AT_KEYWORDS([create incremental remove-files remfiles08 remfiles08b])
+AT_XFAIL_IF(true) # we expect to fail in tar 1.27
+
AT_TAR_CHECK([
-AT_SORT_PREREQ
mkdir foo
mkdir bar
-echo file > file
-echo foo/file > foo/file
-echo bar/file > bar/file
-DIR=`pwd`
+echo foo/foo_file > foo/foo_file
+echo bar/bar_file > bar/bar_file
decho A
-tar -cvf foo.tar --incremental --remove-files -C $DIR/foo file -C ../bar file
+tar -cvf foo.tar --incremental --remove-files -C foo . -C ../bar .
decho B
-find . | sort
+find .
],
[0],
[A
-file
-file
+./
+./
+./foo_file
+./bar_file
B
.
-./bar
-./file
-./foo
./foo.tar
],
[A
+tar: .: Directory is new
+tar: .: Directory is new
B
],[],[],[gnu])
diff --git a/tests/remfiles08c.at b/tests/remfiles08c.at
index f9730b30..b52b0328 100644
--- a/tests/remfiles08c.at
+++ b/tests/remfiles08c.at
@@ -15,49 +15,48 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Description: ensure tar correctly respects -C option when deleting
-# files due to the --remove-files option.
+# Description: If tar 1.26 was called with the --remove-files option and told
+# to archive (and thus delete) two subdirectories where the second was
+# specified relative to the first, it would be unable to delete the
+# second directory (and its contents), since the relative path would no
+# longer be valid once the first directory was deleted.
#
-# This case checks the use of an absolute -C option followed by a relative -C,
+# This case checks for successful deletion of all archived items
# in --append mode.
#
-AT_SETUP([remove-files with -C:abs,rel in -r mode])
+AT_SETUP([remove-files deleting two subdirs in -r mode])
AT_KEYWORDS([create append remove-files remfiles08 remfiles08c])
AT_TAR_CHECK([
AT_SORT_PREREQ
mkdir foo
mkdir bar
-echo file > file
-echo foo/file > foo/file
-echo bar/file > bar/file
-DIR=`pwd`
-tar -cf foo.tar -C $DIR/foo file -C ../bar file
+echo foo/foo_file > foo/foo_file
+echo bar/bar_file > bar/bar_file
+tar -cf foo.tar -C foo . -C ../bar .
decho A
find . | sort
decho B
-tar -rvf foo.tar --remove-files -C $DIR/foo file -C ../bar file
+tar -rvf foo.tar --remove-files -C foo . -C ../bar .
decho C
-find . | sort
+find .
],
[0],
[A
.
./bar
-./bar/file
-./file
+./bar/bar_file
./foo
./foo.tar
-./foo/file
+./foo/foo_file
B
-file
-file
+./
+./foo_file
+./
+./bar_file
C
.
-./bar
-./file
-./foo
./foo.tar
],
[A
diff --git a/tests/remfiles09a.at b/tests/remfiles09a.at
index dfd9e5ef..5f96737e 100644
--- a/tests/remfiles09a.at
+++ b/tests/remfiles09a.at
@@ -31,7 +31,7 @@ echo foo/file > foo/file
decho A
tar -cvf foo.tar --remove-files foo
decho B
-find .
+find .
],
[0],
[A
diff --git a/tests/remfiles09b.at b/tests/remfiles09b.at
index 26e5624e..45b8440c 100644
--- a/tests/remfiles09b.at
+++ b/tests/remfiles09b.at
@@ -32,12 +32,10 @@ AT_KEYWORDS([create incremental remove-files remfiles09 remfiles09b])
AT_XFAIL_IF(true) # we expect to fail in tar 1.27
AT_TAR_CHECK([
-AT_SORT_PREREQ
mkdir foo
echo foo/file > foo/file
decho A
tar -cvf foo.tar --incremental --remove-files foo
-TARSTAT=$?
decho B
find .
],
@@ -47,7 +45,6 @@ foo/
foo/file
B
.
-./foo
./foo.tar
],
[A