aboutsummaryrefslogtreecommitdiff
path: root/shell/hush_test/hush-z_slow/leak_var.tests
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2009-04-08 11:48:57 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2009-04-08 11:48:57 +0000
commitc73b70c7013aa98a86653ad7e7d15bcca16622f2 (patch)
tree2f2534d588201af85d09335848cef63e93cc83c1 /shell/hush_test/hush-z_slow/leak_var.tests
parent3dfb035d8df33e59492e78a97bf42e961ba178e4 (diff)
downloadbusybox-c73b70c7013aa98a86653ad7e7d15bcca16622f2.tar.gz
hush: add leak detector helper; fix/add tests for it
function old new delta builtin_memleak - 92 +92 bltins 288 300 +12
Diffstat (limited to 'shell/hush_test/hush-z_slow/leak_var.tests')
-rwxr-xr-xshell/hush_test/hush-z_slow/leak_var.tests103
1 files changed, 6 insertions, 97 deletions
diff --git a/shell/hush_test/hush-z_slow/leak_var.tests b/shell/hush_test/hush-z_slow/leak_var.tests
index b3e13e308..41c09e478 100755
--- a/shell/hush_test/hush-z_slow/leak_var.tests
+++ b/shell/hush_test/hush-z_slow/leak_var.tests
@@ -1,96 +1,4 @@
-pid=$$
-
-# Warm up
-beg=`ps -o pid,vsz | grep "^ *$pid "`
-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
-done
-end=`ps -o pid,vsz | grep "^ *$pid "`
-
-# Warm up again (I do need it on my machine)
-beg=`ps -o pid,vsz | grep "^ *$pid "`
-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
-done
-end=`ps -o pid,vsz | grep "^ *$pid "`
-if test "$beg" != "$end"; then
- true echo "vsz grows: $beg -> $end"
-else
- true echo "vsz does not grow"
-fi
-
echo "Measuring memory leak..."
-beg=`ps -o pid,vsz | grep "^ *$pid "`
i=1
while test $i != X; do
unset t
@@ -128,11 +36,12 @@ while test $i != X; do
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
-end=`ps -o pid,vsz | grep "^ *$pid "`
-
-if test "$beg" != "$end"; then
- echo "vsz grows: $beg -> $end"
+memleak
+kb=$?
+if test $kb -le 4; then
+ echo Ok
else
- echo "vsz does not grow"
+ echo "Bad: $kb kb (or more) leaked"
fi