summaryrefslogtreecommitdiffstats
path: root/tests/namespace.test
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2004-09-09 17:12:12 (GMT)
committerdgp <dgp@users.sourceforge.net>2004-09-09 17:12:12 (GMT)
commit045fc77ff4e4fe4a8733883a90adc96d68fc6547 (patch)
tree134ce773473248553a80b38aa1b531c25018bd39 /tests/namespace.test
parentd6e816c7ffc49a84ca4030b72df0b629851ea9a1 (diff)
downloadtcl-045fc77ff4e4fe4a8733883a90adc96d68fc6547.zip
tcl-045fc77ff4e4fe4a8733883a90adc96d68fc6547.tar.gz
tcl-045fc77ff4e4fe4a8733883a90adc96d68fc6547.tar.bz2
Also corrected faulty prevention of [namespace import] cycles.
[Bug 1017299]
Diffstat (limited to 'tests/namespace.test')
-rw-r--r--tests/namespace.test46
1 files changed, 45 insertions, 1 deletions
diff --git a/tests/namespace.test b/tests/namespace.test
index 1b0c23d..1751eb5 100644
--- a/tests/namespace.test
+++ b/tests/namespace.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: namespace.test,v 1.21.2.1 2004/09/09 15:45:28 dgp Exp $
+# RCS: @(#) $Id: namespace.test,v 1.21.2.2 2004/09/09 17:12:13 dgp Exp $
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest 2
@@ -244,6 +244,50 @@ test namespace-9.7 {Tcl_Import, links are preserved if cmd is redefined} {
[test_ns_export::cmd1 j k l]
} {{cmd1: a b c} {cmd1: d e f} {} ::test_ns_export::cmd1 ::test_ns_export::cmd1 {new1: g h i} {new1: j k l}}
+test namespace-9.8 {Tcl_Import: Bug 1017299} -setup {
+ namespace eval one {
+ namespace export cmd
+ proc cmd {} {}
+ }
+ namespace eval two {
+ namespace export cmd
+ proc other args {}
+ }
+ namespace eval two \
+ [list namespace import [namespace current]::one::cmd]
+ namespace eval three \
+ [list namespace import [namespace current]::two::cmd]
+ namespace eval three {
+ rename cmd other
+ namespace export other
+ }
+} -body {
+ namespace eval two [list namespace import -force \
+ [namespace current]::three::other]
+ namespace origin two::other
+} -cleanup {
+ namespace delete one two three
+} -match glob -result *::one::cmd
+
+test namespace-9.9 {Tcl_Import: Bug 1017299} -setup {
+ namespace eval one {
+ namespace export cmd
+ proc cmd {} {}
+ }
+ namespace eval two namespace export cmd
+ namespace eval two \
+ [list namespace import [namespace current]::one::cmd]
+ namespace eval three namespace export cmd
+ namespace eval three \
+ [list namespace import [namespace current]::two::cmd]
+} -body {
+ namespace eval two [list namespace import -force \
+ [namespace current]::three::cmd]
+ namespace origin two::cmd
+} -cleanup {
+ namespace delete one two three
+} -returnCodes error -match glob -result {import pattern * would create a loop*}
+
test namespace-10.1 {Tcl_ForgetImport, check for valid namespaces} {
catch {eval namespace delete [namespace children :: test_ns_*]}
list [catch {namespace forget xyzzy::*} msg] $msg