📄 namespace-old.test
字号:
namespace eval test_ns_hier2b {} }} {}test namespace-old-5.2 {namespaces can be nested} { list [namespace eval test_ns_hier1 {namespace current}] \ [namespace eval test_ns_hier1 { namespace eval test_ns_hier2 {namespace current} }]} {::test_ns_hier1 ::test_ns_hier1::test_ns_hier2}test namespace-old-5.3 {namespace qualifiers work in namespace command} { list [namespace eval ::test_ns_hier1 {namespace current}] \ [namespace eval test_ns_hier1::test_ns_hier2 {namespace current}] \ [namespace eval ::test_ns_hier1::test_ns_hier2 {namespace current}]} {::test_ns_hier1 ::test_ns_hier1::test_ns_hier2 ::test_ns_hier1::test_ns_hier2}test namespace-old-5.4 {nested namespaces can access global namespace} { list [namespace eval test_ns_hier1 {set test_ns_var_global}] \ [namespace eval test_ns_hier1 {test_ns_cmd_global}] \ [namespace eval test_ns_hier1::test_ns_hier2 {set test_ns_var_global}] \ [namespace eval test_ns_hier1::test_ns_hier2 {test_ns_cmd_global}]} {{var in ::} {cmd in ::} {var in ::} {cmd in ::}}test namespace-old-5.5 {variables in different namespaces don't conflict} { list [set test_ns_hier1::test_ns_level] \ [set test_ns_hier1::test_ns_hier2::test_ns_level]} {1 2}test namespace-old-5.6 {commands in different namespaces don't conflict} { list [test_ns_hier1::test_ns_show] \ [test_ns_hier1::test_ns_hier2::test_ns_show]} {{::test_ns_hier1: 1} {::test_ns_hier1::test_ns_hier2: 2}}test namespace-old-5.7 {nested namespaces don't see variables in parent} { set cmd { namespace eval test_ns_hier1::test_ns_hier2 {set test_ns_var_hier1} } list [catch $cmd msg] $msg} {1 {can't read "test_ns_var_hier1": no such variable}}test namespace-old-5.8 {nested namespaces don't see commands in parent} { set cmd { namespace eval test_ns_hier1::test_ns_hier2 {test_ns_cmd_hier1} } list [catch $cmd msg] $msg} {1 {invalid command name "test_ns_cmd_hier1"}}test namespace-old-5.9 {usage for "namespace children"} { list [catch {namespace children test_ns_hier1 y z} msg] $msg} {1 {wrong # args: should be "namespace children ?name? ?pattern?"}}test namespace-old-5.10 {command "namespace children" must get valid namespace} { list [catch {namespace children xyzzy} msg] $msg} {1 {unknown namespace "xyzzy" in namespace children command}}test namespace-old-5.11 {querying namespace children} { lsort [namespace children :: test_ns_hier*]} {::test_ns_hier1}test namespace-old-5.12 {querying namespace children} { lsort [namespace children test_ns_hier1]} {::test_ns_hier1::test_ns_hier2 ::test_ns_hier1::test_ns_hier2a ::test_ns_hier1::test_ns_hier2b}test namespace-old-5.13 {querying namespace children} { lsort [namespace eval test_ns_hier1 {namespace children}]} {::test_ns_hier1::test_ns_hier2 ::test_ns_hier1::test_ns_hier2a ::test_ns_hier1::test_ns_hier2b}test namespace-old-5.14 {querying namespace children} { lsort [namespace children test_ns_hier1::test_ns_hier2]} {::test_ns_hier1::test_ns_hier2::test_ns_hier3a ::test_ns_hier1::test_ns_hier2::test_ns_hier3b}test namespace-old-5.15 {querying namespace children} { lsort [namespace eval test_ns_hier1::test_ns_hier2 {namespace children}]} {::test_ns_hier1::test_ns_hier2::test_ns_hier3a ::test_ns_hier1::test_ns_hier2::test_ns_hier3b}test namespace-old-5.16 {querying namespace children with patterns} { lsort [namespace children test_ns_hier1::test_ns_hier2 test_ns_*]} {::test_ns_hier1::test_ns_hier2::test_ns_hier3a ::test_ns_hier1::test_ns_hier2::test_ns_hier3b}test namespace-old-5.17 {querying namespace children with patterns} { lsort [namespace children test_ns_hier1::test_ns_hier2 *b]} {::test_ns_hier1::test_ns_hier2::test_ns_hier3b}test namespace-old-5.18 {usage for "namespace parent"} { list [catch {namespace parent x y} msg] $msg} {1 {wrong # args: should be "namespace parent ?name?"}}test namespace-old-5.19 {command "namespace parent" must get valid namespace} { list [catch {namespace parent xyzzy} msg] $msg} {1 {unknown namespace "xyzzy" in namespace parent command}}test namespace-old-5.20 {querying namespace parent} { list [namespace eval :: {namespace parent}] \ [namespace eval test_ns_hier1 {namespace parent}] \ [namespace eval test_ns_hier1::test_ns_hier2 {namespace parent}] \ [namespace eval test_ns_hier1::test_ns_hier2::test_ns_hier3a {namespace parent}] \} {{} :: ::test_ns_hier1 ::test_ns_hier1::test_ns_hier2}test namespace-old-5.21 {querying namespace parent for explicit namespace} { list [namespace parent ::] \ [namespace parent test_ns_hier1] \ [namespace parent test_ns_hier1::test_ns_hier2] \ [namespace parent test_ns_hier1::test_ns_hier2::test_ns_hier3a]} {{} :: ::test_ns_hier1 ::test_ns_hier1::test_ns_hier2}# -----------------------------------------------------------------------# TEST: name resolution and caching# -----------------------------------------------------------------------test namespace-old-6.1 {relative ns names only looked up in current ns} { namespace eval test_ns_cache1 {} namespace eval test_ns_cache2 {} namespace eval test_ns_cache2::test_ns_cache3 {} set trigger { namespace eval test_ns_cache2 {namespace current} } set trigger2 { namespace eval test_ns_cache2::test_ns_cache3 {namespace current} } list [namespace eval test_ns_cache1 $trigger] \ [namespace eval test_ns_cache1 $trigger2]} {::test_ns_cache1::test_ns_cache2 ::test_ns_cache1::test_ns_cache2::test_ns_cache3}test namespace-old-6.2 {relative ns names only looked up in current ns} { namespace eval test_ns_cache1::test_ns_cache2 {} list [namespace eval test_ns_cache1 $trigger] \ [namespace eval test_ns_cache1 $trigger2]} {::test_ns_cache1::test_ns_cache2 ::test_ns_cache1::test_ns_cache2::test_ns_cache3}test namespace-old-6.3 {relative ns names only looked up in current ns} { namespace eval test_ns_cache1::test_ns_cache2::test_ns_cache3 {} list [namespace eval test_ns_cache1 $trigger] \ [namespace eval test_ns_cache1 $trigger2]} {::test_ns_cache1::test_ns_cache2 ::test_ns_cache1::test_ns_cache2::test_ns_cache3}test namespace-old-6.4 {relative ns names only looked up in current ns} { namespace delete test_ns_cache1::test_ns_cache2 list [namespace eval test_ns_cache1 $trigger] \ [namespace eval test_ns_cache1 $trigger2]} {::test_ns_cache1::test_ns_cache2 ::test_ns_cache1::test_ns_cache2::test_ns_cache3}test namespace-old-6.5 {define test commands} { proc test_ns_cache_cmd {} { return "global version" } namespace eval test_ns_cache1 { proc trigger {} { test_ns_cache_cmd } } test_ns_cache1::trigger} {global version}test namespace-old-6.6 {one-level check for command shadowing} { proc test_ns_cache1::test_ns_cache_cmd {} { return "cache1 version" } test_ns_cache1::trigger} {cache1 version}test namespace-old-6.7 {renaming commands changes command epoch} { namespace eval test_ns_cache1 { rename test_ns_cache_cmd test_ns_new } test_ns_cache1::trigger} {global version}test namespace-old-6.8 {renaming back handles shadowing} { namespace eval test_ns_cache1 { rename test_ns_new test_ns_cache_cmd } test_ns_cache1::trigger} {cache1 version}test namespace-old-6.9 {deleting commands changes command epoch} { namespace eval test_ns_cache1 { rename test_ns_cache_cmd "" } test_ns_cache1::trigger} {global version}test namespace-old-6.10 {define test namespaces} { namespace eval test_ns_cache2 { proc test_ns_cache_cmd {} { return "global cache2 version" } } namespace eval test_ns_cache1 { proc trigger {} { test_ns_cache2::test_ns_cache_cmd } } namespace eval test_ns_cache1::test_ns_cache2 { proc trigger {} { test_ns_cache_cmd } } list [test_ns_cache1::trigger] [test_ns_cache1::test_ns_cache2::trigger]} {{global cache2 version} {global version}}test namespace-old-6.11 {commands affect all parent namespaces} { proc test_ns_cache1::test_ns_cache2::test_ns_cache_cmd {} { return "cache2 version" } list [test_ns_cache1::trigger] [test_ns_cache1::test_ns_cache2::trigger]} {{cache2 version} {cache2 version}}test namespace-old-6.12 {define test variables} { variable test_ns_cache_var "global version" set trigger {set test_ns_cache_var} namespace eval test_ns_cache1 $trigger} {global version}test namespace-old-6.13 {one-level check for variable shadowing} { namespace eval test_ns_cache1 { variable test_ns_cache_var "cache1 version" } namespace eval test_ns_cache1 $trigger} {cache1 version}test namespace-old-6.14 {deleting variables changes variable epoch} { namespace eval test_ns_cache1 { unset test_ns_cache_var } namespace eval test_ns_cache1 $trigger} {global version}test namespace-old-6.15 {define test namespaces} { namespace eval test_ns_cache2 { variable test_ns_cache_var "global cache2 version" } set trigger2 {set test_ns_cache2::test_ns_cache_var} list [namespace eval test_ns_cache1 $trigger2] \ [namespace eval test_ns_cache1::test_ns_cache2 $trigger]} {{global cache2 version} {global version}}test namespace-old-6.16 {public variables affect all parent namespaces} { variable test_ns_cache1::test_ns_cache2::test_ns_cache_var "cache2 version" list [namespace eval test_ns_cache1 $trigger2] \ [namespace eval test_ns_cache1::test_ns_cache2 $trigger]} {{cache2 version} {cache2 version}}test namespace-old-6.17 {usage for "namespace which"} { list [catch "namespace which -baz" msg] $msg} {1 {wrong # args: should be "namespace which ?-command? ?-variable? name"}}test namespace-old-6.18 {usage for "namespace which"} { list [catch "namespace which -command" msg] $msg} {1 {wrong # args: should be "namespace which ?-command? ?-variable? name"}}test namespace-old-6.19 {querying: namespace which -command} { proc test_ns_cache1::test_ns_cache_cmd {} { return "cache1 version" } list [namespace eval :: {namespace which test_ns_cache_cmd}] \ [namespace eval test_ns_cache1 {namespace which test_ns_cache_cmd}] \ [namespace eval :: {namespace which -command test_ns_cache_cmd}] \ [namespace eval test_ns_cache1 {namespace which -command test_ns_cache_cmd}]} {::test_ns_cache_cmd ::test_ns_cache1::test_ns_cache_cmd ::test_ns_cache_cmd ::test_ns_cache1::test_ns_cache_cmd}test namespace-old-6.20 {command "namespace which" may not find commands} { namespace eval test_ns_cache1 {namespace which -command xyzzy}} {}test namespace-old-6.21 {querying: namespace which -variable} { namespace eval test_ns_cache1::test_ns_cache2 { namespace which -variable test_ns_cache_var }} {::test_ns_cache1::test_ns_cache2::test_ns_cache_var}test namespace-old-6.22 {command "namespace which" may not find variables} { namespace eval test_ns_cache1 {namespace which -variable xyzzy}} {}# -----------------------------------------------------------------------# TEST: uplevel/upvar across namespace boundaries# -----------------------------------------------------------------------test namespace-old-7.1 {define test namespace} { namespace eval test_ns_uplevel { variable x 0 variable y 1 proc show_vars {num} {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -