From: Nathan Stratton Treadway Date: Sun, 27 Jul 2014 20:27:28 +0000 (+0300) Subject: Restructure the remfiles testsuite. X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Ftar;a=commitdiff_plain;h=fcde08534bdabfaa50d9c762631c8ccc0a94fefa Restructure the remfiles testsuite. --- diff --git a/tests/remfiles06c.at b/tests/remfiles06c.at index 6cb2f50..78a70e4 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 36c42e0..f3131f7 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 e3aa454..c5db0d5 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 f8ac0ba..9b4139a 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 edb5170..8db9f71 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 . -# 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 f05b7f8..13beaf4 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 . -# 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 f9730b3..b52b032 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 . -# 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 dfd9e5e..5f96737 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 26e5624..45b8440 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