diff options
author | andreas_kupries <akupries@shaw.ca> | 2009-11-12 17:25:18 (GMT) |
---|---|---|
committer | andreas_kupries <akupries@shaw.ca> | 2009-11-12 17:25:18 (GMT) |
commit | 0ff9c6a9c918c519b765feaa5c09bf489290d50c (patch) | |
tree | 7bdcd74fc2ad492eabc6dd73fea2dd236a3f831c /tests/io.test | |
parent | e4b809abf57f2062e0ae4be8a17c3a77b079147c (diff) | |
download | tcl-0ff9c6a9c918c519b765feaa5c09bf489290d50c.zip tcl-0ff9c6a9c918c519b765feaa5c09bf489290d50c.tar.gz tcl-0ff9c6a9c918c519b765feaa5c09bf489290d50c.tar.bz2 |
* generic/tclIO.c (CopyData): [Bug 2895565]. Dropped bogosity
* tests/io.test: which used the number of _written_ bytes or
character to update the counters for the read bytes/characters.
New test io-53.11. This is a forward port from the 8.5 branch.
Diffstat (limited to 'tests/io.test')
-rw-r--r-- | tests/io.test | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/tests/io.test b/tests/io.test index 0ab8909..1ad9f6e 100644 --- a/tests/io.test +++ b/tests/io.test @@ -13,7 +13,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: io.test,v 1.93 2008/12/19 17:07:47 dgp Exp $ +# RCS: @(#) $Id: io.test,v 1.94 2009/11/12 17:25:18 andreas_kupries Exp $ if {[catch {package require tcltest 2}]} { puts stderr "Skipping tests in [info script]. tcltest 2 required." @@ -7126,6 +7126,37 @@ test io-53.10 {Bug 1350564, multi-directional fcopy} -setup { removeFile err catch {unset ::forever} } -result {AB BA} +test io-53.11 {Bug 2895565} -setup { + set in [makeFile {} in] + set f [open $in w] + fconfigure $f -encoding utf-8 -translation binary + puts -nonewline $f [string repeat "Ho hum\n" 11] + close $f + set inChan [open $in r] + fconfigure $inChan -translation binary + set out [makeFile {} out] + set outChan [open $out w] + fconfigure $outChan -encoding cp1252 -translation crlf + proc CopyDone {bytes args} { + variable done + if {[llength $args]} { + set done "Error: '[lindex $args 0]' after $bytes bytes copied" + } else { + set done "$bytes bytes copied" + } + } +} -body { + variable done + after 2000 [list set [namespace which -variable done] timeout] + fcopy $inChan $outChan -size 40 -command [namespace which CopyDone] + vwait [namespace which -variable done] + set done +} -cleanup { + close $outChan + close $inChan + removeFile out + removeFile in +} -result {40 bytes copied} test io-54.1 {Recursive channel events} {socket fileevent} { # This test checks to see if file events are delivered during recursive |