summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/interp.test30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/interp.test b/tests/interp.test
index 35f3390..9287756 100644
--- a/tests/interp.test
+++ b/tests/interp.test
@@ -3668,6 +3668,36 @@ test interp-38.8 {interp debug basic setup} -body {
test interp-39.0 {
no segmentation fault when a command is deleted
} -body {
+ variable res {}
+
+ proc p1 args {
+ return success
+ }
+ namespace eval ns1 {
+ namespace export *
+ }
+ interp alias {} [namespace current]::ns1::p2 {} [namespace current]::p1
+ namespace eval ns2 {
+ namespace import [namespace parent]::ns1::p2
+ }
+ proc ondelete {oldname newname op} {
+ variable res
+ namespace delete ns1
+ catch {
+ ns1::p2
+ } res
+ }
+
+ trace add command ns2::p2 delete [namespace which ondelete]
+ rename ns2::p2 {}
+ rename p1 {}
+ if {
+ [string match {*invalid command name*ns1::p2*} $res]
+ } {
+ return 1
+ } else {
+ return $res
+ }
} -cleanup {
} -result 1