2009-04-09 03:21:33 +05:30
|
|
|
# "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
|
2009-04-11 04:53:41 +05:30
|
|
|
f() { echo $1; }
|
|
|
|
f >/dev/null
|
2009-04-09 03:21:33 +05:30
|
|
|
|
|
|
|
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
|
2009-04-11 04:53:41 +05:30
|
|
|
f() { echo $1; }
|
|
|
|
f >/dev/null
|
2009-04-09 03:21:33 +05:30
|
|
|
|
|
|
|
# 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
|
2009-04-11 04:53:41 +05:30
|
|
|
f() { echo $1; }
|
|
|
|
f >/dev/null
|
2009-04-09 03:21:33 +05:30
|
|
|
|
|
|
|
memleak
|
|
|
|
kb=$?
|
|
|
|
if test $kb -le 4; then
|
|
|
|
echo Ok #$kb
|
|
|
|
else
|
|
|
|
echo "Bad: $kb kb (or more) leaked"
|
|
|
|
fi
|