diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-04-09 10:52:52 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-04-09 10:52:52 +0200 |
commit | 02365a6ef73defb8689d3ed5228125d72993dec9 (patch) | |
tree | 26358e718c5232ee44ad750f1b386f0f4138512a /testsuite | |
parent | 823b636cd14d337ebb8766c5c181737fb3860b42 (diff) | |
download | busybox-02365a6ef73defb8689d3ed5228125d72993dec9.tar.gz |
tar: fix mishandling of repeated hardlink in tarball; expand tests
function old new delta
data_extract_all 727 767 +40
get_header_tar 1576 1572 -4
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'testsuite')
-rwxr-xr-x | testsuite/tar.tests | 52 |
1 files changed, 45 insertions, 7 deletions
diff --git a/testsuite/tar.tests b/testsuite/tar.tests index 71095cb20..dd8f11062 100755 --- a/testsuite/tar.tests +++ b/testsuite/tar.tests @@ -4,20 +4,25 @@ . ./testing.sh -mkdir tempdir && cd tempdir || exit 1 +rm -rf tar.tempdir 2>/dev/null +mkdir tar.tempdir && cd tar.tempdir || exit 1 # testing "test name" "script" "expected result" "file input" "stdin" -testing "tar hardlinks and repeated files" "\ +testing "tar hardlinks and repeated files" '\ rm -rf input_* test.tar 2>/dev/null >input_hard1 ln input_hard1 input_hard2 mkdir input_dir >input_dir/file +chmod -R 644 * +chmod 755 input_dir tar cf test.tar input input_dir/ input_hard1 input_hard2 input_hard1 input_dir/ input -tar tvf test.tar | sed 's/.*[0-9] input/input/' -tar xf test.tar 2>&1 && echo Ok -" "\ +tar tvf test.tar | sed "s/.*[0-9] input/input/" +tar xf test.tar 2>&1 +echo Ok: $? +ls -l . input_dir/* | grep input_ | sed "s/\\(^[^ ]*\\) .* input/\\1 input/" +' "\ input input_dir/ input_dir/file @@ -27,7 +32,40 @@ input_hard1 -> input_hard1 input_dir/ input_dir/file input -Ok +Ok: 0 +-rw-r--r-- input_dir/file +drwxr-xr-x input_dir +-rw-r--r-- input_hard1 +-rw-r--r-- input_hard2 +" \ +"" "" + +testing "tar hardlinks mode" '\ +rm -rf input_* test.tar 2>/dev/null +>input_hard1 +chmod 741 input_hard1 +ln input_hard1 input_hard2 +mkdir input_dir +chmod 550 input_dir +ln input_hard1 input_dir +ln input_hard2 input_dir +tar cf test.tar input_* +tar tvf test.tar | sed "s/.*[0-9] input/input/" +tar xf test.tar 2>&1 +echo Ok: $? +ls -l . input_dir/* | grep input_ | sed "s/\\(^[^ ]*\\) .* input/\\1 input/" +' "\ +input_dir/ +input_dir/input_hard1 +input_dir/input_hard2 -> input_dir/input_hard1 +input_hard1 -> input_dir/input_hard1 +input_hard2 -> input_dir/input_hard1 +Ok: 0 +-rwxr----x input_dir/input_hard1 +-rwxr----x input_dir/input_hard2 +dr-xr-x--- input_dir +-rwxr----x input_hard1 +-rwxr----x input_hard2 " \ "" "" @@ -46,6 +84,6 @@ Ok "Ok\n" "" SKIP= -cd .. && rm -rf tempdir || exit 1 +cd .. && rm -rf tar.tempdir || exit 1 exit $FAILCOUNT |