| # "Check many leaks" test #2 |
| # Cramming all kinds of weird commands in here. |
| # As you find leaks, please create separate, small test |
| # for each leak. |
| # Narrowing down the leak using this large test may be difficult. |
| # It is intended to be a blanket "is everything ok?" test |
| |
| echo "Warm up" |
| local_var="local val" |
| export dev_null="/dev/null" |
| >$dev_null |
| echo hi1 $local_var `echo ho` >>/dev/null |
| echo hi2 $local_var </dev/null | echo 2>&- | cat 1<>/dev/null |
| { echo hi4 $local_var `echo ho` 1<>/dev/null; } |
| ( echo hi4 $local_var `echo ho` 1<>/dev/null ) |
| if echo $local_var; false |
| then echo not run |
| elif false <$dev_null |
| then none |
| else cat 0<>$dev_null 1<>"$dev_null" |
| fi >>/dev/null |
| { |
| if echo $local_var; then cat <<HERE |
| Hi cat |
| HERE |
| fi >>/dev/null |
| } 1<>/dev/null |
| while { echo $dev_null >>$dev_null; }; do cat <"$dev_null"; break; done |
| ( until { echo $dev_null >>$dev_null | false; }; do cat <"$dev_null"; break; done ) <$dev_null |
| f() { echo $1; } |
| f >/dev/null |
| |
| memleak |
| |
| echo "Measuring memory leak..." |
| # Please copy the entire block from above verbatim |
| local_var="local val" |
| export dev_null="/dev/null" |
| >$dev_null |
| echo hi1 $local_var `echo ho` >>/dev/null |
| echo hi2 $local_var </dev/null | echo 2>&- | cat 1<>/dev/null |
| { echo hi4 $local_var `echo ho` 1<>/dev/null; } |
| ( echo hi4 $local_var `echo ho` 1<>/dev/null ) |
| if echo $local_var; false |
| then echo not run |
| elif false <$dev_null |
| then none |
| else cat 0<>$dev_null 1<>"$dev_null" |
| fi >>/dev/null |
| { |
| if echo $local_var; then cat <<HERE |
| Hi cat |
| HERE |
| fi >>/dev/null |
| } 1<>/dev/null |
| while { echo $dev_null >>$dev_null; }; do cat <"$dev_null"; break; done |
| ( until { echo $dev_null >>$dev_null | false; }; do cat <"$dev_null"; break; done ) <$dev_null |
| f() { echo $1; } |
| f >/dev/null |
| |
| # And same again |
| |
| local_var="local val" |
| export dev_null="/dev/null" |
| >$dev_null |
| echo hi1 $local_var `echo ho` >>/dev/null |
| echo hi2 $local_var </dev/null | echo 2>&- | cat 1<>/dev/null |
| { echo hi4 $local_var `echo ho` 1<>/dev/null; } |
| ( echo hi4 $local_var `echo ho` 1<>/dev/null ) |
| if echo $local_var; false |
| then echo not run |
| elif false <$dev_null |
| then none |
| else cat 0<>$dev_null 1<>"$dev_null" |
| fi >>/dev/null |
| { |
| if echo $local_var; then cat <<HERE |
| Hi cat |
| HERE |
| fi >>/dev/null |
| } 1<>/dev/null |
| while { echo $dev_null >>$dev_null; }; do cat <"$dev_null"; break; done |
| ( until { echo $dev_null >>$dev_null | false; }; do cat <"$dev_null"; break; done ) <$dev_null |
| f() { echo $1; } |
| f >/dev/null |
| |
| memleak |
| kb=$? |
| if test $kb -le 4; then |
| echo Ok #$kb |
| else |
| echo "Bad: $kb kb (or more) leaked" |
| fi |