encoding.test
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:18k
源码类别:

通讯编程

开发平台:

Visual C++

  1. # This file contains a collection of tests for tclEncoding.c
  2. # Sourcing this file into Tcl runs the tests and generates output for
  3. # errors.  No output means no errors were found.
  4. #
  5. # Copyright (c) 1997 Sun Microsystems, Inc.
  6. # Copyright (c) 1998-1999 by Scriptics Corporation.
  7. #
  8. # See the file "license.terms" for information on usage and redistribution
  9. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  10. #
  11. # RCS: @(#) $Id: encoding.test,v 1.16.2.3 2006/10/05 21:24:56 hobbs Exp $
  12. package require tcltest 2
  13. namespace import -force ::tcltest::*
  14. proc toutf {args} {
  15.     global x
  16.     lappend x "toutf $args"
  17. }
  18. proc fromutf {args} {
  19.     global x
  20.     lappend x "fromutf $args"
  21. }
  22. # Some tests require the testencoding command
  23. testConstraint testencoding [llength [info commands testencoding]]
  24. testConstraint exec [llength [info commands exec]]
  25. # TclInitEncodingSubsystem is tested by the rest of this file
  26. # TclFinalizeEncodingSubsystem is not currently tested
  27. test encoding-1.1 {Tcl_GetEncoding: system encoding} {testencoding} {
  28.     testencoding create foo toutf fromutf
  29.     set old [encoding system]
  30.     encoding system foo
  31.     set x {}
  32.     encoding convertto abcd
  33.     encoding system $old
  34.     testencoding delete foo
  35.     set x
  36. } {{fromutf }}
  37. test encoding-1.2 {Tcl_GetEncoding: existing encoding} {testencoding} {
  38.     testencoding create foo toutf fromutf
  39.     set x {}
  40.     encoding convertto foo abcd
  41.     testencoding delete foo
  42.     set x
  43. } {{fromutf }}
  44. test encoding-1.3 {Tcl_GetEncoding: load encoding} {
  45.     list [encoding convertto jis0208 u4e4e] 
  46. [encoding convertfrom jis0208 8C]
  47. } "8C u4e4e"
  48. test encoding-2.1 {Tcl_FreeEncoding: refcount == 0} {
  49.     encoding convertto jis0208 u4e4e
  50. } {8C}
  51. test encoding-2.2 {Tcl_FreeEncoding: refcount != 0} {testencoding} {
  52.     set system [encoding system]
  53.     set path [testencoding path]
  54.     encoding system shiftjis ;# incr ref count
  55.     testencoding path [list [pwd]]
  56.     set x [encoding convertto shiftjis u4e4e] ;# old one found   
  57.     encoding system identity
  58.     lappend x [catch {encoding convertto shiftjis u4e4e} msg] $msg
  59.     encoding system identity
  60.     testencoding path $path
  61.     encoding system $system
  62.     set x
  63. } "u008cu00c1 1 {unknown encoding "shiftjis"}"
  64. test encoding-3.1 {Tcl_GetEncodingName, NULL} {
  65.     set old [encoding system]
  66.     encoding system shiftjis
  67.     set x [encoding system]
  68.     encoding system $old
  69.     set x
  70. } {shiftjis}
  71. test encoding-3.2 {Tcl_GetEncodingName, non-null} {
  72.     set old [fconfigure stdout -encoding]
  73.     fconfigure stdout -encoding jis0208
  74.     set x [fconfigure stdout -encoding]
  75.     fconfigure stdout -encoding $old
  76.     set x
  77. } {jis0208}
  78. test encoding-4.1 {Tcl_GetEncodingNames} {testencoding} {
  79.     cd [makeDirectory tmp]
  80.     makeDirectory [file join tmp encoding]
  81.     makeFile {} [file join tmp encoding junk.enc]
  82.     makeFile {} [file join tmp encoding junk2.enc]
  83.     set path [testencoding path]
  84.     testencoding path {}
  85.     catch {unset encodings}
  86.     catch {unset x}
  87.     foreach encoding [encoding names] {
  88. set encodings($encoding) 1
  89.     }
  90.     testencoding path [list [pwd]]
  91.     foreach encoding [encoding names] {
  92. if {![info exists encodings($encoding)]} {
  93.     lappend x $encoding
  94. }
  95.     }
  96.     testencoding path $path
  97.     cd [workingDirectory]
  98.     removeFile [file join tmp encoding junk2.enc]
  99.     removeFile [file join tmp encoding junk.enc]
  100.     removeDirectory [file join tmp encoding]
  101.     removeDirectory tmp
  102.     lsort $x
  103. } {junk junk2}
  104. test encoding-5.1 {Tcl_SetSystemEncoding} {
  105.     set old [encoding system]
  106.     encoding system jis0208
  107.     set x [encoding convertto u4e4e]
  108.     encoding system identity
  109.     encoding system $old
  110.     set x
  111. } {8C}
  112. test encoding-5.2 {Tcl_SetSystemEncoding: test ref count} {
  113.     set old [encoding system]
  114.     encoding system $old
  115.     string compare $old [encoding system]
  116. } {0}
  117. test encoding-6.1 {Tcl_CreateEncoding: new} {testencoding} {
  118.     testencoding create foo {toutf 1} {fromutf 2}
  119.     set x {}
  120.     encoding convertfrom foo abcd
  121.     encoding convertto foo abcd
  122.     testencoding delete foo
  123.     set x
  124. } {{toutf 1} {fromutf 2}}
  125. test encoding-6.2 {Tcl_CreateEncoding: replace encoding} {testencoding} {
  126.     testencoding create foo {toutf a} {fromutf b}
  127.     set x {}
  128.     encoding convertfrom foo abcd
  129.     encoding convertto foo abcd
  130.     testencoding delete foo
  131.     set x
  132. } {{toutf a} {fromutf b}}
  133. test encoding-7.1 {Tcl_ExternalToUtfDString: small buffer} {
  134.     encoding convertfrom jis0208 8c8c8c8c
  135. } "u543eu543eu543eu543e"
  136. test encoding-7.2 {Tcl_UtfToExternalDString: big buffer} {
  137.     set a 8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C
  138.     append a $a
  139.     append a $a
  140.     append a $a
  141.     append a $a
  142.     set x [encoding convertfrom jis0208 $a]
  143.     list [string length $x] [string index $x 0]
  144. } "512 u4e4e"
  145. test encoding-8.1 {Tcl_ExternalToUtf} {
  146.     set f [open [file join [temporaryDirectory] dummy] w]
  147.     fconfigure $f -translation binary -encoding iso8859-1
  148.     puts -nonewline $f "abx8cxc1g"
  149.     close $f
  150.     set f [open [file join [temporaryDirectory] dummy] r]
  151.     fconfigure $f -translation binary -encoding shiftjis    
  152.     set x [read $f]
  153.     close $f
  154.     file delete [file join [temporaryDirectory] dummy]
  155.     set x
  156. } "abu4e4eg"
  157. test encoding-9.1 {Tcl_UtfToExternalDString: small buffer} {
  158.     encoding convertto jis0208 "u543eu543eu543eu543e"
  159. } {8c8c8c8c}
  160. test encoding-9.2 {Tcl_UtfToExternalDString: big buffer} {
  161.     set a u4e4eu4e4eu4e4eu4e4eu4e4eu4e4eu4e4eu4e4e
  162.     append a $a
  163.     append a $a
  164.     append a $a
  165.     append a $a
  166.     append a $a
  167.     append a $a
  168.     set x [encoding convertto jis0208 $a]
  169.     list [string length $x] [string range $x 0 1]
  170. } "1024 8C"
  171. test encoding-10.1 {Tcl_UtfToExternal} {
  172.     set f [open [file join [temporaryDirectory] dummy] w]
  173.     fconfigure $f -translation binary -encoding shiftjis
  174.     puts -nonewline $f "abu4e4eg"
  175.     close $f
  176.     set f [open [file join [temporaryDirectory] dummy] r]
  177.     fconfigure $f -translation binary -encoding iso8859-1
  178.     set x [read $f]
  179.     close $f
  180.     file delete [file join [temporaryDirectory] dummy]
  181.     set x
  182. } "abx8cxc1g"
  183. proc viewable {str} {
  184.     set res ""
  185.     foreach c [split $str {}] {
  186. if {[string is print $c] && [string is ascii $c]} {
  187.     append res $c
  188. } else {
  189.     append res "\u[format %4.4x [scan $c %c]]"
  190. }
  191.     }
  192.     return "$str ($res)"
  193. }
  194. test encoding-11.1 {LoadEncodingFile: unknown encoding} {testencoding} {
  195.     set system [encoding system]
  196.     set path [testencoding path]
  197.     encoding system iso8859-1
  198.     testencoding path {}
  199.     set x [list [catch {encoding convertto jis0208 u4e4e} msg] $msg]
  200.     testencoding path $path
  201.     encoding system $system
  202.     lappend x [encoding convertto jis0208 u4e4e]
  203. } {1 {unknown encoding "jis0208"} 8C}
  204. test encoding-11.2 {LoadEncodingFile: single-byte} {
  205.     encoding convertfrom jis0201 xa1
  206. } "uff61"
  207. test encoding-11.3 {LoadEncodingFile: double-byte} {
  208.     encoding convertfrom jis0208 8C
  209. } "u4e4e"
  210. test encoding-11.4 {LoadEncodingFile: multi-byte} {
  211.     encoding convertfrom shiftjis x8cxc1
  212. } "u4e4e"
  213. test encoding-11.5 {LoadEncodingFile: escape file} {
  214.     viewable [encoding convertto iso2022 u4e4e]
  215. } [viewable "x1b$B8Cx1b(B"]
  216. test encoding-11.5.1 {LoadEncodingFile: escape file} {
  217.     viewable [encoding convertto iso2022-jp u4e4e]
  218. } [viewable "x1b$B8Cx1b(B"]
  219. test encoding-11.6 {LoadEncodingFile: invalid file} {testencoding} {
  220.     set system [encoding system]
  221.     set path [testencoding path]
  222.     encoding system identity
  223.     cd [temporaryDirectory]
  224.     testencoding path tmp
  225.     makeDirectory tmp
  226.     makeDirectory [file join tmp encoding]
  227.     set f [open [file join tmp encoding splat.enc] w]
  228.     fconfigure $f -translation binary 
  229.     puts $f "abcdefghijklmnop"
  230.     close $f
  231.     set x [list [catch {encoding convertto splat u4e4e} msg] $msg]
  232.     file delete [file join [temporaryDirectory] tmp encoding splat.enc]
  233.     removeDirectory [file join tmp encoding]
  234.     removeDirectory tmp
  235.     cd [workingDirectory]
  236.     testencoding path $path
  237.     encoding system $system
  238.     set x
  239. } {1 {invalid encoding file "splat"}}
  240. # OpenEncodingFile is fully tested by the rest of the tests in this file.
  241. test encoding-12.1 {LoadTableEncoding: normal encoding} {
  242.     set x [encoding convertto iso8859-3 u120]
  243.     append x [encoding convertto iso8859-3 ud5]
  244.     append x [encoding convertfrom iso8859-3 xd5]
  245. } "xd5?u120"
  246. test encoding-12.2 {LoadTableEncoding: single-byte encoding} {
  247.     set x [encoding convertto iso8859-3 abu0120g] 
  248.     append x [encoding convertfrom iso8859-3 abxd5g]
  249. } "abxd5gabu120g"
  250. test encoding-12.3 {LoadTableEncoding: multi-byte encoding} {
  251.     set x [encoding convertto shiftjis abu4e4eg] 
  252.     append x [encoding convertfrom shiftjis abx8cxc1g]
  253. } "abx8cxc1gabu4e4eg"
  254. test encoding-12.4 {LoadTableEncoding: double-byte encoding} {
  255.     set x [encoding convertto jis0208 u4e4eu3b1]
  256.     append x [encoding convertfrom jis0208 8C&A]
  257. } "8C&Au4e4eu3b1"
  258. test encoding-12.5 {LoadTableEncoding: symbol encoding} {
  259.     set x [encoding convertto symbol u3b3]
  260.     append x [encoding convertto symbol u67]
  261.     append x [encoding convertfrom symbol x67]
  262. } "x67x67u3b3"
  263. test encoding-13.1 {LoadEscapeTable} {
  264.     viewable [set x [encoding convertto iso2022 abu4e4eu68d9g]]
  265. } [viewable "abx1b$B8Cx1b$(DD%x1b(Bg"]
  266. test encoding-14.1 {BinaryProc} {
  267.     encoding convertto identity x12x34x56xffx69
  268. } "x12x34x56xc3xbfx69"
  269. test encoding-15.1 {UtfToUtfProc} {
  270.     encoding convertto utf-8 xa3
  271. } "xc2xa3"
  272. test encoding-15.2 {UtfToUtfProc null character output} {
  273.     set x u0000
  274.     set y [encoding convertto utf-8 u0000]
  275.     set y [encoding convertfrom identity $y]
  276.     binary scan $y H* z
  277.     list [string bytelength $x] [string bytelength $y] $z
  278. } {2 1 00}
  279. test encoding-15.3 {UtfToUtfProc null character input} {
  280.     set x [encoding convertfrom identity x00]
  281.     set y [encoding convertfrom utf-8 $x]
  282.     binary scan [encoding convertto identity $y] H* z
  283.     list [string bytelength $x] [string bytelength $y] $z
  284. } {1 2 c080}
  285. test encoding-16.1 {UnicodeToUtfProc} {
  286.     set val [encoding convertfrom unicode NN]
  287.     list $val [format %x [scan $val %c]]
  288. } "u4e4e 4e4e"
  289. test encoding-17.1 {UtfToUnicodeProc} {
  290. } {}
  291. test encoding-18.1 {TableToUtfProc} {
  292. } {}
  293. test encoding-19.1 {TableFromUtfProc} {
  294. } {}
  295. test encoding-20.1 {TableFreefProc} {
  296. } {}
  297. test encoding-21.1 {EscapeToUtfProc} {
  298. } {}
  299. test encoding-22.1 {EscapeFromUtfProc} {
  300. } {}
  301. set ::iso2022encData "u001b$B;d$I$b$G$O!"%A%C%W$49XF~;~$K$4EPO?$$$?$@$$$?$4=;=j$r%-%c%C%7%e%"%&%H$N:]$Nu001b(B
  302. u001b$B>.@Z<jAwIU@h$H$7$F;HMQ$7$F$*$j$^$9!#62$lF~$j$^$9$,!"@5$7$$=;=j$r$4EPO?$7$J$*u001b(B
  303. u001b$B$*4j$$$$$?$7$^$9!#$^$?!"BgJQ62=L$G$9$,!"=;=jJQ99$N$"$H!"F|K\8l%5!<%S%9It!Ju001b(B
  304. casino_japanese@___.com u001b$B!K$^$G$4=;=jJQ99:Q$NO"Mm$r$$$?$@$1$J$$$Gu001b(B
  305. u001b$B$7$g$&$+!)u001b(B"
  306. set ::iso2022uniData [encoding convertfrom iso2022-jp $::iso2022encData]
  307. set ::iso2022uniData2 "u79c1u3069u3082u3067u306fu3001u30c1u30c3u30d7u3054u8cfcu5165u6642u306bu3054u767bu9332u3044u305fu3060u3044u305fu3054u4f4fu6240u3092u30adu30e3u30c3u30b7u30e5u30a2u30a6u30c8u306eu969bu306e
  308. u5c0fu5207u624bu9001u4ed8u5148u3068u3057u3066u4f7fu7528u3057u3066u304au308au307eu3059u3002u6050u308cu5165u308au307eu3059u304cu3001u6b63u3057u3044u4f4fu6240u3092u3054u767bu9332u3057u306au304a
  309. u304au9858u3044u3044u305fu3057u307eu3059u3002u307eu305fu3001u5927u5909u6050u7e2eu3067u3059u304cu3001u4f4fu6240u5909u66f4u306eu3042u3068u3001u65e5u672cu8a9eu30b5u30fcu30d3u30b9u90e8uff08
  310. u0063u0061u0073u0069u006eu006fu005fu006au0061u0070u0061u006eu0065u0073u0065u0040u005fu005fu005fu002eu0063u006fu006du0020uff09u307eu3067u3054u4f4fu6240u5909u66f4u6e08u306eu9023u7d61u3092u3044u305fu3060u3051u306au3044u3067
  311. u3057u3087u3046u304buff1f"
  312. cd [temporaryDirectory]
  313. set fid [open iso2022.txt w]
  314. fconfigure $fid -encoding binary
  315. puts -nonewline $fid $::iso2022encData
  316. close $fid
  317. test encoding-23.1 {iso2022-jp escape encoding test} {
  318.     string equal $::iso2022uniData $::iso2022uniData2
  319. } 1
  320. test encoding-23.2 {iso2022-jp escape encoding test} {
  321.     # This checks that 'gets' isn't resetting the encoding inappropriately.
  322.     # [Bug #523988]
  323.     set fid [open iso2022.txt r]
  324.     fconfigure $fid -encoding iso2022-jp
  325.     set out ""
  326.     set count 0
  327.     while {[set num [gets $fid line]] >= 0} {
  328. if {$count} {
  329.     incr count 1 ; # account for newline
  330.     append out n
  331. }
  332. append out $line
  333. incr count $num
  334.     }
  335.     close $fid
  336.     if {[string compare $::iso2022uniData $out]} {
  337. return -code error "iso2022-jp read in doesn't match original"
  338.     }
  339.     list $count $out
  340. } [list [string length $::iso2022uniData] $::iso2022uniData]
  341. test encoding-23.3 {iso2022-jp escape encoding test} {
  342.     # read $fis <size> reads size in chars, not raw bytes.
  343.     set fid [open iso2022.txt r]
  344.     fconfigure $fid -encoding iso2022-jp
  345.     set data [read $fid 50]
  346.     close $fid
  347.     set data
  348. } [string range $::iso2022uniData 0 49] ; # 0 .. 49 inclusive == 50
  349. cd [workingDirectory]
  350. test encoding-24.1 {EscapeFreeProc on open channels} -constraints {
  351. exec
  352. } -setup {
  353.     # Bug #524674 input
  354.     set file [makeFile {
  355. set f [open [file join [file dirname [info script]] iso2022.txt]]
  356. fconfigure $f -encoding iso2022-jp
  357. gets $f
  358.     } iso2022.tcl]
  359. } -body {
  360.     exec [interpreter] $file
  361. } -cleanup {
  362.     removeFile iso2022.tcl
  363. } -result {}
  364. test encoding-24.2 {EscapeFreeProc on open channels} -constraints {
  365. exec
  366. } -setup {
  367.     # Bug #524674 output
  368.     set file [makeFile {
  369. fconfigure stdout -encoding iso2022-jp
  370. puts abu4e4eu68d9g
  371. exit
  372.     } iso2022.tcl]
  373. } -body {
  374.     viewable [exec [interpreter] $file]
  375. } -cleanup {
  376.     removeFile iso2022.tcl
  377. } -result "abx1b$B8Cx1b$(DD%x1b(Bg (ab\u001b$B8C\u001b$(DD%\u001b(Bg)"
  378. test encoding-24.3 {EscapeFreeProc on open channels} {stdio} {
  379.     # Bug #219314 - if we don't free escape encodings correctly on
  380.     # channel closure, we go boom
  381.     set file [makeFile {
  382. encoding system iso2022-jp
  383. set a "u4e4eu4e5eu4e5f"; # 3 Japanese Kanji letters
  384. puts $a
  385.     } iso2022.tcl]
  386.     set f [open "|[list [interpreter] $file]"]
  387.     fconfigure $f -encoding iso2022-jp
  388.     set count [gets $f line]
  389.     close $f
  390.     removeFile iso2022.tcl
  391.     list $count [viewable $line]
  392. } [list 3 "u4e4eu4e5eu4e5f (\u4e4e\u4e5e\u4e5f)"]
  393. file delete [file join [temporaryDirectory] iso2022.txt]
  394. #
  395. # Begin jajp encoding round-trip conformity tests
  396. #
  397. proc foreach-jisx0208 {varName command} {
  398.     upvar 1 $varName code
  399.     foreach range {
  400. {2121 217E}
  401. {2221 222E}
  402. {223A 2241}
  403. {224A 2250}
  404. {225C 226A}
  405. {2272 2279}
  406. {227E 227E}
  407. {2330 2339}
  408. {2421 2473}
  409. {2521 2576}
  410. {2821 2821}
  411. {282C 282C}
  412. {2837 2837}
  413. {30 21 4E 7E}
  414. {4F21 4F53}
  415. {50 21 73 7E}
  416. {7421 7426}
  417.     } {
  418. if {[llength $range] == 2} {
  419.     # for adhoc range. simple {first last}. inclusive.
  420.     set first [scan [lindex $range 0] %x]
  421.     set last [scan [lindex $range 1] %x]
  422.     for {set i $first} {$i <= $last} {incr i} {
  423. set code $i
  424. uplevel 1 $command
  425.     }
  426. } elseif {[llength $range] == 4} {
  427.     # for uniform range.
  428.     set h0 [scan [lindex $range 0] %x]
  429.     set l0 [scan [lindex $range 1] %x]
  430.     set hend [scan [lindex $range 2] %x]
  431.     set lend [scan [lindex $range 3] %x]
  432.     for {set hi $h0} {$hi <= $hend} {incr hi} {
  433. for {set lo $l0} {$lo <= $lend} {incr lo} {
  434.     set code [expr {$hi << 8 | ($lo & 0xff)}]
  435.     uplevel 1 $command
  436. }
  437.     }
  438. } else {
  439.     error "really?"
  440. }
  441.     }
  442. }
  443. proc gen-jisx0208-euc-jp {code} {
  444.     binary format cc 
  445. [expr {($code >> 8) | 0x80}] [expr {($code & 0xff) | 0x80}]
  446. }
  447. proc gen-jisx0208-iso2022-jp {code} {
  448.     binary format a3cca3 
  449. "x1b$B" [expr {$code >> 8}] [expr {$code & 0xff}] "x1b(B"
  450. }
  451. proc gen-jisx0208-cp932 {code} {
  452.     set c1 [expr {($code >> 8) | 0x80}]
  453.     set c2 [expr {($code & 0xff)| 0x80}]
  454.     if {$c1 % 2} {
  455. set c1 [expr {($c1 >> 1) + ($c1 < 0xdf ? 0x31 : 0x71)}]
  456. incr c2 [expr {- (0x60 + ($c2 < 0xe0))}]
  457.     } else {
  458. set c1 [expr {($c1 >> 1) + ($c1 < 0xdf ? 0x30 : 0x70)}]
  459. incr c2 -2
  460.     }
  461.     binary format cc $c1 $c2
  462. }
  463. proc channel-diff {fa fb} {
  464.     set diff {}
  465.     while {[gets $fa la] >= 0 && [gets $fb lb] >= 0} {
  466. if {[string compare $la $lb] == 0} continue
  467. # lappend diff $la $lb
  468. # For more readable (easy to analyze) output.
  469. set code [lindex $la 0]
  470. binary scan [lindex $la 1] H* expected
  471. binary scan [lindex $lb 1] H* got
  472. lappend diff [list $code $expected $got]
  473.     }
  474.     set diff
  475. }
  476. # Create char tables.
  477. cd [temporaryDirectory]
  478. foreach enc {cp932 euc-jp iso2022-jp} {
  479.     set f [open $enc.chars w]
  480.     fconfigure $f -encoding binary
  481.     foreach-jisx0208 code {
  482. puts $f [format "%04X %s" $code [gen-jisx0208-$enc $code]]
  483.     }
  484.     close $f
  485. }
  486. # shiftjis == cp932 for jisx0208.
  487. file copy -force cp932.chars shiftjis.chars
  488. set NUM 0
  489. foreach from {cp932 shiftjis euc-jp iso2022-jp} {
  490.     foreach to {cp932 shiftjis euc-jp iso2022-jp} {
  491. test encoding-25.[incr NUM] "jisx0208 $from => $to" {
  492.     cd [temporaryDirectory]
  493.     set f [open $from.chars]
  494.     fconfigure $f -encoding $from
  495.     set out [open $from.$to.out w]
  496.     fconfigure $out -encoding $to
  497.     puts -nonewline $out [read $f]
  498.     close $out
  499.     close $f
  500.     
  501.     # then compare $to.chars <=> $from.to.out as binary.
  502.     set fa [open $to.chars]
  503.     fconfigure $fa -encoding binary
  504.     set fb [open $from.$to.out]
  505.     fconfigure $fb -encoding binary
  506.     set diff [channel-diff $fa $fb]
  507.     close $fa
  508.     close $fb
  509.     
  510.     # Difference should be empty.
  511.     set diff
  512. } {}
  513.     }
  514. }
  515. eval [list file delete] [glob -directory [temporaryDirectory] *.chars *.out]
  516. # ===> Cut here <===
  517. # EscapeFreeProc, GetTableEncoding, unilen
  518. # are fully tested by the rest of this file
  519. # cleanup
  520. ::tcltest::cleanupTests
  521. return