summaryrefslogtreecommitdiff
path: root/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all1.tests
diff options
context:
space:
mode:
Diffstat (limited to 'release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all1.tests')
-rwxr-xr-xrelease/src/router/busybox/shell/hush_test/hush-z_slow/leak_all1.tests145
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