📄 execute.test
字号:
# This file contains tests for the tclExecute.c source file. Tests appear# in the same order as the C code that they test. The set of tests is# currently incomplete since it currently includes only new tests for# code changed for the addition of Tcl namespaces. Other execution-# related tests appear in several other test files including# namespace.test, basic.test, eval.test, for.test, etc.## Sourcing this file into Tcl runs the tests and generates output for# errors. No output means no errors were found.## Copyright (c) 1997 Sun Microsystems, Inc.## See the file "license.terms" for information on usage and redistribution# of this file, and for a DISCLAIMER OF ALL WARRANTIES.## SCCS: @(#) execute.test 1.5 97/08/12 11:16:31if {[string compare test [info procs test]] == 1} then {source defs}catch {eval namespace delete [namespace children :: test_ns_*]}catch {rename foo ""}catch {unset x}catch {unset y}catch {unset msg}test execute-1.1 {Tcl_GetCommandFromObj, convert to tclCmdNameType} { catch {eval namespace delete [namespace children :: test_ns_*]} catch {unset x} catch {unset y} namespace eval test_ns_1 { namespace export cmd1 proc cmd1 {args} {return "cmd1: $args"} proc cmd2 {args} {return "cmd2: $args"} } namespace eval test_ns_1::test_ns_2 { namespace import ::test_ns_1::* } set x "test_ns_1::" set y "test_ns_2::" list [namespace which -command ${x}${y}cmd1] \ [catch {namespace which -command ${x}${y}cmd2} msg] $msg \ [catch {namespace which -command ${x}${y}:cmd2} msg] $msg} {::test_ns_1::test_ns_2::cmd1 0 {} 0 {}}test execute-1.2 {Tcl_GetCommandFromObj, check if cached tclCmdNameType is invalid} { catch {eval namespace delete [namespace children :: test_ns_*]} catch {rename foo ""} catch {unset l} proc foo {} { return "global foo" } namespace eval test_ns_1 { proc whichFoo {} { return [namespace which -command foo] } } set l "" lappend l [test_ns_1::whichFoo] namespace eval test_ns_1 { proc foo {} { return "namespace foo" } } lappend l [test_ns_1::whichFoo] set l} {::foo ::test_ns_1::foo}test execute-1.3 {Tcl_GetCommandFromObj, command never found} { catch {eval namespace delete [namespace children :: test_ns_*]} catch {rename foo ""} namespace eval test_ns_1 { proc foo {} { return "namespace foo" } } namespace eval test_ns_1 { proc foo {} { return "namespace foo" } } list [namespace eval test_ns_1 {namespace which -command foo}] \ [rename test_ns_1::foo ""] \ [catch {namespace eval test_ns_1 {namespace which -command foo}} msg] $msg} {::test_ns_1::foo {} 0 {}}test execute-2.1 {SetCmdNameFromAny, set cmd name to empty heap string if NULL} { catch {eval namespace delete [namespace children :: test_ns_*]} catch {unset l} proc {} {} {return {}} {} set l {} lindex {} 0 {}} {}test execute-3.1 {UpdateStringOfCmdName: called for duplicate of empty cmdName object} { proc {} {} {} proc { } {} {} proc p {} { set x {} $x append x { } $x } p} {}catch {eval namespace delete [namespace children :: test_ns_*]}catch {rename foo ""}catch {rename p ""}catch {rename {} ""}catch {rename { } ""}catch {unset x}catch {unset y}catch {unset msg}concat {}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -