hush/shell/hush_test/hush-z_slow/leak_var2.tests
Denis Vlasenko afd7a8d744 hush: fix environment and memory leaks, add tests for them
function                                             old     new   delta
add_malloced_string_to_strings                         -     110    +110
run_list                                            1999    2086     +87
free_strings_and_unsetenv                              -      87     +87
hush_version_str                                       -      18     +18
pseudo_exec_argv                                     139     146      +7
static.version_str                                    17       -     -17
free_pipe                                            237     210     -27
done_word                                            790     642    -148
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 2/2 up/down: 309/-192)          Total: 117 bytes
2008-10-09 16:29:44 +00:00

64 lines
2.6 KiB
Plaintext
Executable File

pid=$$
t=1
export t
# Warm up
beg=`ps -o pid,vsz | grep "^ *$pid "`
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
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
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
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
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
end=`ps -o pid,vsz | grep "^ *$pid "`
if test "$beg" != "$end"; then
echo "vsz grows: $beg -> $end"
else
echo "vsz does not grow"
fi