diff options
author | dgp <dgp@users.sourceforge.net> | 2014-04-21 19:04:08 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2014-04-21 19:04:08 (GMT) |
commit | 5407657340a624d763a1c122624a5b5da218f911 (patch) | |
tree | 812d23cc45f6ea63bd523ba8fc2c441a5c0d297f /tests/ioCmd.test | |
parent | a1e839f080f7946041e6934a91baefb9da50ba61 (diff) | |
parent | a07adf4d6d28771d9aa74ef06526e5fb3035f5c1 (diff) | |
download | tcl-5407657340a624d763a1c122624a5b5da218f911.zip tcl-5407657340a624d763a1c122624a5b5da218f911.tar.gz tcl-5407657340a624d763a1c122624a5b5da218f911.tar.bz2 |
Merge refcounting machinery for ChannelBuffer.
Diffstat (limited to 'tests/ioCmd.test')
-rw-r--r-- | tests/ioCmd.test | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/ioCmd.test b/tests/ioCmd.test index 0a61252..36339ec 100644 --- a/tests/ioCmd.test +++ b/tests/ioCmd.test @@ -812,6 +812,38 @@ test iocmd-21.20 {Bug 88aef05cda} -setup { close $ch rename foo {} } -match glob -result {1 {*nested eval*}} +test iocmd-21.21 {[close] in [read] segfaults} -setup { + proc foo {method chan args} { + switch -- $method initialize { + return {initialize finalize watch read} + } finalize {} watch {} read { + close $chan + return a + } + } + set ch [chan create read foo] +} -body { + read $ch 0 +} -cleanup { + close $ch + rename foo {} +} -result {} +test iocmd-21.22 {[close] in [read] segfaults} -setup { + proc foo {method chan args} { + switch -- $method initialize { + return {initialize finalize watch read} + } finalize {} watch {} read { + catch {close $chan} + return a + } + } + set ch [chan create read foo] +} -body { + read $ch 1 +} -returnCodes error -cleanup { + catch {close $ch} + rename foo {} +} -match glob -result {*invalid argument*} # --- --- --- --------- --------- --------- # Helper commands to record the arguments to handler methods. |