OSDN Git Service

* tests/lha-test10: added testing the header level 0, 1 and 2.
[lha/lha.git] / tests / lha-test.in
1 #!/bin/bash
2
3 : ${lha_dir=@top_builddir@/src}
4 : ${lha=$(cd $lha_dir && pwd)/lha}
5 : ${srcdir=@srcdir@}
6
7 trap "rm -rf test-*" 0 1 2 3 15
8
9 declare -i test_number=0
10
11 exec > test.log
12
13 message() {
14   echo "$@" >&2
15   echo "$@"
16 }
17
18 check() {
19   ((test_number = test_number + 1))
20   local status=$1
21   if [[ $status -eq 0 ]]; then
22     message test $test_number ... ok
23   else
24     message test $test_number ... failed
25     result=1
26   fi
27 }
28
29 seq() {
30   awk 'BEGIN {
31     for (i = 0; i < '$1'; i++) print i
32   }'
33 }
34
35 cleanup()
36 {
37   rm -rf test-tmp*
38 }
39
40 # create test data
41
42 message testing $lha
43 message testing to create/list/extract lha archive.
44
45 for i in `seq 100`
46 do
47     echo foo >> test-a
48 done
49 sed 's/foo/bar/g' < test-a > test-b
50 sed 's/foo/baz/g' < test-a > test-c
51
52 $lha c test-1.lzh test-a test-b test-c
53                                                         check $?
54 test -s test-1.lzh
55                                                         check $?
56
57 $lha l test-1.lzh
58                                                         check $?
59
60 test -d test-1 || mkdir test-1
61 mv test-[abc] test-1
62 $lha x test-1.lzh
63                                                         check $?
64 diff test-1/test-a test-a
65                                                         check $?
66 diff test-1/test-b test-b
67                                                         check $?
68 diff test-1/test-c test-c
69                                                         check $?
70
71 # followings are test data for remaining tests.
72 test -f test-1.lzh &&
73 test -f test-a &&
74 test -f test-b &&
75 test -f test-c &&
76 test -d test-1 &&
77 test -f test-1/test-a &&
78 test -f test-1/test-b &&
79 test -f test-1/test-c
80                                                         check $?
81
82
83 . $srcdir/lha-test2; cleanup
84 . $srcdir/lha-test3; cleanup
85 . $srcdir/lha-test4; cleanup
86 . $srcdir/lha-test5; cleanup
87 # . $srcdir/lha-test6; cleanup          # this feature was removed.
88 . $srcdir/lha-test7; cleanup
89 . $srcdir/lha-test8; cleanup
90 case `$lha --version 2>&1` in
91 *pc-cygwin*|*pc-mingw*)
92     message testing extracting to existent files ... skip;;
93 *)
94     . $srcdir/lha-test9; cleanup
95     ;;
96 esac
97 . $srcdir/lha-test10; cleanup
98
99 exit $result