summaryrefslogtreecommitdiffstats
path: root/tests/io.test
diff options
context:
space:
mode:
authorandreas_kupries <akupries@shaw.ca>2009-11-12 17:25:18 (GMT)
committerandreas_kupries <akupries@shaw.ca>2009-11-12 17:25:18 (GMT)
commit0ff9c6a9c918c519b765feaa5c09bf489290d50c (patch)
tree7bdcd74fc2ad492eabc6dd73fea2dd236a3f831c /tests/io.test
parente4b809abf57f2062e0ae4be8a17c3a77b079147c (diff)
downloadtcl-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.test33
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