diff options
author | andreas_kupries <akupries@shaw.ca> | 2009-11-12 17:41:30 (GMT) |
---|---|---|
committer | andreas_kupries <akupries@shaw.ca> | 2009-11-12 17:41:30 (GMT) |
commit | 4e43d260f93216348337518eaead94855b2dadbf (patch) | |
tree | 762430a7fc603752093d3196463ead7acb41a3c3 /tests/io.test | |
parent | 9583d3790107a8b094e98be8b587b484eed858c3 (diff) | |
download | tcl-4e43d260f93216348337518eaead94855b2dadbf.zip tcl-4e43d260f93216348337518eaead94855b2dadbf.tar.gz tcl-4e43d260f93216348337518eaead94855b2dadbf.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 backward 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 1a0f72e..9c94864 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.40.2.23 2008/06/20 16:49:11 dgp Exp $ +# RCS: @(#) $Id: io.test,v 1.40.2.24 2009/11/12 17:41:31 andreas_kupries Exp $ if {[catch {package require tcltest 2}]} { puts stderr "Skipping tests in [info script]. tcltest 2 required." @@ -7158,6 +7158,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 |