summaryrefslogtreecommitdiffstats
path: root/tests/io.test
diff options
context:
space:
mode:
authorferrieux <ferrieux@users.sourceforge.net>2014-03-24 21:42:56 (GMT)
committerferrieux <ferrieux@users.sourceforge.net>2014-03-24 21:42:56 (GMT)
commit870ed20799fc0d228ffcf6e7add98824b0182950 (patch)
tree69f9e91010753899cfd172f816dd2b2fbf02a840 /tests/io.test
parent01c626fca98818554b8bfbe326bee0753ae9931c (diff)
downloadtcl-870ed20799fc0d228ffcf6e7add98824b0182950.zip
tcl-870ed20799fc0d228ffcf6e7add98824b0182950.tar.gz
tcl-870ed20799fc0d228ffcf6e7add98824b0182950.tar.bz2
Add test io-53.12 to verify proper unbuffered sync-fcopy [Bug #3096275]
Diffstat (limited to 'tests/io.test')
-rw-r--r--tests/io.test19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/io.test b/tests/io.test
index 19cd9a5..d3f249c 100644
--- a/tests/io.test
+++ b/tests/io.test
@@ -7450,6 +7450,25 @@ test io-53.11 {Bug 2895565} -setup {
removeFile out
removeFile in
} -result {40 bytes copied}
+test io-53.12 {CopyData: foreground short reads, aka bug 3096275} {stdio unix openpipe fcopy} {
+ file delete $path(pipe)
+ set f1 [open $path(pipe) w]
+ puts -nonewline $f1 {
+ fconfigure stdin -translation binary -blocking 0
+ fconfigure stdout -buffering none -translation binary
+ fcopy stdin stdout
+ }
+ close $f1
+ set f1 [open "|[list [interpreter] $path(pipe)]" r+]
+ fconfigure $f1 -translation binary -buffering none
+ puts -nonewline $f1 A
+ after 2000 {set ::done timeout}
+ fileevent $f1 readable {set ::done ok}
+ vwait ::done
+ set ch [read $f1 1]
+ close $f1
+ list $::done $ch
+} {ok A}
test io-54.1 {Recursive channel events} {socket fileevent} {
# This test checks to see if file events are delivered during recursive