diff options
author | ferrieux <ferrieux@users.sourceforge.net> | 2014-03-24 21:42:56 (GMT) |
---|---|---|
committer | ferrieux <ferrieux@users.sourceforge.net> | 2014-03-24 21:42:56 (GMT) |
commit | 15df01c93d14aa590853f8de9e5014cb1489fa09 (patch) | |
tree | 69f9e91010753899cfd172f816dd2b2fbf02a840 /tests/io.test | |
parent | 021c7456ff11c97e8e55fa1749358392f11e4938 (diff) | |
download | tcl-15df01c93d14aa590853f8de9e5014cb1489fa09.zip tcl-15df01c93d14aa590853f8de9e5014cb1489fa09.tar.gz tcl-15df01c93d14aa590853f8de9e5014cb1489fa09.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.test | 19 |
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 |