testsuite: account for absolute file names starting with double slash

* tests/incr08.at: Absolute file names can start with //
* tests/xform03.at: Likewise.
This commit is contained in:
Sergey Poznyakoff
2018-03-13 08:08:44 +02:00
parent f8459cf838
commit 2b7fc4aee9
2 changed files with 37 additions and 27 deletions

View File

@@ -38,24 +38,10 @@
AT_SETUP([filename normalization])
AT_KEYWORDS([incremental create incr08 chdir])
AT_TAR_CHECK([
AT_CHECK_TIMESTAMP
AT_SORT_PREREQ
mkdir tartest
cd tartest
mkdir foo
mkdir foo/subdir
mkdir foo/subdir/dir1
mkdir subdir
mkdir subdir/dir2
decho A
find .|sort
decho B
DIR=`pwd`
tar -cvf ../foo.tar --listed-incremental=../foo.snar -C foo . $DIR 2>../err |\
sed "s|$DIR|ABSPATH|"
sed "s|$DIR|ABSPATH|" ../err >&2
AT_TAR_WITH_HOOK(
[AT_CHECK([
DIR=`pwd`/gnu/tartest
sed "s|$DIR|ABSPATH|" stdout
],
[0],
[A
@@ -72,7 +58,12 @@ B
ABSPATH/
ABSPATH/subdir/
ABSPATH/subdir/dir2/
],
])
AT_CHECK([
DIR=`pwd`/gnu/tartest
sed "/tar: Removing leading \`\/*\/' from/d;s|$DIR|ABSPATH|" stderr],
[0],
[A
B
tar: .: Directory is new
@@ -81,7 +72,26 @@ tar: ./subdir/dir1: Directory is new
tar: ABSPATH: Directory is new
tar: ABSPATH/subdir: Directory is new
tar: ABSPATH/subdir/dir2: Directory is new
tar: Removing leading `/' from member names
],[],[],[gnu])
])],
[AT_TAR_CHECK([
AT_CHECK_TIMESTAMP
AT_SORT_PREREQ
mkdir tartest
cd tartest
mkdir foo
mkdir foo/subdir
mkdir foo/subdir/dir1
mkdir subdir
mkdir subdir/dir2
decho A
find .|sort
decho B
DIR=`pwd`
tar -cvf ../foo.tar --listed-incremental=../foo.snar -C foo . $DIR
],
[0],
[stdout],
[stderr],[],[],[gnu])])
AT_CLEANUP

View File

@@ -21,12 +21,14 @@
AT_SETUP([transforming hard link targets])
AT_KEYWORDS([transform xform link])
AT_TAR_CHECK([
AT_TAR_WITH_HOOK(
[AT_CHECK([sed "/tar: Removing leading \`\/*\/' from/d" stderr])],
[AT_TAR_CHECK([
mkdir d
mkdir d/a
genfile --file d/a/b
dir=$(pwd|sed s,^/,,)/d
tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b
dir=$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
@@ -34,8 +36,6 @@ find t -type f
[0],
[t/dir/c/b
],
[tar: Removing leading `/' from member names
tar: Removing leading `/' from hard link targets
])
[stderr])])
AT_CLEANUP