# "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