diff options
author | mig <mig> | 2012-02-06 16:46:17 (GMT) |
---|---|---|
committer | mig <mig> | 2012-02-06 16:46:17 (GMT) |
commit | 234e0816da7ffb6d8d3691f6fac55f330285ef10 (patch) | |
tree | 61bb17debaf1681940374fbcaff97b26005846c3 /tests | |
parent | 1b8b1325832f5d25e6db0c5b7839dada981562f5 (diff) | |
parent | 3726e1f19cfa86bd6348c60bc1b600512748db4f (diff) | |
download | tcl-234e0816da7ffb6d8d3691f6fac55f330285ef10.zip tcl-234e0816da7ffb6d8d3691f6fac55f330285ef10.tar.gz tcl-234e0816da7ffb6d8d3691f6fac55f330285ef10.tar.bz2 |
Fix for [Bug 3484621]: insure that execution traces on bytecoded commands bump the interp's compile epoch.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/trace.test | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/trace.test b/tests/trace.test index 5767860..254ff62 100644 --- a/tests/trace.test +++ b/tests/trace.test @@ -2558,6 +2558,39 @@ set base { } runbase {{- *} {-* *} {- *} {- *}} $base +test trace-39 {bug #3484621: tracing Bc'ed commands} -setup { + set ::traceLog 0 + set ::traceCalls 0 + set ::bar [list 0 1 2 3] + set res {} + proc dotrace args { + incr ::traceLog + } + proc foo {} { + incr ::traceCalls + # choose a BC'ed command that is 'unlikely' to interfere with tcltest's + # internals + lset ::bar 1 2 + } +} -body { + foo + lappend res $::traceLog + + trace add execution lset enter dotrace + foo + lappend res $::traceLog + + trace remove execution lset enter dotrace + foo + lappend res $::traceLog + + list $::traceCalls | {*}$res +} -cleanup { + unset ::traceLog ::traceCalls ::bar res + rename dotrace {} + rename foo {} +} -result {3 | 0 1 1} + # Delete procedures when done, so we don't clash with other tests |