upload tizen1.0 source
[external/busybox.git] / util-linux / shell / hush_test / hush-z_slow / leak_all1.tests
1 # "Check many leaks" test #1
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 i=1
10 l=1
11 t=1
12 export t
13 while test $i != 99; do
14     t=value1_$i; t=value2_$i true; t=value3_$i /bin/true; t=value4_$i exec 1>&1
15     { t=value3_$i /bin/true; } </dev/null
16     if true; t=valueA_$i false >>/dev/null; true; then
17         : << HERE >/dev/null; true <<HERE
18 Hello builtin :
19 HERE
20 Hello $i true
21 HERE
22     elif false; then
23         true; echo Doesnt run
24     else
25         { true; }; echo Doesnt run too >>/foo/bar
26     fi
27     { : /bin/*; }
28     unset var
29     echo >/dev/null ${var#}
30     echo >/dev/null ${var##}
31     echo >/dev/null ${var#*}
32     echo >/dev/null ${var##*}
33     echo >/dev/null ${var%}
34     echo >/dev/null ${var%%}
35     echo >/dev/null ${var%*}
36     echo >/dev/null ${var%%*}
37     var=
38     echo >/dev/null ${var#}
39     echo >/dev/null ${var##}
40     echo >/dev/null ${var#*}
41     echo >/dev/null ${var##*}
42     echo >/dev/null ${var%}
43     echo >/dev/null ${var%%}
44     echo >/dev/null ${var%*}
45     echo >/dev/null ${var%%*}
46     var=ababcdcd
47     echo >/dev/null ${var#ab}
48     echo >/dev/null ${var##ab}
49     echo >/dev/null ${var#a*b}
50     echo >/dev/null ${var##a*b}
51     echo >/dev/null ${var#?}
52     echo >/dev/null ${var##?}
53     echo >/dev/null ${var#*}
54     echo >/dev/null ${var##*}
55     echo >/dev/null ${var%cd}
56     echo >/dev/null ${var%%cd}
57     echo >/dev/null ${var%c*d}
58     echo >/dev/null ${var%%c*d}
59     echo >/dev/null ${var%?}
60     echo >/dev/null ${var%%?}
61     echo >/dev/null ${var%*}
62     echo >/dev/null ${var%%*}
63     set -- par1_$i par2_$i par3_$i par4_$i
64     trap "echo trap$i" WINCH
65     f() { true; true; true; true; true; true; true; true; }
66     f() { true; true; true; true; true; true; true; true; echo $1; }
67     i=iii$i t=ttt$i z=zzz$i f >/dev/null
68     : $((i++))
69 done
70 unset i l t
71 unset -f f
72
73 memleak
74
75 echo "Measuring memory leak..."
76 # Please copy the entire block from above verbatim
77 i=1
78 l=1
79 t=1
80 export t
81 while test $i != 99; do
82     t=value1_$i; t=value2_$i true; t=value3_$i /bin/true; t=value4_$i exec 1>&1
83     { t=value3_$i /bin/true; } </dev/null
84     if true; t=valueA_$i false >>/dev/null; true; then
85         : << HERE >/dev/null; true <<HERE
86 Hello builtin :
87 HERE
88 Hello $i true
89 HERE
90     elif false; then
91         true; echo Doesnt run
92     else
93         { true; }; echo Doesnt run too >>/foo/bar
94     fi
95     { : /bin/*; }
96     unset var
97     echo >/dev/null ${var#}
98     echo >/dev/null ${var##}
99     echo >/dev/null ${var#*}
100     echo >/dev/null ${var##*}
101     echo >/dev/null ${var%}
102     echo >/dev/null ${var%%}
103     echo >/dev/null ${var%*}
104     echo >/dev/null ${var%%*}
105     var=
106     echo >/dev/null ${var#}
107     echo >/dev/null ${var##}
108     echo >/dev/null ${var#*}
109     echo >/dev/null ${var##*}
110     echo >/dev/null ${var%}
111     echo >/dev/null ${var%%}
112     echo >/dev/null ${var%*}
113     echo >/dev/null ${var%%*}
114     var=ababcdcd
115     echo >/dev/null ${var#ab}
116     echo >/dev/null ${var##ab}
117     echo >/dev/null ${var#a*b}
118     echo >/dev/null ${var##a*b}
119     echo >/dev/null ${var#?}
120     echo >/dev/null ${var##?}
121     echo >/dev/null ${var#*}
122     echo >/dev/null ${var##*}
123     echo >/dev/null ${var%cd}
124     echo >/dev/null ${var%%cd}
125     echo >/dev/null ${var%c*d}
126     echo >/dev/null ${var%%c*d}
127     echo >/dev/null ${var%?}
128     echo >/dev/null ${var%%?}
129     echo >/dev/null ${var%*}
130     echo >/dev/null ${var%%*}
131     set -- par1_$i par2_$i par3_$i par4_$i
132     trap "echo trap$i" WINCH
133     f() { true; true; true; true; true; true; true; true; }
134     f() { true; true; true; true; true; true; true; true; echo $1; }
135     i=iii$i t=ttt$i z=zzz$i f >/dev/null
136     : $((i++))
137 done
138 unset i l t
139 unset -f f
140
141
142 memleak
143 kb=$?
144 if test $kb -le 4; then
145     echo Ok #$kb
146 else
147     echo "Bad: $kb kb leaked"
148 fi