1 | #!/bin/sh
|
---|
2 |
|
---|
3 | FAILCOUNT=0
|
---|
4 |
|
---|
5 | ext=bz2
|
---|
6 |
|
---|
7 | bb="busybox "
|
---|
8 |
|
---|
9 | unset LC_ALL
|
---|
10 | unset LC_MESSAGES
|
---|
11 | unset LANG
|
---|
12 | unset LANGUAGE
|
---|
13 |
|
---|
14 | hello_gz() {
|
---|
15 | # Gzipped "HELLO\n"
|
---|
16 | #_________________________ vvv vvv vvv vvv - mtime
|
---|
17 | $ECHO -ne "\x1f\x8b\x08\x00\x85\x1d\xef\x45\x02\x03\xf3\x70\xf5\xf1\xf1\xe7"
|
---|
18 | $ECHO -ne "\x02\x00\x6e\xd7\xac\xfd\x06\x00\x00\x00"
|
---|
19 | }
|
---|
20 |
|
---|
21 | hello_bz2() {
|
---|
22 | # Bzipped "HELLO\n"
|
---|
23 | $ECHO -ne "\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x5b\xb8\xe8\xa3\x00\x00"
|
---|
24 | $ECHO -ne "\x01\x44\x00\x00\x10\x02\x44\xa0\x00\x30\xcd\x00\xc3\x46\x29\x97"
|
---|
25 | $ECHO -ne "\x17\x72\x45\x38\x50\x90\x5b\xb8\xe8\xa3"
|
---|
26 | }
|
---|
27 |
|
---|
28 | prep() {
|
---|
29 | rm -f t*
|
---|
30 | hello_$ext >t1.$ext
|
---|
31 | hello_$ext >t2.$ext
|
---|
32 | }
|
---|
33 |
|
---|
34 | check() {
|
---|
35 | eval $2 >t_actual 2>&1
|
---|
36 | if $ECHO -ne "$expected" | cmp - t_actual; then
|
---|
37 | echo "PASS: $1"
|
---|
38 | else
|
---|
39 | echo "FAIL: $1"
|
---|
40 | FAILCOUNT=$((FAILCOUNT + 1))
|
---|
41 | fi
|
---|
42 | }
|
---|
43 |
|
---|
44 | mkdir testdir 2>/dev/null
|
---|
45 | (
|
---|
46 | cd testdir || { echo "cannot cd testdir!"; exit 1; }
|
---|
47 |
|
---|
48 | expected="HELLO\nok\n"
|
---|
49 | prep; check "bzcat: dont delete src" "${bb}bzcat t2.bz2; test -f t2.bz2 && echo ok"
|
---|
50 |
|
---|
51 | )
|
---|
52 | rm -rf testdir
|
---|
53 |
|
---|
54 |
|
---|
55 |
|
---|
56 | # Copyright 2011 by Denys Vlasenko
|
---|
57 | # Licensed under GPLv2, see file LICENSE in this source tree.
|
---|
58 |
|
---|
59 | . ./testing.sh
|
---|
60 |
|
---|
61 | # testing "test name" "command" "expected result" "file input" "stdin"
|
---|
62 |
|
---|
63 | # "input" file is bzipped file with "a\n" data
|
---|
64 | testing "bzcat can print many files" \
|
---|
65 | "$ECHO -ne '$hexdump' | bzcat input input; echo \$?" \
|
---|
66 | "\
|
---|
67 | a
|
---|
68 | a
|
---|
69 | 0
|
---|
70 | " "\
|
---|
71 | \x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x63\x3e\xd6\xe2\x00\x00\
|
---|
72 | \x00\xc1\x00\x00\x10\x20\x00\x20\x00\x21\x00\x82\xb1\x77\x24\x53\
|
---|
73 | \x85\x09\x06\x33\xed\x6e\x20\
|
---|
74 | " ""
|
---|
75 |
|
---|
76 | # "input" file is bzipped zero byte file
|
---|
77 | testing "bzcat can handle compressed zero-length bzip2 files" \
|
---|
78 | "$ECHO -ne '$hexdump' | bzcat input input; echo \$?" \
|
---|
79 | "0\n" \
|
---|
80 | "\x42\x5a\x68\x39\x17\x72\x45\x38\x50\x90\x00\x00\x00\x00" ""
|
---|
81 |
|
---|
82 |
|
---|
83 |
|
---|
84 | exit $((FAILCOUNT <= 255 ? FAILCOUNT : 255))
|
---|