summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorapnadkarni <apnmbx-wits@yahoo.com>2023-07-02 04:55:47 (GMT)
committerapnadkarni <apnmbx-wits@yahoo.com>2023-07-02 04:55:47 (GMT)
commit5dab0fa5de0367d41b4ad28b9a66c3cd1bf818ba (patch)
treef4371faf9fe8f11aac01c2da1309b63c532d906d /tests
parenta55934d7120943f45eee0c6283d093133905fc6d (diff)
downloadtcl-5dab0fa5de0367d41b4ad28b9a66c3cd1bf818ba.zip
tcl-5dab0fa5de0367d41b4ad28b9a66c3cd1bf818ba.tar.gz
tcl-5dab0fa5de0367d41b4ad28b9a66c3cd1bf818ba.tar.bz2
Backport fix [66ffafd309]. DBCS infinite loop on invalid encoding
Diffstat (limited to 'tests')
-rw-r--r--tests/chanio.test2
-rw-r--r--tests/encoding.test21
-rw-r--r--tests/io.test2
3 files changed, 23 insertions, 2 deletions
diff --git a/tests/chanio.test b/tests/chanio.test
index b80c926..c5d3aca 100644
--- a/tests/chanio.test
+++ b/tests/chanio.test
@@ -1104,7 +1104,7 @@ test chan-io-7.3 {FilterInputBytes: split up character at EOF} -setup {
lappend x [chan gets $f line] $line
} -cleanup {
chan close $f
-} -result [list 15 "123456789012301" 18 0 1 -1 ""]
+} -result [list 16 "123456789012301\x82" 18 0 1 -1 ""]
test chan-io-7.4 {FilterInputBytes: recover from split up character} -setup {
variable x ""
} -constraints {stdio fileevent} -body {
diff --git a/tests/encoding.test b/tests/encoding.test
index 4abc10e..8167357 100644
--- a/tests/encoding.test
+++ b/tests/encoding.test
@@ -1119,6 +1119,27 @@ test encoding-bug-6a3e2cb0f0-3 {Bug [6a3e2cb0f0] - invalid bytes in escape encod
encoding convertfrom -profile replace iso2022-jp x\x1b\x7aaby
} -result x\uFFFDy
+test encoding-bug-66ffafd309-1-tcl8 {Bug [66ffafd309] - truncated DBCS} -body {
+ encoding convertfrom -profile tcl8 gb12345 x
+} -result x
+test encoding-bug-66ffafd309-1-strict {Bug [66ffafd309] - truncated DBCS} -body {
+ encoding convertfrom -profile strict gb12345 x
+} -result {unexpected byte sequence starting at index 0: '\x78'} -returnCodes error
+test encoding-bug-66ffafd309-1-replace {Bug [66ffafd309] - truncated DBCS} -body {
+ encoding convertfrom -profile replace gb12345 x
+} -result \uFFFD
+test encoding-bug-66ffafd309-2-tcl8 {Bug [66ffafd309] - invalid DBCS} -body {
+ # Not truncated but invalid
+ encoding convertfrom -profile tcl8 jis0208 \x78\x79
+} -result \x78\x79
+test encoding-bug-66ffafd309-2-strict {Bug [66ffafd309] - invalid DBCS} -body {
+ # Not truncated but invalid
+ encoding convertfrom -profile strict jis0208 \x78\x79
+} -result {unexpected byte sequence starting at index 1: '\x79'} -returnCodes error
+test encoding-bug-66ffafd309-2-replace {Bug [66ffafd309] - invalid DBCS} -body {
+ # Not truncated but invalid
+ encoding convertfrom -profile replace jis0208 \x78\x79
+} -result \uFFFD\uFFFD
# cleanup
namespace delete ::tcl::test::encoding
::tcltest::cleanupTests
diff --git a/tests/io.test b/tests/io.test
index c0191ee..ca636ce 100644
--- a/tests/io.test
+++ b/tests/io.test
@@ -1136,7 +1136,7 @@ test io-7.3 {FilterInputBytes: split up character at EOF} {testchannel} {
lappend x [gets $f line] $line
close $f
set x
-} [list 15 "123456789012301" 18 0 1 -1 ""]
+} [list 16 "123456789012301\x82" 18 0 1 -1 ""]
test io-7.4 {FilterInputBytes: recover from split up character} {stdio fileevent} {
set f [open "|[list [interpreter] $path(cat)]" w+]
fconfigure $f -encoding binary -buffering none