summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMiguel Sofer <miguel.sofer@gmail.com>2005-11-18 23:44:37 (GMT)
committerMiguel Sofer <miguel.sofer@gmail.com>2005-11-18 23:44:37 (GMT)
commitd97668ebc72a19373c62850e8b3e461c428c8f92 (patch)
tree244c1c1a43fb25d4acd06db002e3838c15240389 /tests
parentc97535ea03fe482ec1293e11b276eb40fd2faeb8 (diff)
downloadtcl-d97668ebc72a19373c62850e8b3e461c428c8f92.zip
tcl-d97668ebc72a19373c62850e8b3e461c428c8f92.tar.gz
tcl-d97668ebc72a19373c62850e8b3e461c428c8f92.tar.bz2
* tests/trace.test (trace-34.5): [Bug 1047286], added a second
test illustrating the role of "ns in callStack" in the ns's visibility during deletion traces.
Diffstat (limited to 'tests')
-rw-r--r--tests/trace.test17
1 files changed, 15 insertions, 2 deletions
diff --git a/tests/trace.test b/tests/trace.test
index 91cc98b..4409fe1 100644
--- a/tests/trace.test
+++ b/tests/trace.test
@@ -11,7 +11,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: trace.test,v 1.26.2.13 2005/11/18 23:07:27 msofer Exp $
+# RCS: @(#) $Id: trace.test,v 1.26.2.14 2005/11/18 23:44:37 msofer Exp $
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest
@@ -2267,10 +2267,12 @@ test trace-34.3 {Bug 1224585} {
foo
} {}
+# We test here for the half-documented and currently valid interplay between
+# delete traces and namespace deletion.
test trace-34.4 {Bug 1047286} {
variable x notrace
proc callback {old - -} {
- variable x "$old exists: [namespace which -command $old]"
+ variable x "$old exists: [namespace which -command $old]"
}
namespace eval ::foo {proc bar {} {}}
trace add command ::foo::bar delete [namespace code callback]
@@ -2278,6 +2280,17 @@ test trace-34.4 {Bug 1047286} {
set x
} {::foo::bar exists: ::foo::bar}
+test trace-34.5 {Bug 1047286} {
+ variable x notrace
+ proc callback {old - -} {
+ variable x "$old exists: [namespace which -command $old]"
+ }
+ namespace eval ::foo {proc bar {} {}}
+ trace add command ::foo::bar delete [namespace code callback]
+ namespace eval ::foo namespace delete ::foo
+ set x
+} {::foo::bar exists: }
+
# Delete procedures when done, so we don't clash with other tests
# (e.g. foobar will clash with 'unknown' tests).
catch {rename foobar {}}