diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | tests/compExpr.test | 21 |
2 files changed, 21 insertions, 1 deletions
@@ -8,6 +8,7 @@ * generic/tclCompExpr.c: Fix literal leak in exprs [Bug 1869989] * generic/tclExecute.c: (dgp) + * tests/compExpr.test: * doc/proc.n: changed wording for access to non-local variables; added mention to [namespace upvar]. Lame attempt at dealing with diff --git a/tests/compExpr.test b/tests/compExpr.test index 341d88a..c3e68c1 100644 --- a/tests/compExpr.test +++ b/tests/compExpr.test @@ -8,7 +8,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: compExpr.test,v 1.16 2007/12/13 15:26:06 dgp Exp $ +# RCS: @(#) $Id: compExpr.test,v 1.17 2008/01/16 21:54:33 dgp Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest @@ -342,6 +342,25 @@ test compExpr-7.1 {Memory Leak} -constraints memory -setup { rename getbytes {} } -result 0 +test compExpr-7.2 {[Bug 1869989]: expr parser memleak} -constraints memory -setup { + proc getbytes {} { + set lines [split [memory info] \n] + lindex $lines 3 3 + } +} -body { + set i 5 + set end [getbytes] + while {[incr i -1]} { + expr ${i}000 + set tmp $end + set end [getbytes] + } + set leakedBytes [expr {$end - $tmp}] +} -cleanup { + unset end i tmp + rename getbytes {} +} -result 0 + # cleanup catch {unset a} catch {unset b} |