hush: more rodust detection of unterminated strings etc;
[oweals/busybox.git] / shell / hush_test / hush-z_slow / leak_all2.tests
1 # "Check many leaks" test #2
2 # Cramming all kinds of weird commands in here.
3 # As you find leaks, please create separate, small test
4 # for each leak.
5 # Narrowing down the leak using this large test may be difficult.
6 # It is intended to be a blanket "is everything ok?" test
7
8 echo "Warm up"
9 local_var="local val"
10 export dev_null="/dev/null"
11 >$dev_null
12 echo hi1 $local_var `echo ho` >>/dev/null
13 echo hi2 $local_var </dev/null | echo 2>&- | cat 1<>/dev/null
14 { echo hi4 $local_var `echo ho` 1<>/dev/null; }
15 ( echo hi4 $local_var `echo ho` 1<>/dev/null )
16 if echo $local_var; false
17     then echo not run
18     elif false <$dev_null
19     then none
20     else cat 0<>$dev_null 1<>"$dev_null"
21 fi >>/dev/null
22 {
23     if echo $local_var; then cat <<HERE
24 Hi cat
25 HERE
26     fi >>/dev/null
27 } 1<>/dev/null
28 while { echo $dev_null >>$dev_null; }; do cat <"$dev_null"; break; done
29 ( until { echo $dev_null >>$dev_null | false; }; do cat <"$dev_null"; break; done ) <$dev_null
30
31 memleak
32
33 echo "Measuring memory leak..."
34 # Please copy the entire block from above verbatim
35 local_var="local val"
36 export dev_null="/dev/null"
37 >$dev_null
38 echo hi1 $local_var `echo ho` >>/dev/null
39 echo hi2 $local_var </dev/null | echo 2>&- | cat 1<>/dev/null
40 { echo hi4 $local_var `echo ho` 1<>/dev/null; }
41 ( echo hi4 $local_var `echo ho` 1<>/dev/null )
42 if echo $local_var; false
43     then echo not run
44     elif false <$dev_null
45     then none
46     else cat 0<>$dev_null 1<>"$dev_null"
47 fi >>/dev/null
48 {
49     if echo $local_var; then cat <<HERE
50 Hi cat
51 HERE
52     fi >>/dev/null
53 } 1<>/dev/null
54 while { echo $dev_null >>$dev_null; }; do cat <"$dev_null"; break; done
55 ( until { echo $dev_null >>$dev_null | false; }; do cat <"$dev_null"; break; done ) <$dev_null
56
57 # And same again
58
59 local_var="local val"
60 export dev_null="/dev/null"
61 >$dev_null
62 echo hi1 $local_var `echo ho` >>/dev/null
63 echo hi2 $local_var </dev/null | echo 2>&- | cat 1<>/dev/null
64 { echo hi4 $local_var `echo ho` 1<>/dev/null; }
65 ( echo hi4 $local_var `echo ho` 1<>/dev/null )
66 if echo $local_var; false
67     then echo not run
68     elif false <$dev_null
69     then none
70     else cat 0<>$dev_null 1<>"$dev_null"
71 fi >>/dev/null
72 {
73     if echo $local_var; then cat <<HERE
74 Hi cat
75 HERE
76     fi >>/dev/null
77 } 1<>/dev/null
78 while { echo $dev_null >>$dev_null; }; do cat <"$dev_null"; break; done
79 ( until { echo $dev_null >>$dev_null | false; }; do cat <"$dev_null"; break; done ) <$dev_null
80
81 memleak
82 kb=$?
83 if test $kb -le 4; then
84     echo Ok #$kb
85 else
86     echo "Bad: $kb kb (or more) leaked"
87 fi