94 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
# "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
 |