summaryrefslogtreecommitdiffstats
path: root/tests/namespace.test
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2011-03-09 16:42:06 (GMT)
committerdgp <dgp@users.sourceforge.net>2011-03-09 16:42:06 (GMT)
commit66c00a872668c60fedb51c5b242df305c7557826 (patch)
treea7cb38052fffb01584c3102dd50121cc02f7855b /tests/namespace.test
parent47412dd55bfb480602e28ca7d73b0aef74b622cb (diff)
parent2b0f7b4b159055bf1ef1f1a51a31ab0373929824 (diff)
downloadtcl-66c00a872668c60fedb51c5b242df305c7557826.zip
tcl-66c00a872668c60fedb51c5b242df305c7557826.tar.gz
tcl-66c00a872668c60fedb51c5b242df305c7557826.tar.bz2
* generic/tclNamesp.c: Tighten the detector of nested [namespace code]
* tests/namespace.test: quoting that the quoted scripts function properly even in a namespace that contains a custom "namespace" command. [Bug 3202171] * doc/tclvars.n: Formatting fix. Thanks to Pat Thotys.
Diffstat (limited to 'tests/namespace.test')
-rw-r--r--tests/namespace.test23
1 files changed, 17 insertions, 6 deletions
diff --git a/tests/namespace.test b/tests/namespace.test
index cda26f8..fe087a5 100644
--- a/tests/namespace.test
+++ b/tests/namespace.test
@@ -24,6 +24,12 @@ testConstraint memory [llength [info commands memory]]
# Clear out any namespaces called test_ns_*
catch {namespace delete {*}[namespace children :: test_ns_*]}
+proc fq {ns} {
+ if {[string match ::* $ns]} {return $ns}
+ set current [uplevel 1 {namespace current}]
+ return [string trimright $current :]::[string trimleft $ns :]
+}
+
test namespace-1.1 {TclInitNamespaces, GetNamespaceFromObj, NamespaceChildrenCmd} {
namespace children :: test_ns_*
} {}
@@ -928,9 +934,8 @@ test namespace-21.7 {NamespaceChildrenCmd, glob-style pattern given} {
} [lsort {::test_ns_1::test_ns_2 ::test_ns_1::test_ns_foo}]
test namespace-21.8 {NamespaceChildrenCmd, trivial pattern starting with ::} {
namespace eval test_ns_1 {}
- namespace children [namespace current] \
- [string trimright [namespace current] :]::test_ns_1
-} [string trimright [namespace current] :]::test_ns_1
+ namespace children [namespace current] [fq test_ns_1]
+} [fq test_ns_1]
test namespace-22.1 {NamespaceCodeCmd, bad args} {
catch {namespace delete {*}[namespace children :: test_ns_*]}
@@ -941,11 +946,11 @@ test namespace-22.2 {NamespaceCodeCmd, arg is already scoped value} {
namespace eval test_ns_1 {
proc cmd {} {return "test_ns_1::cmd"}
}
- namespace code {namespace inscope ::test_ns_1 cmd}
-} {namespace inscope ::test_ns_1 cmd}
+ namespace code {::namespace inscope ::test_ns_1 cmd}
+} {::namespace inscope ::test_ns_1 cmd}
test namespace-22.3 {NamespaceCodeCmd, arg is already scoped value} {
namespace code {namespace inscope ::test_ns_1 cmd}
-} {namespace inscope ::test_ns_1 cmd}
+} {::namespace inscope :: {namespace inscope ::test_ns_1 cmd}}
test namespace-22.4 {NamespaceCodeCmd, in :: namespace} {
namespace code unknown
} {::namespace inscope :: unknown}
@@ -965,6 +970,12 @@ test namespace-22.6 {NamespaceCodeCmd, in other namespace} {
namespace code {set v}
}]
} {42}
+test namespace-22.7 {NamespaceCodeCmd, Bug 3202171} {
+ namespace eval demo {
+ proc namespace args {puts $args}
+ ::namespace code {namespace inscope foo}
+ }
+} [list ::namespace inscope [fq demo] {namespace inscope foo}]
test namespace-23.1 {NamespaceCurrentCmd, bad args} {
catch {namespace delete {*}[namespace children :: test_ns_*]}