hush: add leak detector helper; fix/add tests for it
[oweals/busybox.git] / 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 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     : $((i++))
28 done
29
30 memleak
31
32 echo "Measuring memory leak..."
33 # Please copy the entire block from above verbatim
34 i=1
35 l=1
36 t=1
37 export t
38 while test $i != 99; do
39     t=value1_$i; t=value2_$i true; t=value3_$i /bin/true; t=value4_$i exec 1>&1
40     { t=value3_$i /bin/true; } </dev/null
41     if true; t=valueA_$i false >>/dev/null; true; then
42         : << HERE >/dev/null; true <<HERE
43 Hello builtin :
44 HERE
45 Hello true
46 HERE
47     elif false; then
48         true; echo Doesnt run
49     else
50         { true; }; echo Doesnt run too >>/foo/bar
51     fi
52     : $((i++))
53 done
54
55 memleak
56 kb=$?
57 if test $kb -le 4; then
58     echo Ok #$kb
59 else
60     echo "Bad: $kb kb (or more) leaked"
61 fi