Artifact
c910946c3505e3a50bd516899595d51b30d7eaa1 :
File
modules/md5/md5.test
— part of check-in
[ea701e91fe]
at
2006-10-09 21:41:39
on branch trunk
— Switched all remaining test suites over to the new cleanup command to
hook them into the environment handling.
(user:
andreas_kupries
size: 2673)
0000: 23 20 2d 2a 2d 20 74 63 6c 20 2d 2a 2d 0a 23 20 # -*- tcl -*-.#
0010: 6d 64 35 2e 74 65 73 74 3a 20 20 74 65 73 74 73 md5.test: tests
0020: 20 66 6f 72 20 74 68 65 20 6d 64 35 20 63 6f 6d for the md5 com
0030: 6d 61 6e 64 73 0a 23 0a 23 20 54 68 69 73 20 66 mands.#.# This f
0040: 69 6c 65 20 63 6f 6e 74 61 69 6e 73 20 61 20 63 ile contains a c
0050: 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 74 65 73 ollection of tes
0060: 74 73 20 66 6f 72 20 6f 6e 65 20 6f 72 20 6d 6f ts for one or mo
0070: 72 65 20 6f 66 20 74 68 65 20 54 63 6c 0a 23 20 re of the Tcl.#
0080: 62 75 69 6c 74 2d 69 6e 20 63 6f 6d 6d 61 6e 64 built-in command
0090: 73 2e 20 20 53 6f 75 72 63 69 6e 67 20 74 68 69 s. Sourcing thi
00a0: 73 20 66 69 6c 65 20 69 6e 74 6f 20 54 63 6c 20 s file into Tcl
00b0: 72 75 6e 73 20 74 68 65 20 74 65 73 74 73 20 61 runs the tests a
00c0: 6e 64 0a 23 20 67 65 6e 65 72 61 74 65 73 20 6f nd.# generates o
00d0: 75 74 70 75 74 20 66 6f 72 20 65 72 72 6f 72 73 utput for errors
00e0: 2e 20 20 4e 6f 20 6f 75 74 70 75 74 20 6d 65 61 . No output mea
00f0: 6e 73 20 6e 6f 20 65 72 72 6f 72 73 20 77 65 72 ns no errors wer
0100: 65 20 66 6f 75 6e 64 2e 0a 23 0a 23 20 43 6f 70 e found..#.# Cop
0110: 79 72 69 67 68 74 20 28 63 29 20 32 30 30 31 20 yright (c) 2001
0120: 62 79 20 41 63 74 69 76 65 53 74 61 74 65 20 54 by ActiveState T
0130: 6f 6f 6c 20 43 6f 72 70 2e 0a 23 20 41 6c 6c 20 ool Corp..# All
0140: 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2e rights reserved.
0150: 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 .#.# RCS: @(#) $
0160: 49 64 3a 20 6d 64 35 2e 74 65 73 74 2c 76 20 31 Id: md5.test,v 1
0170: 2e 31 31 20 32 30 30 36 2f 31 30 2f 30 39 20 32 .11 2006/10/09 2
0180: 31 3a 34 31 3a 34 31 20 61 6e 64 72 65 61 73 5f 1:41:41 andreas_
0190: 6b 75 70 72 69 65 73 20 45 78 70 20 24 0a 0a 23 kupries Exp $..#
01a0: 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ---------------
01b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 73 6f 75 72 ----------..sour
01f0: 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 5c 0a ce [file join \.
0200: 09 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b .[file dirname [
0210: 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 66 69 file dirname [fi
0220: 6c 65 20 6a 6f 69 6e 20 5b 70 77 64 5d 20 5b 69 le join [pwd] [i
0230: 6e 66 6f 20 73 63 72 69 70 74 5d 5d 5d 5d 20 5c nfo script]]]] \
0240: 0a 09 64 65 76 74 6f 6f 6c 73 20 74 65 73 74 75 ..devtools testu
0250: 74 69 6c 69 74 69 65 73 2e 74 63 6c 5d 0a 0a 74 tilities.tcl]..t
0260: 65 73 74 73 4e 65 65 64 54 63 6c 20 20 20 20 20 estsNeedTcl
0270: 38 2e 32 0a 74 65 73 74 73 4e 65 65 64 54 63 6c 8.2.testsNeedTcl
0280: 74 65 73 74 20 31 2e 30 0a 0a 74 65 73 74 69 6e test 1.0..testin
0290: 67 20 7b 0a 20 20 20 20 75 73 65 4c 6f 63 61 6c g {. useLocal
02a0: 20 6d 64 35 2e 74 63 6c 20 6d 64 35 0a 7d 0a 0a md5.tcl md5.}..
02b0: 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d # --------------
02c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
02d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
02e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
02f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 69 66 20 -----------..if
0300: 7b 5b 63 61 74 63 68 20 7b 70 61 63 6b 61 67 65 {[catch {package
0310: 20 70 72 65 73 65 6e 74 20 54 72 66 7d 5d 20 7c present Trf}] |
0320: 7c 20 5b 63 61 74 63 68 20 7b 3a 3a 6d 64 35 20 | [catch {::md5
0330: 2d 2d 20 74 65 73 74 7d 5d 7d 20 7b 0a 20 20 20 -- test}]} {.
0340: 20 70 75 74 73 20 22 3e 20 70 75 72 65 20 54 63 puts "> pure Tc
0350: 6c 22 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 l".} else {.
0360: 70 75 74 73 20 22 3e 20 54 72 66 20 62 61 73 65 puts "> Trf base
0370: 64 22 0a 7d 0a 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d d".}..# --------
0380: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0390: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
03a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
03b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
03c0: 2d 0a 0a 74 65 73 74 20 6d 64 35 2d 31 2e 30 20 -..test md5-1.0
03d0: 7b 6d 64 35 7d 20 7b 0a 20 20 20 20 63 61 74 63 {md5} {. catc
03e0: 68 20 7b 3a 3a 6d 64 35 3a 3a 6d 64 35 7d 20 72 h {::md5::md5} r
03f0: 65 73 75 6c 74 0a 20 20 20 20 73 65 74 20 72 65 esult. set re
0400: 73 75 6c 74 0a 7d 20 5b 74 63 6c 74 65 73 74 3a sult.} [tcltest:
0410: 3a 77 72 6f 6e 67 4e 75 6d 41 72 67 73 20 22 3a :wrongNumArgs ":
0420: 3a 6d 64 35 3a 3a 6d 64 35 22 20 22 6d 73 67 22 :md5::md5" "msg"
0430: 20 30 5d 0a 0a 74 65 73 74 20 6d 64 35 2d 31 2e 0]..test md5-1.
0440: 31 20 7b 6d 64 35 7d 20 7b 0a 20 20 20 20 63 61 1 {md5} {. ca
0450: 74 63 68 20 7b 3a 3a 6d 64 35 3a 3a 68 6d 61 63 tch {::md5::hmac
0460: 7d 20 72 65 73 75 6c 74 0a 20 20 20 20 73 65 74 } result. set
0470: 20 72 65 73 75 6c 74 0a 7d 20 5b 74 63 6c 74 65 result.} [tclte
0480: 73 74 3a 3a 77 72 6f 6e 67 4e 75 6d 41 72 67 73 st::wrongNumArgs
0490: 20 22 3a 3a 6d 64 35 3a 3a 68 6d 61 63 22 20 22 "::md5::hmac" "
04a0: 6b 65 79 20 74 65 78 74 22 20 30 5d 0a 0a 74 65 key text" 0]..te
04b0: 73 74 20 6d 64 35 2d 31 2e 32 20 7b 6d 64 35 7d st md5-1.2 {md5}
04c0: 20 7b 0a 20 20 20 20 63 61 74 63 68 20 7b 3a 3a {. catch {::
04d0: 6d 64 35 3a 3a 68 6d 61 63 20 6b 65 79 7d 20 72 md5::hmac key} r
04e0: 65 73 75 6c 74 0a 20 20 20 20 73 65 74 20 72 65 esult. set re
04f0: 73 75 6c 74 0a 7d 20 5b 74 63 6c 74 65 73 74 3a sult.} [tcltest:
0500: 3a 77 72 6f 6e 67 4e 75 6d 41 72 67 73 20 22 3a :wrongNumArgs ":
0510: 3a 6d 64 35 3a 3a 68 6d 61 63 22 20 22 6b 65 79 :md5::hmac" "key
0520: 20 74 65 78 74 22 20 31 5d 0a 0a 0a 66 6f 72 65 text" 1]...fore
0530: 61 63 68 20 7b 6e 20 6d 73 67 20 65 78 70 65 63 ach {n msg expec
0540: 74 65 64 7d 20 7b 0a 20 20 20 20 31 20 20 20 20 ted} {. 1
0550: 22 22 0a 20 20 20 20 22 64 34 31 64 38 63 64 39 "". "d41d8cd9
0560: 38 66 30 30 62 32 30 34 65 39 38 30 30 39 39 38 8f00b204e9800998
0570: 65 63 66 38 34 32 37 65 22 0a 20 20 20 20 32 20 ecf8427e". 2
0580: 20 20 20 22 61 22 0a 20 20 20 20 22 30 63 63 31 "a". "0cc1
0590: 37 35 62 39 63 30 66 31 62 36 61 38 33 31 63 33 75b9c0f1b6a831c3
05a0: 39 39 65 32 36 39 37 37 32 36 36 31 22 0a 20 20 99e269772661".
05b0: 20 20 33 20 20 20 20 22 61 62 63 22 0a 20 20 20 3 "abc".
05c0: 20 22 39 30 30 31 35 30 39 38 33 63 64 32 34 66 "900150983cd24f
05d0: 62 30 64 36 39 36 33 66 37 64 32 38 65 31 37 66 b0d6963f7d28e17f
05e0: 37 32 22 0a 20 20 20 20 34 20 20 20 20 22 6d 65 72". 4 "me
05f0: 73 73 61 67 65 20 64 69 67 65 73 74 22 0a 20 20 ssage digest".
0600: 20 20 22 66 39 36 62 36 39 37 64 37 63 62 37 39 "f96b697d7cb79
0610: 33 38 64 35 32 35 61 32 66 33 31 61 61 66 31 36 38d525a2f31aaf16
0620: 31 64 30 22 0a 20 20 20 20 35 20 20 20 20 22 61 1d0". 5 "a
0630: 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 bcdefghijklmnopq
0640: 72 73 74 75 76 77 78 79 7a 22 0a 20 20 20 20 22 rstuvwxyz". "
0650: 63 33 66 63 64 33 64 37 36 31 39 32 65 34 30 30 c3fcd3d76192e400
0660: 37 64 66 62 34 39 36 63 63 61 36 37 65 31 33 62 7dfb496cca67e13b
0670: 22 0a 20 20 20 20 36 20 20 20 20 22 41 42 43 44 ". 6 "ABCD
0680: 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 EFGHIJKLMNOPQRST
0690: 55 56 57 58 59 5a 61 62 63 64 65 66 67 68 69 6a UVWXYZabcdefghij
06a0: 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a klmnopqrstuvwxyz
06b0: 30 31 32 33 34 35 36 37 38 39 22 0a 20 20 20 20 0123456789".
06c0: 22 64 31 37 34 61 62 39 38 64 32 37 37 64 39 66 "d174ab98d277d9f
06d0: 35 61 35 36 31 31 63 32 63 39 66 34 31 39 64 39 5a5611c2c9f419d9
06e0: 66 22 0a 20 20 20 20 37 20 20 20 20 22 31 32 33 f". 7 "123
06f0: 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 4567890123456789
0700: 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 0123456789012345
0710: 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 6789012345678901
0720: 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 2345678901234567
0730: 38 39 30 31 32 33 34 35 36 37 38 39 30 22 0a 20 8901234567890".
0740: 20 20 20 22 35 37 65 64 66 34 61 32 32 62 65 33 "57edf4a22be3
0750: 63 39 35 35 61 63 34 39 64 61 32 65 32 31 30 37 c955ac49da2e2107
0760: 62 36 37 61 22 0a 7d 20 7b 0a 20 20 20 20 74 65 b67a".} {. te
0770: 73 74 20 6d 64 35 2d 32 2e 24 6e 20 7b 6d 64 35 st md5-2.$n {md5
0780: 7d 20 7b 0a 09 3a 3a 6d 64 35 3a 3a 6d 64 35 20 } {..::md5::md5
0790: 24 6d 73 67 0a 20 20 20 20 7d 20 24 65 78 70 65 $msg. } $expe
07a0: 63 74 65 64 20 3b 20 23 20 7b 7d 0a 7d 0a 0a 66 cted ; # {}.}..f
07b0: 6f 72 65 61 63 68 20 7b 6e 20 6b 65 79 20 74 65 oreach {n key te
07c0: 78 74 20 65 78 70 65 63 74 65 64 7d 20 7b 0a 20 xt expected} {.
07d0: 20 20 20 31 20 22 22 20 20 20 20 20 22 22 20 20 1 "" ""
07e0: 20 20 20 20 22 37 34 65 36 66 37 32 39 38 61 39 "74e6f7298a9
07f0: 63 32 64 31 36 38 39 33 35 66 35 38 63 30 30 31 c2d168935f58c001
0800: 62 61 64 38 38 22 0a 20 20 20 20 32 20 22 66 6f bad88". 2 "fo
0810: 6f 22 20 20 22 68 65 6c 6c 6f 22 20 22 65 66 32 o" "hello" "ef2
0820: 61 63 38 39 30 31 35 33 30 64 62 33 30 61 61 35 ac8901530db30aa5
0830: 36 39 32 39 61 64 66 65 35 65 31 33 62 22 0a 20 6929adfe5e13b".
0840: 20 20 20 33 20 22 62 61 72 22 20 20 22 77 6f 72 3 "bar" "wor
0850: 6c 64 22 20 22 64 66 63 30 35 35 39 34 62 30 31 ld" "dfc05594b01
0860: 39 65 64 35 31 35 33 35 39 32 32 61 31 32 39 35 9ed51535922a1295
0870: 34 34 36 65 38 22 0a 20 20 20 20 34 20 22 6b 65 446e8". 4 "ke
0880: 79 22 20 20 22 74 65 78 74 22 20 20 22 64 30 63 y" "text" "d0c
0890: 61 36 31 37 37 63 36 31 63 39 37 35 66 64 32 66 a6177c61c975fd2f
08a0: 38 63 30 37 64 38 63 36 35 32 38 63 36 22 0a 20 8c07d8c6528c6".
08b0: 20 20 20 35 20 22 6d 64 35 22 20 20 22 68 6d 61 5 "md5" "hma
08c0: 63 22 20 20 22 64 31 38 39 66 33 36 32 64 61 66 c" "d189f362daf
08d0: 38 36 61 35 63 38 65 31 34 62 61 34 61 62 61 39 86a5c8e14ba4aba9
08e0: 31 62 32 36 30 22 0a 20 20 20 20 36 20 22 68 6d 1b260". 6 "hm
08f0: 61 63 22 20 22 6d 64 35 22 20 20 20 22 34 38 30 ac" "md5" "480
0900: 33 34 33 63 66 30 66 32 64 35 39 33 31 65 63 34 343cf0f2d5931ec4
0910: 39 32 33 65 38 31 30 35 39 66 62 38 34 22 0a 20 923e81059fb84".
0920: 20 20 20 37 20 22 6d 64 35 22 20 20 22 6d 64 35 7 "md5" "md5
0930: 22 20 20 20 22 39 32 63 35 66 62 39 38 36 65 33 " "92c5fb986e3
0940: 34 35 66 32 31 66 31 38 31 30 34 37 61 62 39 33 45f21f181047ab93
0950: 39 65 63 37 37 22 0a 20 20 20 20 38 20 22 68 6d 9ec77". 8 "hm
0960: 61 63 22 20 22 68 6d 61 63 22 20 20 22 30 38 61 ac" "hmac" "08a
0970: 62 62 65 35 38 61 35 35 32 31 39 37 38 39 65 33 bbe58a55219789e3
0980: 65 65 64 65 31 35 33 38 30 38 61 35 36 22 0a 20 eede153808a56".
0990: 20 20 20 39 20 22 30 31 32 33 34 35 36 37 61 62 9 "01234567ab
09a0: 63 64 65 66 67 68 30 31 32 33 34 35 36 37 61 62 cdefgh01234567ab
09b0: 63 64 65 66 67 68 30 31 32 33 34 35 36 37 61 62 cdefgh01234567ab
09c0: 63 64 65 66 67 68 30 31 32 33 34 35 36 37 61 62 cdefgh01234567ab
09d0: 63 64 65 66 67 68 3d 3d 22 20 22 68 65 6c 6c 6f cdefgh==" "hello
09e0: 20 77 6f 72 6c 64 22 0a 20 20 20 20 22 63 66 30 world". "cf0
09f0: 32 33 37 34 36 36 66 39 62 33 63 37 37 33 38 35 237466f9b3c77385
0a00: 38 61 31 38 39 32 62 34 37 34 63 39 65 22 0a 7d 8a1892b474c9e".}
0a10: 20 7b 0a 20 20 20 20 74 65 73 74 20 6d 64 35 2d {. test md5-
0a20: 33 2e 24 6e 20 7b 68 6d 61 63 7d 20 7b 0a 09 3a 3.$n {hmac} {..:
0a30: 3a 6d 64 35 3a 3a 68 6d 61 63 20 24 6b 65 79 20 :md5::hmac $key
0a40: 24 74 65 78 74 0a 20 20 20 20 7d 20 24 65 78 70 $text. } $exp
0a50: 65 63 74 65 64 20 3b 20 23 20 7b 7d 0a 7d 0a 0a ected ; # {}.}..
0a60: 74 65 73 74 73 75 69 74 65 43 6c 65 61 6e 75 70 testsuiteCleanup
0a70: 0a .