📄 interp.test
字号:
lappend l $msg interp delete a set l} {0 {{$z a b c}}}test interp-20.9 {interp invokehidden vs variable eval} { catch {interp delete a} interp create a a hide list a eval set z 89 set z 45 set l "" lappend l [catch {a invokehidden list $z {$z a b c}} msg] lappend l $msg interp delete a set l} {0 {45 {$z a b c}}}test interp-20.10 {interp hide, interp expose and interp invokehidden} { catch {interp delete a} interp create a a eval {proc unknown {x args} {error "invalid command name \"$x\""}} a eval {proc foo {} {}} interp hide a foo catch {interp eval a foo something} msg interp delete a set msg} {invalid command name "foo"}test interp-20.11 {interp hide, interp expose and interp invokehidden} { catch {interp delete a} interp create a a eval {proc unknown {x args} {error "invalid command name \"$x\""}} interp hide a list set l "" lappend l [catch {interp eval a {list 1 2 3}} msg] lappend l $msg interp expose a list lappend l [catch {interp eval a {list 1 2 3}} msg] lappend l $msg interp delete a set l} {1 {invalid command name "list"} 0 {1 2 3}}test interp-20.12 {interp hide, interp expose and interp invokehidden} { catch {interp delete a} interp create a a eval {proc unknown {x args} {error "invalid command name \"$x\""}} interp hide a list set l "" lappend l [catch {interp eval a {list 1 2 3}} msg] lappend l $msg lappend l [catch {interp invokehidden a list 1 2 3} msg] lappend l $msg interp expose a list lappend l [catch {interp eval a {list 1 2 3}} msg] lappend l $msg interp delete a set l} {1 {invalid command name "list"} 0 {1 2 3} 0 {1 2 3}}test interp-20.13 {interp hide, interp expose, interp invokehidden -- passing {}} { catch {interp delete a} interp create a a eval {proc unknown {x args} {error "invalid command name \"$x\""}} interp hide a list set l "" lappend l [catch {interp eval a {list 1 2 3}} msg] lappend l $msg lappend l [catch {interp invokehidden a list {"" 1 2 3}} msg] lappend l $msg interp expose a list lappend l [catch {interp eval a {list 1 2 3}} msg] lappend l $msg interp delete a set l} {1 {invalid command name "list"} 0 {{"" 1 2 3}} 0 {1 2 3}}test interp-20.14 {interp hide, interp expose, interp invokehidden -- passing {}} { catch {interp delete a} interp create a a eval {proc unknown {x args} {error "invalid command name \"$x\""}} interp hide a list set l "" lappend l [catch {interp eval a {list 1 2 3}} msg] lappend l $msg lappend l [catch {interp invokehidden a list {{} 1 2 3}} msg] lappend l $msg interp expose a list lappend l [catch {a eval {list 1 2 3}} msg] lappend l $msg interp delete a set l} {1 {invalid command name "list"} 0 {{{} 1 2 3}} 0 {1 2 3}}test interp-20.15 {interp invokehidden -- eval args} { catch {interp delete a} interp create a interp hide a list set l "" set z 45 lappend l [catch {interp invokehidden a list $z 1 2 3} msg] lappend l $msg a expose list lappend l [catch {interp eval a list $z 1 2 3} msg] lappend l $msg interp delete a set l} {0 {45 1 2 3} 0 {45 1 2 3}}test interp-20.16 {interp invokehidden vs variable eval} { catch {interp delete a} interp create a interp hide a list set z 45 set l "" lappend l [catch {interp invokehidden a list {$z a b c}} msg] lappend l $msg interp delete a set l} {0 {{$z a b c}}}test interp-20.17 {interp invokehidden vs variable eval} { catch {interp delete a} interp create a interp hide a list a eval set z 89 set z 45 set l "" lappend l [catch {interp invokehidden a list {$z a b c}} msg] lappend l $msg interp delete a set l} {0 {{$z a b c}}}test interp-20.18 {interp invokehidden vs variable eval} { catch {interp delete a} interp create a interp hide a list a eval set z 89 set z 45 set l "" lappend l [catch {interp invokehidden a list $z {$z a b c}} msg] lappend l $msg interp delete a set l} {0 {45 {$z a b c}}}test interp-20.19 {interp invokehidden vs nested commands} { catch {interp delete a} interp create a a hide list set l [a invokehidden list {[list x y z] f g h} z] interp delete a set l} {{[list x y z] f g h} z}test interp-20.20 {interp invokehidden vs nested commands} { catch {interp delete a} interp create a a hide list set l [interp invokehidden a list {[list x y z] f g h} z] interp delete a set l} {{[list x y z] f g h} z}test interp-20.21 {interp hide vs safety} { catch {interp delete a} interp create a -safe set l "" lappend l [catch {a hide list} msg] lappend l $msg interp delete a set l} {0 {}}test interp-20.22 {interp hide vs safety} { catch {interp delete a} interp create a -safe set l "" lappend l [catch {interp hide a list} msg] lappend l $msg interp delete a set l} {0 {}}test interp-20.23 {interp hide vs safety} { catch {interp delete a} interp create a -safe set l "" lappend l [catch {a eval {interp hide {} list}} msg] lappend l $msg interp delete a set l} {1 {permission denied: safe interpreter cannot hide commands}}test interp-20.24 {interp hide vs safety} { catch {interp delete a} interp create a -safe interp create {a b} set l "" lappend l [catch {a eval {interp hide b list}} msg] lappend l $msg interp delete a set l} {1 {permission denied: safe interpreter cannot hide commands}}test interp-20.25 {interp hide vs safety} { catch {interp delete a} interp create a -safe interp create {a b} set l "" lappend l [catch {interp hide {a b} list} msg] lappend l $msg interp delete a set l} {0 {}}test interp-20.26 {interp expoose vs safety} { catch {interp delete a} interp create a -safe set l "" lappend l [catch {a hide list} msg] lappend l $msg lappend l [catch {a expose list} msg] lappend l $msg interp delete a set l} {0 {} 0 {}}test interp-20.27 {interp expose vs safety} { catch {interp delete a} interp create a -safe set l "" lappend l [catch {interp hide a list} msg] lappend l $msg lappend l [catch {interp expose a list} msg] lappend l $msg interp delete a set l} {0 {} 0 {}}test interp-20.28 {interp expose vs safety} { catch {interp delete a} interp create a -safe set l "" lappend l [catch {a hide list} msg] lappend l $msg lappend l [catch {a eval {interp expose {} list}} msg] lappend l $msg interp delete a set l} {0 {} 1 {permission denied: safe interpreter cannot expose commands}}test interp-20.29 {interp expose vs safety} { catch {interp delete a} interp create a -safe set l "" lappend l [catch {interp hide a list} msg] lappend l $msg lappend l [catch {a eval {interp expose {} list}} msg] lappend l $msg interp delete a set l} {0 {} 1 {permission denied: safe interpreter cannot expose commands}}test interp-20.30 {interp expose vs safety} { catch {interp delete a} interp create a -safe interp create {a b} set l "" lappend l [catch {interp hide {a b} list} msg] lappend l $msg lappend l [catch {a eval {interp expose b list}} msg] lappend l $msg interp delete a set l} {0 {} 1 {permission denied: safe interpreter cannot expose commands}}test interp-20.31 {interp expose vs safety} { catch {interp delete a} interp create a -safe interp create {a b} set l "" lappend l [catch {interp hide {a b} list} msg] lappend l $msg lappend l [catch {interp expose {a b} list} msg] lappend l $msg interp delete a set l} {0 {} 0 {}}test interp-20.32 {interp invokehidden vs safety} { catch {interp delete a} interp create a -safe interp hide a list set l "" lappend l [catch {a eval {interp invokehidden {} list a b c}} msg] lappend l $msg interp delete a set l} {1 {not allowed to invoke hidden commands from safe interpreter}}test interp-20.33 {interp invokehidden vs safety} { catch {interp delete a} interp create a -safe interp hide a list set l "" lappend l [catch {a eval {interp invokehidden {} list a b c}} msg] lappend l $msg lappend l [catch {a invokehidden list a b c} msg] lappend l $msg interp delete a set l} {1 {not allowed to invoke hidden commands from safe interpreter}\0 {a b c}}test interp-20.34 {interp invokehidden vs safety} { catch {interp delete a} interp create a -safe interp create {a b} interp hide {a b} list set l "" lappend l [catch {a eval {interp invokehidden b list a b c}} msg] lappend l $msg lappend l [catch {interp invokehidden {a b} list a b c} msg] lappend l $msg interp delete a set l} {1 {not allowed to invoke hidden commands from safe interpreter}\0 {a b c}}test interp-20.35 {invokehidden at local level} { catch {interp delete a} interp create a a eval { proc p1 {} { set z 90 a1 set z } proc h1 {} { upvar z z set z 91 } } a hide h1 a alias a1 a1 proc a1 {} { interp invokehidden a h1 } set r [interp eval a p1] interp delete a set r} 91test interp-20.36 {invokehidden at local level} { catch {interp delete a} interp create a a eval { set z 90 proc p1 {} { global z a1 set z } proc h1 {} { upvar z z set z 91 } } a hide h1 a alias a1 a1 proc a1 {} { interp invokehidden a h1 } set r [interp eval a p1] interp delete a set r} 91test interp-20.37 {invokehidden at local level} { catch {interp delete a} interp create a a eval { proc p1 {} { a1 set z } proc h1 {} { upvar z z set z 91 } } a hide h1 a alias a1 a1 proc a1 {} { interp invokehidden a h1 } set r [interp eval a p1] interp delete a set r} 91test interp-20.38 {invokehidden at global level} { catch {interp delete a} interp create a a eval { proc p1 {} { a1 set z } proc h1 {} { upvar z z set z 91 } } a hide h1 a alias a1 a1 proc a1 {} { interp invokehidden a -global h1 } set r [catch {interp eval a p1} msg] interp delete a list $r $msg} {1 {can't read "z": no such variable}}test interp-20.39 {invokehidden at global level} { catch {interp delete a} interp create a a eval { proc p1 {} { global z a1 set z } proc h1 {} { upvar z z set z 91 } } a hide h1 a alias a1 a1 proc a1 {} { interp invokehidden a -global h1 } set r [catch {interp eval a p1} msg] interp delete a list $r $msg} {0 91}test interp-20.40 {safe, invokehidden at local level} { catch {interp delete a} interp create a -safe a eval { proc p1 {} { set z 90 a1 set z } proc h1 {} { upvar z z set z 91 } } a hide h1 a alias a1 a1 proc a1 {} { interp invokehidden a h1 } set r [interp eval a p1] interp delete a set r} 91test interp-20.41 {safe, invokehidden at local level} { catch {interp delete a} interp create a -safe a eval { set z 90 proc p1 {} { global z a1 set z }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -