diff options
Diffstat (limited to 'release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all1.tests')
-rwxr-xr-x | release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all1.tests | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all1.tests b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all1.tests new file mode 100755 index 00000000..21fdb0d1 --- /dev/null +++ b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all1.tests @@ -0,0 +1,145 @@ +# "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; } + f >/dev/null + : $((i++)) +done + +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; } + f >/dev/null + : $((i++)) +done + + +memleak +kb=$? +# Observed some variability, bumped to 12k +if test $kb -le 12; then + echo Ok #$kb +else + echo "Bad: $kb kb (or more) leaked" +fi |