Tomato 1.25
[tomato.git] / release / src / router / busybox / shell / hush_test / hush-z_slow / leak_all2.tests
blobd51ea806389df4aface372ef580d0f037b748870
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
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
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 f() { echo $1; }
31 f >/dev/null
33 memleak
35 echo "Measuring memory leak..."
36 # Please copy the entire block from above verbatim
37 local_var="local val"
38 export dev_null="/dev/null"
39 >$dev_null
40 echo hi1 $local_var `echo ho` >>/dev/null
41 echo hi2 $local_var </dev/null | echo 2>&- | cat 1<>/dev/null
42 { echo hi4 $local_var `echo ho` 1<>/dev/null; }
43 ( echo hi4 $local_var `echo ho` 1<>/dev/null )
44 if echo $local_var; false
45     then echo not run
46     elif false <$dev_null
47     then none
48     else cat 0<>$dev_null 1<>"$dev_null"
49 fi >>/dev/null
51     if echo $local_var; then cat <<HERE
52 Hi cat
53 HERE
54     fi >>/dev/null
55 } 1<>/dev/null
56 while { echo $dev_null >>$dev_null; }; do cat <"$dev_null"; break; done
57 ( until { echo $dev_null >>$dev_null | false; }; do cat <"$dev_null"; break; done ) <$dev_null
58 f() { echo $1; }
59 f >/dev/null
61 # And same again
63 local_var="local val"
64 export dev_null="/dev/null"
65 >$dev_null
66 echo hi1 $local_var `echo ho` >>/dev/null
67 echo hi2 $local_var </dev/null | echo 2>&- | cat 1<>/dev/null
68 { echo hi4 $local_var `echo ho` 1<>/dev/null; }
69 ( echo hi4 $local_var `echo ho` 1<>/dev/null )
70 if echo $local_var; false
71     then echo not run
72     elif false <$dev_null
73     then none
74     else cat 0<>$dev_null 1<>"$dev_null"
75 fi >>/dev/null
77     if echo $local_var; then cat <<HERE
78 Hi cat
79 HERE
80     fi >>/dev/null
81 } 1<>/dev/null
82 while { echo $dev_null >>$dev_null; }; do cat <"$dev_null"; break; done
83 ( until { echo $dev_null >>$dev_null | false; }; do cat <"$dev_null"; break; done ) <$dev_null
84 f() { echo $1; }
85 f >/dev/null
87 memleak
88 kb=$?
89 if test $kb -le 4; then
90     echo Ok #$kb
91 else
92     echo "Bad: $kb kb (or more) leaked"