diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2015-01-03 13:58:15 +0100 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2015-01-03 13:58:15 +0100 |
commit | 4aca87515a5083ae0e31ce3177189fd43b6d05ac (patch) | |
tree | 7b1d9a31393ca090757dc6f0d3859b4fcd93f271 /release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all2.tests | |
parent | 008d0be72b2f160382c6e880765e96b64a050c65 (diff) | |
download | tomato-4aca87515a5083ae0e31ce3177189fd43b6d05ac.tar.gz tomato-4aca87515a5083ae0e31ce3177189fd43b6d05ac.tar.bz2 |
patch to Vanilla Tomato 1.28
Diffstat (limited to 'release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all2.tests')
-rwxr-xr-x | release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all2.tests | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all2.tests b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all2.tests new file mode 100755 index 00000000..d51ea806 --- /dev/null +++ b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all2.tests @@ -0,0 +1,93 @@ +# "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 |