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-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-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 @@ | |||
4 | 4 | ||
5 | . ./testing.sh | 5 | . ./testing.sh |
6 | 6 | ||
7 | mkdir tempdir && cd tempdir || exit 1 | 7 | rm -rf tar.tempdir 2>/dev/null |
8 | mkdir 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 | ||
11 | testing "tar hardlinks and repeated files" "\ | 12 | testing "tar hardlinks and repeated files" '\ |
12 | rm -rf input_* test.tar 2>/dev/null | 13 | rm -rf input_* test.tar 2>/dev/null |
13 | >input_hard1 | 14 | >input_hard1 |
14 | ln input_hard1 input_hard2 | 15 | ln input_hard1 input_hard2 |
15 | mkdir input_dir | 16 | mkdir input_dir |
16 | >input_dir/file | 17 | >input_dir/file |
18 | chmod -R 644 * | ||
19 | chmod 755 input_dir | ||
17 | tar cf test.tar input input_dir/ input_hard1 input_hard2 input_hard1 input_dir/ input | 20 | tar cf test.tar input input_dir/ input_hard1 input_hard2 input_hard1 input_dir/ input |
18 | tar tvf test.tar | sed 's/.*[0-9] input/input/' | 21 | tar tvf test.tar | sed "s/.*[0-9] input/input/" |
19 | tar xf test.tar 2>&1 && echo Ok | 22 | tar xf test.tar 2>&1 |
20 | " "\ | 23 | echo Ok: $? |
24 | ls -l . input_dir/* | grep input_ | sed "s/\\(^[^ ]*\\) .* input/\\1 input/" | ||
25 | ' "\ | ||
21 | input | 26 | input |
22 | input_dir/ | 27 | input_dir/ |
23 | input_dir/file | 28 | input_dir/file |
@@ -27,7 +32,40 @@ input_hard1 -> input_hard1 | |||
27 | input_dir/ | 32 | input_dir/ |
28 | input_dir/file | 33 | input_dir/file |
29 | input | 34 | input |
30 | Ok | 35 | Ok: 0 |
36 | -rw-r--r-- input_dir/file | ||
37 | drwxr-xr-x input_dir | ||
38 | -rw-r--r-- input_hard1 | ||
39 | -rw-r--r-- input_hard2 | ||
40 | " \ | ||
41 | "" "" | ||
42 | |||
43 | testing "tar hardlinks mode" '\ | ||
44 | rm -rf input_* test.tar 2>/dev/null | ||
45 | >input_hard1 | ||
46 | chmod 741 input_hard1 | ||
47 | ln input_hard1 input_hard2 | ||
48 | mkdir input_dir | ||
49 | chmod 550 input_dir | ||
50 | ln input_hard1 input_dir | ||
51 | ln input_hard2 input_dir | ||
52 | tar cf test.tar input_* | ||
53 | tar tvf test.tar | sed "s/.*[0-9] input/input/" | ||
54 | tar xf test.tar 2>&1 | ||
55 | echo Ok: $? | ||
56 | ls -l . input_dir/* | grep input_ | sed "s/\\(^[^ ]*\\) .* input/\\1 input/" | ||
57 | ' "\ | ||
58 | input_dir/ | ||
59 | input_dir/input_hard1 | ||
60 | input_dir/input_hard2 -> input_dir/input_hard1 | ||
61 | input_hard1 -> input_dir/input_hard1 | ||
62 | input_hard2 -> input_dir/input_hard1 | ||
63 | Ok: 0 | ||
64 | -rwxr----x input_dir/input_hard1 | ||
65 | -rwxr----x input_dir/input_hard2 | ||
66 | dr-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" "" |
47 | SKIP= | 85 | SKIP= |
48 | 86 | ||
49 | cd .. && rm -rf tempdir || exit 1 | 87 | cd .. && rm -rf tar.tempdir || exit 1 |
50 | 88 | ||
51 | exit $FAILCOUNT | 89 | exit $FAILCOUNT |