hush: add more complex case to leak testcase, fix found breakage

function                                             old     new   delta
unset_local_var_len                                    -     167    +167
run_list                                            2350    2457    +107
set_vars_and_save_old                                  -      87     +87
free_pipe                                            207     227     +20
builtin_unset                                        220     229      +9
builtin_exit                                          49      47      -2
free_strings_and_unset                                53       -     -53
set_vars_all_and_save_old                             87       -     -87
unset_local_var                                      168       -    -168
------------------------------------------------------------------------------
(add/remove: 2/3 grow/shrink: 3/1 up/down: 390/-310)           Total: 80 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2009-05-04 01:58:10 +02:00
parent cb6ff25afe
commit acdc49c073
2 changed files with 47 additions and 38 deletions

View File

@@ -64,7 +64,7 @@ HERE
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=iii$i t=ttt$i z=zzz$i f >/dev/null
: $((i++))
done
unset i l t
@@ -132,7 +132,7 @@ HERE
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=iii$i t=ttt$i z=zzz$i f >/dev/null
: $((i++))
done
unset i l t
@@ -141,9 +141,8 @@ unset -f f
memleak
kb=$?
# Observed some variability, bumped to 12k
if test $kb -le 12; then
if test $kb -le 4; then
echo Ok #$kb
else
echo "Bad: $kb kb (or more) leaked"
echo "Bad: $kb kb leaked"
fi