123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- # "Check many leaks" test #1
- # 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"
- i=1
- l=1
- t=1
- export t
- while test $i != 99; do
- t=value1_$i; t=value2_$i true; t=value3_$i /bin/true; t=value4_$i exec 1>&1
- { t=value3_$i /bin/true; } </dev/null
- if true; t=valueA_$i false >>/dev/null; true; then
- : << HERE >/dev/null; true <<HERE
- Hello builtin :
- HERE
- Hello $i true
- HERE
- elif false; then
- true; echo Doesnt run
- else
- { true; }; echo Doesnt run too >>/foo/bar
- fi
- { : /bin/*; }
- unset var
- echo >/dev/null ${var#}
- echo >/dev/null ${var##}
- echo >/dev/null ${var#*}
- echo >/dev/null ${var##*}
- echo >/dev/null ${var%}
- echo >/dev/null ${var%%}
- echo >/dev/null ${var%*}
- echo >/dev/null ${var%%*}
- var=
- echo >/dev/null ${var#}
- echo >/dev/null ${var##}
- echo >/dev/null ${var#*}
- echo >/dev/null ${var##*}
- echo >/dev/null ${var%}
- echo >/dev/null ${var%%}
- echo >/dev/null ${var%*}
- echo >/dev/null ${var%%*}
- var=ababcdcd
- echo >/dev/null ${var#ab}
- echo >/dev/null ${var##ab}
- echo >/dev/null ${var#a*b}
- echo >/dev/null ${var##a*b}
- echo >/dev/null ${var#?}
- echo >/dev/null ${var##?}
- echo >/dev/null ${var#*}
- echo >/dev/null ${var##*}
- echo >/dev/null ${var%cd}
- echo >/dev/null ${var%%cd}
- echo >/dev/null ${var%c*d}
- echo >/dev/null ${var%%c*d}
- echo >/dev/null ${var%?}
- echo >/dev/null ${var%%?}
- echo >/dev/null ${var%*}
- echo >/dev/null ${var%%*}
- set -- par1_$i par2_$i par3_$i par4_$i
- trap "echo trap$i" WINCH
- f() { true; true; true; true; true; true; true; true; }
- f() { true; true; true; true; true; true; true; true; echo $1; }
- i=iii$i t=ttt$i z=zzz$i f >/dev/null
- : $((i++))
- done
- unset i l t
- unset -f f
- memleak
- echo "Measuring memory leak..."
- # Please copy the entire block from above verbatim
- i=1
- l=1
- t=1
- export t
- while test $i != 99; do
- t=value1_$i; t=value2_$i true; t=value3_$i /bin/true; t=value4_$i exec 1>&1
- { t=value3_$i /bin/true; } </dev/null
- if true; t=valueA_$i false >>/dev/null; true; then
- : << HERE >/dev/null; true <<HERE
- Hello builtin :
- HERE
- Hello $i true
- HERE
- elif false; then
- true; echo Doesnt run
- else
- { true; }; echo Doesnt run too >>/foo/bar
- fi
- { : /bin/*; }
- unset var
- echo >/dev/null ${var#}
- echo >/dev/null ${var##}
- echo >/dev/null ${var#*}
- echo >/dev/null ${var##*}
- echo >/dev/null ${var%}
- echo >/dev/null ${var%%}
- echo >/dev/null ${var%*}
- echo >/dev/null ${var%%*}
- var=
- echo >/dev/null ${var#}
- echo >/dev/null ${var##}
- echo >/dev/null ${var#*}
- echo >/dev/null ${var##*}
- echo >/dev/null ${var%}
- echo >/dev/null ${var%%}
- echo >/dev/null ${var%*}
- echo >/dev/null ${var%%*}
- var=ababcdcd
- echo >/dev/null ${var#ab}
- echo >/dev/null ${var##ab}
- echo >/dev/null ${var#a*b}
- echo >/dev/null ${var##a*b}
- echo >/dev/null ${var#?}
- echo >/dev/null ${var##?}
- echo >/dev/null ${var#*}
- echo >/dev/null ${var##*}
- echo >/dev/null ${var%cd}
- echo >/dev/null ${var%%cd}
- echo >/dev/null ${var%c*d}
- echo >/dev/null ${var%%c*d}
- echo >/dev/null ${var%?}
- echo >/dev/null ${var%%?}
- echo >/dev/null ${var%*}
- echo >/dev/null ${var%%*}
- set -- par1_$i par2_$i par3_$i par4_$i
- trap "echo trap$i" WINCH
- f() { true; true; true; true; true; true; true; true; }
- f() { true; true; true; true; true; true; true; true; echo $1; }
- i=iii$i t=ttt$i z=zzz$i f >/dev/null
- : $((i++))
- done
- unset i l t
- unset -f f
- memleak
- kb=$?
- if test $kb -le 4; then
- echo Ok #$kb
- else
- echo "Bad: $kb kb leaked"
- fi
|