summaryrefslogtreecommitdiffstats
path: root/tests/io.test
diff options
context:
space:
mode:
authoroehhar <harald.oehlmann@elmicron.de>2023-11-16 17:08:54 (GMT)
committeroehhar <harald.oehlmann@elmicron.de>2023-11-16 17:08:54 (GMT)
commit8298e41993c18357aabbb0299cf66b1ec7308ccb (patch)
tree84f231c130ea3761bb746875e52dabb45ec0c22d /tests/io.test
parent088cf344d723d1bad30c39bef0d5ddbf27a1d377 (diff)
parent772bec7f0f57347ee8c3f7a14779ce60df6f4fc1 (diff)
downloadtcl-8298e41993c18357aabbb0299cf66b1ec7308ccb.zip
tcl-8298e41993c18357aabbb0299cf66b1ec7308ccb.tar.gz
tcl-8298e41993c18357aabbb0299cf66b1ec7308ccb.tar.bz2
Add currently failing test io-52.20.1 to check right file position after fcopy encoding read error
Diffstat (limited to 'tests/io.test')
-rw-r--r--tests/io.test31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/io.test b/tests/io.test
index 2dd231f..a9e98ed 100644
--- a/tests/io.test
+++ b/tests/io.test
@@ -7718,6 +7718,37 @@ test io-52.20 {TclCopyChannel & encodings} -setup {
close $in
close $out
} -returnCodes 1 -match glob -result {error reading "file*": invalid or incomplete multibyte or wide character}
+
+test io-52.20.1 {TclCopyChannel & read encoding error & tell position} -setup {
+ set out [open $path(utf8-fcopy.txt) w]
+ fconfigure $out -encoding utf-8 -translation lf
+ puts $out "AÁ"
+ close $out
+} -constraints {fcopy} -body {
+ # binary to encoding => the input has to be
+ # in utf-8 to make sense to the encoder
+
+ set in [open $path(utf8-fcopy.txt) r]
+ set out [open $path(kyrillic.txt) w]
+
+ # Using "-encoding ascii" means reading the "Á" gives an error
+ fconfigure $in -encoding ascii -profile strict
+ fconfigure $out -encoding koi8-r -translation lf
+
+ set l {}
+ # should fail, so 1 is added
+ lappend l [catch {fcopy $in $out}]
+ # should be at position 1, after the first correct byte, so 1 is read.
+ lappend l [tell $in]
+ # not sure, if flush required, but anyway
+ flush $out
+ # should be at position 1, after the first correct byte, so 1 is written.
+ lappend l [tell $out]
+} -cleanup {
+ close $in
+ close $out
+} -returnCodes 0 -result {1 1 1}
+
test io-52.21 {TclCopyChannel & encodings} -setup {
set out [open $path(utf8-fcopy.txt) w]
fconfigure $out -encoding utf-8 -translation lf