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 | f() { echo $1; }
|
---|
31 | f >/dev/null
|
---|
32 |
|
---|
33 | memleak
|
---|
34 |
|
---|
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
|
---|
50 | {
|
---|
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
|
---|
60 |
|
---|
61 | # And same again
|
---|
62 |
|
---|
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
|
---|
76 | {
|
---|
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
|
---|
86 |
|
---|
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"
|
---|
93 | fi
|
---|