summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2020-04-27 15:22:50 (GMT)
committerdgp <dgp@users.sourceforge.net>2020-04-27 15:22:50 (GMT)
commitd8bf58441d9b2524203ed2892042d35102c61ff0 (patch)
tree8fae53d855a18756f42430eb6057a5a0f1bc9e36 /tests
parentb1d47f7bfb156ff7692c3f50c29633642d30c0bc (diff)
downloadtcl-d8bf58441d9b2524203ed2892042d35102c61ff0.zip
tcl-d8bf58441d9b2524203ed2892042d35102c61ff0.tar.gz
tcl-d8bf58441d9b2524203ed2892042d35102c61ff0.tar.bz2
test reconciliation
Diffstat (limited to 'tests')
-rw-r--r--tests/utf.test38
1 files changed, 33 insertions, 5 deletions
diff --git a/tests/utf.test b/tests/utf.test
index 7c4831b..b7d4b14 100644
--- a/tests/utf.test
+++ b/tests/utf.test
@@ -22,6 +22,7 @@ testConstraint ucs4 [expr {[testConstraint fullutf]
&& [string length [format %c 0x10000]] == 1}]
testConstraint Uesc [eq \U0041 A]
+testConstraint pre388 [eq \x741 A]
testConstraint pairsTo4bytes [expr {[llength [info commands teststringbytes]]
&& [string length [teststringbytes \uD83D\uDCA9]] == 4}]
@@ -981,15 +982,22 @@ test utf-10.4 {Tcl_UtfBackslash: stops at first non-hex} testbytestring {
test utf-10.5 {Tcl_UtfBackslash: stops after 4 hex chars} testbytestring {
expr {"\u4E216" eq "[testbytestring \xE4\xB8\xA1]6"}
} 1
-proc bsCheck {char num} {
+test utf-10.6 {Tcl_UtfBackslash: stops after 5 hex chars} {Uesc testbytestring} {
+ expr {"\U1E2165" eq "[testbytestring \xF0\x9E\x88\x96]5"}
+} 1
+test utf-10.7 {Tcl_UtfBackslash: stops after 6 hex chars} {Uesc testbytestring} {
+ expr {"\U10E2165" eq "[testbytestring \xF4\x8E\x88\x96]5"}
+} 1
+
+proc bsCheck {char num {constraints {}}} {
global errNum
- test utf-10.$errNum {backslash substitution} {
+ test utf-10.$errNum {backslash substitution} $constraints {
scan $char %c value
set value
} $num
incr errNum
}
-set errNum 6
+set errNum 8
bsCheck \b 8
bsCheck \e 101
bsCheck \f 12
@@ -1018,7 +1026,8 @@ bsCheck \x 120
bsCheck \xa 10
bsCheck \xA 10
bsCheck \x41 65
-bsCheck \x541 65
+bsCheck \x541 65 pre388 ;# == \x41
+bsCheck \x541 84 !pre388 ;# == \x54 1
bsCheck \u 117
bsCheck \uk 117
bsCheck \u41 65
@@ -1027,6 +1036,25 @@ bsCheck \uA 10
bsCheck \340 224
bsCheck \ua1 161
bsCheck \u4e21 20001
+bsCheck \741 225 pre388 ;# == \341
+bsCheck \741 60 !pre388 ;# == \74 1
+bsCheck \U 85
+bsCheck \Uk 85
+bsCheck \U41 65 Uesc
+bsCheck \Ua 10 Uesc
+bsCheck \UA 10 Uesc
+bsCheck \Ua1 161 Uesc
+bsCheck \U4E21 20001 Uesc
+bsCheck \U004E21 20001 Uesc
+bsCheck \U00004E21 20001 Uesc
+bsCheck \U0000004E21 78 Uesc
+bsCheck \U00110000 69632 Uesc
+bsCheck \U01100000 69632 Uesc
+bsCheck \U11000000 69632 Uesc
+bsCheck \U0010FFFF 1114111 Uesc
+bsCheck \U010FFFF0 1114111 Uesc
+bsCheck \U10FFFF00 1114111 Uesc
+bsCheck \UFFFFFFFF 1048575 Uesc
test utf-11.1 {Tcl_UtfToUpper} {
string toupper {}
@@ -1068,7 +1096,7 @@ test utf-12.4 {Tcl_UtfToLower} {
test utf-12.5 {Tcl_UtfToLower Georgian (new in Unicode 11)} {
string tolower \u10D0\u1C90
} \u10D0\u10D0
-test utf-12.6 {Tcl_UtfToUpper low/high surrogate)} {
+test utf-12.6 {Tcl_UtfToLower low/high surrogate)} {
string tolower \uDC24\uD824
} \uDC24\uD824
test utf-12.7 {Tcl_UtfToLower beyond U+FFFF} {Uesc fullutf} {