blob: 052c5576dc57ad05f9d0bde2e411df7af995803c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
# yencode.test - Copyright (C) 2002 Pat Thoyts <patthoyts@users.sourceforge.net>
#
# Tests for the Tcllib yencode package
#
# -------------------------------------------------------------------------
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
# -------------------------------------------------------------------------
# RCS: @(#) $Id: yencode.test,v 1.11 2008/12/12 04:57:46 andreas_kupries Exp $
# -------------------------------------------------------------------------
source [file join [file dirname [file dirname [
file join [pwd] [info script]]]] devtools testutilities.tcl]
testsNeedTcl 8.2
testsNeedTcltest 1.0
testing {
# FUTURE: Switch tcl/critcl implementations
useTcllibC
useLocalKeep yencode.tcl yencode
}
# -------------------------------------------------------------------------
if {[llength [info commands ::yencode::CEncode]]} {
puts "> critcl based"
} else {
puts "> pure tcl"
}
proc ::yencode::loaddata {filename {translation auto}} {
set f [open $filename r]
fconfigure $f -translation $translation
set data [read $f]
close $f
return $data
}
# -------------------------------------------------------------------------
set datafile [localPath yencode.test.data]
test yencode-1.0 {yencode yEnc test file} {
set enc [::yencode::yencode -file $datafile]
set dec [::yencode::ydecode $enc]
set chk [::yencode::loaddata $datafile]
string equal $dec $chk
} {0}
# -------------------------------------------------------------------------
foreach {n in out} {
0 A {k}
1 ABC {klm}
2 \0\1\2 {*+,}
3 "\r\n\t" {743}
4 "\xd6\xe0\xe3" {=@=J=M}
} {
test yencode-2.$n.a {check the pure tcl encode} {
list [catch {::yencode::Encode $in} r] $r
} [list 0 $out]
test yencode-2.$n.b {check the pure tcl decode} {
list [catch {::yencode::Decode $out} r] $r
} [list 0 $in]
}
if {[llength [info commands ::yencode::CEncode]]} {
foreach {n in out} {
0 A {k}
1 ABC {klm}
2 \0\1\2 {*+,}
3 "\r\n\t" {743}
4 "\xd6\xe0\xe3" {=@=J=M}
} {
test yencode-3.$n.a {check the critcl encode} {
list [catch {::yencode::Encode $in} r] $r
} [list 0 $out]
test yencode-3.$n.b {check the critcl decode} {
list [catch {::yencode::Decode $out} r] $r
} [list 0 $in]
}
}
# -------------------------------------------------------------------------
catch {
unset datafile
rename ::yencode::loaddata {}
}
testsuiteCleanup
# Local Variables:
# mode: tcl
# indent-tabs-mode: nil
# End:
|