summaryrefslogtreecommitdiff
path: root/release/src/router/busybox/shell/hush_test/hush-z_slow
diff options
context:
space:
mode:
Diffstat (limited to 'release/src/router/busybox/shell/hush_test/hush-z_slow')
-rw-r--r--release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all1.right3
-rwxr-xr-xrelease/src/router/busybox/shell/hush_test/hush-z_slow/leak_all1.tests145
-rw-r--r--release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all2.right3
-rwxr-xr-xrelease/src/router/busybox/shell/hush_test/hush-z_slow/leak_all2.tests93
-rw-r--r--release/src/router/busybox/shell/hush_test/hush-z_slow/leak_heredoc1.right3
-rwxr-xr-xrelease/src/router/busybox/shell/hush_test/hush-z_slow/leak_heredoc1.tests34
-rw-r--r--release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var.right2
-rwxr-xr-xrelease/src/router/busybox/shell/hush_test/hush-z_slow/leak_var.tests47
-rw-r--r--release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var2.right3
-rwxr-xr-xrelease/src/router/busybox/shell/hush_test/hush-z_slow/leak_var2.tests40
-rw-r--r--release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var3.right3
-rwxr-xr-xrelease/src/router/busybox/shell/hush_test/hush-z_slow/leak_var3.tests41
12 files changed, 417 insertions, 0 deletions
diff --git a/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all1.right b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all1.right
new file mode 100644
index 00000000..c6f0334f
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all1.right
@@ -0,0 +1,3 @@
+Warm up
+Measuring memory leak...
+Ok
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
diff --git a/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all2.right b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all2.right
new file mode 100644
index 00000000..c6f0334f
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_all2.right
@@ -0,0 +1,3 @@
+Warm up
+Measuring memory leak...
+Ok
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
diff --git a/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_heredoc1.right b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_heredoc1.right
new file mode 100644
index 00000000..c6f0334f
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_heredoc1.right
@@ -0,0 +1,3 @@
+Warm up
+Measuring memory leak...
+Ok
diff --git a/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_heredoc1.tests b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_heredoc1.tests
new file mode 100755
index 00000000..26cbb28a
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_heredoc1.tests
@@ -0,0 +1,34 @@
+echo "Warm up"
+i=1
+while test $i != 99; do
+ : <<HERE
+Hello $i `echo builtin_$i`
+HERE
+ : $((i++))
+done
+
+memleak
+
+echo "Measuring memory leak..."
+i=1
+while test $i != 99; do
+ : <<HERE
+Hello $i `echo builtin_$i`
+HERE
+ : $((i++))
+done
+i=1
+while test $i != 99; do
+ : <<HERE
+Hello $i `echo builtin_$i`
+HERE
+ : $((i++))
+done
+
+memleak
+kb=$?
+if test $kb -le 4; then
+ echo Ok #$kb
+else
+ echo "Bad: $kb kb (or more) leaked"
+fi
diff --git a/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var.right b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var.right
new file mode 100644
index 00000000..1d4d6ff5
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var.right
@@ -0,0 +1,2 @@
+Measuring memory leak...
+Ok
diff --git a/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var.tests b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var.tests
new file mode 100755
index 00000000..41c09e47
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var.tests
@@ -0,0 +1,47 @@
+echo "Measuring memory leak..."
+i=1
+while test $i != X; do
+ unset t
+ t=111111111111111111111111111111111111111111111111111111111111111111111111
+ export t
+ unset t
+ t=111111111111111111111111111111111111111111111111111111111111111111111111
+ export t
+ unset t
+ t=111111111111111111111111111111111111111111111111111111111111111111111111
+ export t
+ unset t
+ t=111111111111111111111111111111111111111111111111111111111111111111111111
+ export t
+ unset t
+ t=111111111111111111111111111111111111111111111111111111111111111111111111
+ export t
+ i=1$i
+ if test $i = 1111111111111111111111111111111111111111111111; then i=2; fi
+ if test $i = 1111111111111111111111111111111111111111111112; then i=3; fi
+ if test $i = 1111111111111111111111111111111111111111111113; then i=4; fi
+ if test $i = 1111111111111111111111111111111111111111111114; then i=5; fi
+ if test $i = 1111111111111111111111111111111111111111111115; then i=6; fi
+ if test $i = 1111111111111111111111111111111111111111111116; then i=7; fi
+ if test $i = 1111111111111111111111111111111111111111111117; then i=8; fi
+ if test $i = 1111111111111111111111111111111111111111111118; then i=9; fi
+ if test $i = 1111111111111111111111111111111111111111111119; then i=a; fi
+ if test $i = 111111111111111111111111111111111111111111111a; then i=b; fi
+ if test $i = 111111111111111111111111111111111111111111111b; then i=c; fi
+ if test $i = 111111111111111111111111111111111111111111111c; then i=d; fi
+ if test $i = 111111111111111111111111111111111111111111111d; then i=e; fi
+ if test $i = 111111111111111111111111111111111111111111111e; then i=f; fi
+ if test $i = 111111111111111111111111111111111111111111111f; then i=g; fi
+ if test $i = 111111111111111111111111111111111111111111111g; then i=h; fi
+ if test $i = 111111111111111111111111111111111111111111111h; then i=i; fi
+ if test $i = 111111111111111111111111111111111111111111111i; then i=j; fi
+ if test $i = 111111111111111111111111111111111111111111111j; then i=X; fi
+ memleak
+done
+memleak
+kb=$?
+if test $kb -le 4; then
+ echo Ok
+else
+ echo "Bad: $kb kb (or more) leaked"
+fi
diff --git a/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var2.right b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var2.right
new file mode 100644
index 00000000..c6f0334f
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var2.right
@@ -0,0 +1,3 @@
+Warm up
+Measuring memory leak...
+Ok
diff --git a/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var2.tests b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var2.tests
new file mode 100755
index 00000000..0ab13155
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var2.tests
@@ -0,0 +1,40 @@
+t=1
+export t
+
+echo "Warm up"
+i=1
+while test $i != X; do
+ t=111111111111111111111111111111111111111111111111111111111111111111111110$i
+ t=111111111111111111111111111111111111111111111111111111111111111111111111$i true
+ t=111111111111111111111111111111111111111111111111111111111111111111111112$i /bin/true
+ t=111111111111111111111111111111111111111111111111111111111111111111111113$i exec 1>&1
+ i=1$i
+ if test $i = 1111111111111111111111111111111111111111111111; then i=2; fi
+ if test $i = 1111111111111111111111111111111111111111111112; then i=3; fi
+ if test $i = 1111111111111111111111111111111111111111111113; then i=4; fi
+ if test $i = 1111111111111111111111111111111111111111111114; then i=X; fi
+done
+
+memleak
+
+echo "Measuring memory leak..."
+i=1
+while test $i != X; do
+ t=111111111111111111111111111111111111111111111111111111111111111111111110$i
+ t=111111111111111111111111111111111111111111111111111111111111111111111111$i true
+ t=111111111111111111111111111111111111111111111111111111111111111111111112$i /bin/true
+ t=111111111111111111111111111111111111111111111111111111111111111111111113$i exec 1>&1
+ i=1$i
+ if test $i = 1111111111111111111111111111111111111111111111; then i=2; fi
+ if test $i = 1111111111111111111111111111111111111111111112; then i=3; fi
+ if test $i = 1111111111111111111111111111111111111111111113; then i=4; fi
+ if test $i = 1111111111111111111111111111111111111111111114; then i=X; fi
+done
+
+memleak
+kb=$?
+if test $kb -le 4; then
+ echo Ok
+else
+ echo "Bad: $kb kb (or more) leaked"
+fi
diff --git a/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var3.right b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var3.right
new file mode 100644
index 00000000..c6f0334f
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var3.right
@@ -0,0 +1,3 @@
+Warm up
+Measuring memory leak...
+Ok
diff --git a/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var3.tests b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var3.tests
new file mode 100755
index 00000000..9554c42c
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-z_slow/leak_var3.tests
@@ -0,0 +1,41 @@
+# Was seen leaking on NOMMU build
+
+echo "Warm up"
+i=1; t=1; export t
+while test $i != 400; do
+ t=valueA_$i true
+ : $((i++))
+done
+
+memleak
+echo "Measuring memory leak..."
+
+# Please copy the entire block from above verbatim
+i=1; t=1; export t
+while test $i != 400; do
+ t=valueA_$i true
+ : $((i++))
+done
+i=1; t=1; export t
+while test $i != 400; do
+ t=valueA_$i true
+ : $((i++))
+done
+i=1; t=1; export t
+while test $i != 400; do
+ t=valueA_$i true
+ : $((i++))
+done
+i=1; t=1; export t
+while test $i != 400; do
+ t=valueA_$i true
+ : $((i++))
+done
+
+memleak
+kb=$?
+if test $kb -le 4; then
+ echo Ok #$kb
+else
+ echo "Bad: $kb kb (or more) leaked"
+fi