aboutsummaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-04-09 10:52:52 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2010-04-09 10:52:52 +0200
commit02365a6ef73defb8689d3ed5228125d72993dec9 (patch)
tree26358e718c5232ee44ad750f1b386f0f4138512a /testsuite
parent823b636cd14d337ebb8766c5c181737fb3860b42 (diff)
downloadbusybox-w32-02365a6ef73defb8689d3ed5228125d72993dec9.tar.gz
busybox-w32-02365a6ef73defb8689d3ed5228125d72993dec9.tar.bz2
busybox-w32-02365a6ef73defb8689d3ed5228125d72993dec9.zip
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-xtestsuite/tar.tests52
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 @@
4 4
5. ./testing.sh 5. ./testing.sh
6 6
7mkdir tempdir && cd tempdir || exit 1 7rm -rf tar.tempdir 2>/dev/null
8mkdir tar.tempdir && cd tar.tempdir || exit 1
8 9
9# testing "test name" "script" "expected result" "file input" "stdin" 10# testing "test name" "script" "expected result" "file input" "stdin"
10 11
11testing "tar hardlinks and repeated files" "\ 12testing "tar hardlinks and repeated files" '\
12rm -rf input_* test.tar 2>/dev/null 13rm -rf input_* test.tar 2>/dev/null
13>input_hard1 14>input_hard1
14ln input_hard1 input_hard2 15ln input_hard1 input_hard2
15mkdir input_dir 16mkdir input_dir
16>input_dir/file 17>input_dir/file
18chmod -R 644 *
19chmod 755 input_dir
17tar cf test.tar input input_dir/ input_hard1 input_hard2 input_hard1 input_dir/ input 20tar cf test.tar input input_dir/ input_hard1 input_hard2 input_hard1 input_dir/ input
18tar tvf test.tar | sed 's/.*[0-9] input/input/' 21tar tvf test.tar | sed "s/.*[0-9] input/input/"
19tar xf test.tar 2>&1 && echo Ok 22tar xf test.tar 2>&1
20" "\ 23echo Ok: $?
24ls -l . input_dir/* | grep input_ | sed "s/\\(^[^ ]*\\) .* input/\\1 input/"
25' "\
21input 26input
22input_dir/ 27input_dir/
23input_dir/file 28input_dir/file
@@ -27,7 +32,40 @@ input_hard1 -> input_hard1
27input_dir/ 32input_dir/
28input_dir/file 33input_dir/file
29input 34input
30Ok 35Ok: 0
36-rw-r--r-- input_dir/file
37drwxr-xr-x input_dir
38-rw-r--r-- input_hard1
39-rw-r--r-- input_hard2
40" \
41"" ""
42
43testing "tar hardlinks mode" '\
44rm -rf input_* test.tar 2>/dev/null
45>input_hard1
46chmod 741 input_hard1
47ln input_hard1 input_hard2
48mkdir input_dir
49chmod 550 input_dir
50ln input_hard1 input_dir
51ln input_hard2 input_dir
52tar cf test.tar input_*
53tar tvf test.tar | sed "s/.*[0-9] input/input/"
54tar xf test.tar 2>&1
55echo Ok: $?
56ls -l . input_dir/* | grep input_ | sed "s/\\(^[^ ]*\\) .* input/\\1 input/"
57' "\
58input_dir/
59input_dir/input_hard1
60input_dir/input_hard2 -> input_dir/input_hard1
61input_hard1 -> input_dir/input_hard1
62input_hard2 -> input_dir/input_hard1
63Ok: 0
64-rwxr----x input_dir/input_hard1
65-rwxr----x input_dir/input_hard2
66dr-xr-x--- input_dir
67-rwxr----x input_hard1
68-rwxr----x input_hard2
31" \ 69" \
32"" "" 70"" ""
33 71
@@ -46,6 +84,6 @@ Ok
46"Ok\n" "" 84"Ok\n" ""
47SKIP= 85SKIP=
48 86
49cd .. && rm -rf tempdir || exit 1 87cd .. && rm -rf tar.tempdir || exit 1
50 88
51exit $FAILCOUNT 89exit $FAILCOUNT