diff options
author | dgp <dgp@users.sourceforge.net> | 2013-08-14 19:07:01 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2013-08-14 19:07:01 (GMT) |
commit | e53364c7b0929f62adb4c101d487f1ebb2754a94 (patch) | |
tree | dfe7c4a814fe0185a1ca2065dc58a32252902994 /tests/oo.test | |
parent | a733cde27c904a40aae56e93c7daa369e2a4d045 (diff) | |
parent | 45814c0d69b2f08f1940cd3ca3cd8ce389815779 (diff) | |
download | tcl-e53364c7b0929f62adb4c101d487f1ebb2754a94.zip tcl-e53364c7b0929f62adb4c101d487f1ebb2754a94.tar.gz tcl-e53364c7b0929f62adb4c101d487f1ebb2754a94.tar.bz2 |
merge trunk
Diffstat (limited to 'tests/oo.test')
-rw-r--r-- | tests/oo.test | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/oo.test b/tests/oo.test index 6d38f71..e0e0791 100644 --- a/tests/oo.test +++ b/tests/oo.test @@ -936,6 +936,69 @@ test oo-6.18 {Bug 3408830: more forwarding cases} -setup { } -returnCodes error -cleanup { fooClass destroy } -result {wrong # args: should be "::foo len string"} +test oo-6.19 {Bug 3610404: forwarding resolution + traces} -setup { + oo::object create foo + unset -nocomplain ::result + set ::result {} +} -body { + proc ::my {method} {lappend ::result global} + oo::objdefine foo { + method target {} {lappend ::result instance} + forward bar my target + method bump {} { + set ns [info object namespace ::foo] + rename ${ns}::my ${ns}:: + rename ${ns}:: ${ns}::my + } + } + proc harness {} { + foo target + foo bar + foo target + } + trace add execution harness enterstep {apply {{cmd args} {foo bump}}} + foo target + foo bar + foo bump + foo bar + harness +} -cleanup { + catch {rename harness {}} + catch {rename ::my {}} + foo destroy +} -result {instance instance instance instance instance instance} +test oo-6.20 {Bug 3610404: forwarding resolution + traces} -setup { + oo::class create fooClass + fooClass create foo + unset -nocomplain ::result + set ::result {} +} -body { + proc ::my {method} {lappend ::result global} + oo::define fooClass { + method target {} {lappend ::result class} + forward bar my target + method bump {} { + set ns [info object namespace [self]] + rename ${ns}::my ${ns}:: + rename ${ns}:: ${ns}::my + } + } + proc harness {} { + foo target + foo bar + foo target + } + trace add execution harness enterstep {apply {{cmd args} {foo bump}}} + foo target + foo bar + foo bump + foo bar + harness +} -cleanup { + catch {rename harness {}} + catch {rename ::my {}} + fooClass destroy +} -result {class class class class class class} test oo-7.1 {OO: inheritance 101} -setup { oo::class create superClass |