Artifact c9ba7bf4c4e0fba5a3505ac31c5d89ff19b4a7dc:
0000: 6c 61 70 70 65 6e 64 20 61 75 74 6f 5f 70 61 74 lappend auto_pat
0010: 68 20 2e 0a 0a 70 61 63 6b 61 67 65 20 72 65 71 h ...package req
0020: 75 69 72 65 20 74 63 6c 74 65 73 74 0a 70 61 63 uire tcltest.pac
0030: 6b 61 67 65 20 72 65 71 75 69 72 65 20 6d 73 67 kage require msg
0040: 70 61 63 6b 0a 0a 3a 3a 74 63 6c 74 65 73 74 3a pack..::tcltest:
0050: 3a 63 6f 6e 66 69 67 75 72 65 20 7b 2a 7d 24 61 :configure {*}$a
0060: 72 67 76 0a 0a 0a 74 72 79 20 7b 0a 20 20 20 20 rgv...try {.
0070: 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 package require
0080: 79 61 6d 6c 0a 20 20 20 20 73 65 74 20 6d 74 73 yaml. set mts
0090: 50 61 74 68 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 Path [file join
00a0: 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 69 [file dirname [i
00b0: 6e 66 6f 20 73 63 72 69 70 74 5d 5d 20 5c 0a 20 nfo script]] \.
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00d0: 20 20 20 20 20 20 20 20 20 20 76 65 6e 64 6f 72 vendor
00e0: 20 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 \.
00f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 ms
0100: 67 70 61 63 6b 2d 74 65 73 74 2d 73 75 69 74 65 gpack-test-suite
0110: 5d 0a 7d 20 6f 6e 20 6f 6b 20 5f 20 7b 0a 20 20 ].} on ok _ {.
0120: 20 20 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 43 tcltest::testC
0130: 6f 6e 73 74 72 61 69 6e 74 20 79 61 6d 6c 20 74 onstraint yaml t
0140: 72 75 65 0a 7d 0a 0a 0a 70 72 6f 63 20 66 6c 61 rue.}...proc fla
0150: 74 6d 61 70 20 61 72 67 73 20 7b 0a 20 20 20 20 tmap args {.
0160: 63 6f 6e 63 61 74 20 7b 2a 7d 5b 75 70 6c 65 76 concat {*}[uplev
0170: 65 6c 20 31 20 6c 6d 61 70 20 24 61 72 67 73 5d el 1 lmap $args]
0180: 0a 7d 0a 0a 70 72 6f 63 20 74 65 73 74 5f 6d 61 .}..proc test_ma
0190: 70 20 6e 20 7b 0a 20 20 20 20 23 20 47 65 74 20 p n {. # Get
01a0: 6b 65 79 73 20 61 6e 64 20 76 61 6c 75 65 73 0a keys and values.
01b0: 20 20 20 20 73 65 74 20 6c 20 7b 7d 0a 0a 20 20 set l {}..
01c0: 20 20 66 6f 72 20 7b 73 65 74 20 69 20 30 7d 20 for {set i 0}
01d0: 7b 24 69 20 3c 20 24 6e 7d 20 7b 69 6e 63 72 20 {$i < $n} {incr
01e0: 69 7d 20 7b 0a 20 20 20 20 20 20 20 20 73 65 74 i} {. set
01f0: 20 6d 20 30 0a 20 20 20 20 20 20 20 20 66 6f 72 m 0. for
0200: 20 7b 73 65 74 20 6a 20 30 7d 20 7b 24 6a 20 3c {set j 0} {$j <
0210: 20 32 35 36 7d 20 7b 69 6e 63 72 20 6a 7d 20 7b 256} {incr j} {
0220: 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 63 . inc
0230: 72 20 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 r m.
0240: 73 65 74 20 6b 20 5b 65 78 70 72 20 7b 69 6e 74 set k [expr {int
0250: 28 73 69 6e 28 24 69 20 2b 20 24 6a 29 2a 31 30 (sin($i + $j)*10
0260: 30 30 30 30 30 30 29 7d 5d 0a 20 20 20 20 20 20 000000)}].
0270: 20 20 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f if {![info
0280: 20 65 78 69 73 74 73 20 61 28 24 6b 29 5d 7d 20 exists a($k)]}
0290: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 {.
02a0: 20 20 62 72 65 61 6b 0a 20 20 20 20 20 20 20 20 break.
02b0: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a }. }.
02c0: 20 20 20 20 20 20 20 20 73 65 74 20 76 20 5b 65 set v [e
02d0: 78 70 72 20 7b 69 6e 74 28 73 69 6e 28 24 6e 29 xpr {int(sin($n)
02e0: 2a 31 30 30 30 30 30 29 7d 5d 0a 20 20 20 20 20 *100000)}].
02f0: 20 20 20 6c 61 70 70 65 6e 64 20 6c 20 24 6b 20 lappend l $k
0300: 24 76 0a 20 20 20 20 20 20 20 20 73 65 74 20 61 $v. set a
0310: 28 24 6b 29 20 24 76 0a 20 20 20 20 7d 0a 0a 20 ($k) $v. }..
0320: 20 20 20 73 65 74 20 6c 20 5b 6c 73 6f 72 74 20 set l [lsort
0330: 2d 73 74 72 69 64 65 20 32 20 2d 69 6e 64 65 78 -stride 2 -index
0340: 20 30 20 2d 64 69 63 74 69 6f 6e 61 72 79 20 24 0 -dictionary $
0350: 6c 5d 0a 0a 20 20 20 20 23 20 54 65 73 74 20 77 l].. # Test w
0360: 69 74 68 20 6d 61 70 20 61 6e 64 20 6c 6f 6f 70 ith map and loop
0370: 20 6f 76 65 72 20 65 6c 65 6d 65 6e 74 73 0a 20 over elements.
0380: 20 20 20 73 65 74 20 74 74 20 5b 6d 73 67 70 61 set tt [msgpa
0390: 63 6b 20 70 61 63 6b 20 6d 61 70 20 24 6e 5d 0a ck pack map $n].
03a0: 20 20 20 20 66 6f 72 65 61 63 68 20 7b 6b 20 76 foreach {k v
03b0: 7d 20 24 6c 20 7b 0a 20 20 20 20 20 20 20 20 61 } $l {. a
03c0: 70 70 65 6e 64 20 74 74 20 5b 6d 73 67 70 61 63 ppend tt [msgpac
03d0: 6b 20 70 61 63 6b 20 69 6e 74 20 24 6b 5d 0a 20 k pack int $k].
03e0: 20 20 20 20 20 20 20 61 70 70 65 6e 64 20 74 74 append tt
03f0: 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b 20 69 [msgpack pack i
0400: 6e 74 20 24 76 5d 0a 20 20 20 20 7d 0a 20 20 20 nt $v]. }.
0410: 20 61 70 70 65 6e 64 20 74 74 20 5b 6d 73 67 70 append tt [msgp
0420: 61 63 6b 20 70 61 63 6b 20 74 72 75 65 5d 0a 0a ack pack true]..
0430: 20 20 20 20 23 20 54 65 73 74 20 64 69 63 74 0a # Test dict.
0440: 20 20 20 20 73 65 74 20 74 74 32 20 5b 6d 73 67 set tt2 [msg
0450: 70 61 63 6b 20 70 61 63 6b 20 64 69 63 74 20 69 pack pack dict i
0460: 6e 74 20 69 6e 74 20 24 6c 5d 0a 20 20 20 20 61 nt int $l]. a
0470: 70 70 65 6e 64 20 74 74 32 20 5b 6d 73 67 70 61 ppend tt2 [msgpa
0480: 63 6b 20 70 61 63 6b 20 74 72 75 65 5d 0a 0a 20 ck pack true]..
0490: 20 20 20 23 20 54 65 73 74 20 74 63 6c 5f 61 72 # Test tcl_ar
04a0: 72 61 79 0a 20 20 20 20 73 65 74 20 74 74 33 20 ray. set tt3
04b0: 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b 20 74 63 [msgpack pack tc
04c0: 6c 5f 61 72 72 61 79 20 69 6e 74 20 69 6e 74 20 l_array int int
04d0: 61 5d 0a 20 20 20 20 61 70 70 65 6e 64 20 74 74 a]. append tt
04e0: 33 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b 20 3 [msgpack pack
04f0: 74 72 75 65 5d 0a 0a 20 20 20 20 72 65 74 75 72 true].. retur
0500: 6e 20 5b 6c 69 73 74 20 5c 0a 20 20 20 20 20 20 n [list \.
0510: 20 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 [string equal
0520: 24 74 74 20 24 74 74 32 5d 20 5c 0a 20 20 20 20 $tt $tt2] \.
0530: 20 20 20 20 5b 73 74 72 69 6e 67 20 65 71 75 61 [string equa
0540: 6c 20 24 74 74 20 24 74 74 33 5d 20 5c 0a 20 20 l $tt $tt3] \.
0550: 20 20 20 20 20 20 24 74 74 20 5c 0a 20 20 20 20 $tt \.
0560: 5d 0a 7d 0a 0a 0a 74 63 6c 74 65 73 74 3a 3a 74 ].}...tcltest::t
0570: 65 73 74 20 66 69 78 5f 69 6e 74 38 20 66 69 78 est fix_int8 fix
0580: 5f 69 6e 74 38 20 2d 62 6f 64 79 20 7b 0a 20 20 _int8 -body {.
0590: 20 20 73 65 74 20 74 74 20 5b 6d 73 67 70 61 63 set tt [msgpac
05a0: 6b 20 70 61 63 6b 20 66 69 78 5f 69 6e 74 38 20 k pack fix_int8
05b0: 31 30 30 5d 0a 20 20 20 20 61 70 70 65 6e 64 20 100]. append
05c0: 74 74 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b tt [msgpack pack
05d0: 20 66 69 78 5f 69 6e 74 38 20 2d 31 30 30 5d 0a fix_int8 -100].
05e0: 20 20 20 20 61 70 70 65 6e 64 20 74 74 20 5b 6d append tt [m
05f0: 73 67 70 61 63 6b 20 70 61 63 6b 20 66 69 78 5f sgpack pack fix_
0600: 75 69 6e 74 38 20 31 30 30 5d 0a 7d 20 2d 72 65 uint8 100].} -re
0610: 73 75 6c 74 20 5b 62 69 6e 61 72 79 20 64 65 63 sult [binary dec
0620: 6f 64 65 20 68 65 78 20 64 30 36 34 64 30 39 63 ode hex d064d09c
0630: 63 63 36 34 5d 0a 0a 74 63 6c 74 65 73 74 3a 3a cc64]..tcltest::
0640: 74 65 73 74 20 66 69 78 5f 69 6e 74 31 36 20 66 test fix_int16 f
0650: 69 78 5f 69 6e 74 31 36 20 2d 62 6f 64 79 20 7b ix_int16 -body {
0660: 0a 20 20 20 20 73 65 74 20 74 74 20 5b 6d 73 67 . set tt [msg
0670: 70 61 63 6b 20 70 61 63 6b 20 66 69 78 5f 69 6e pack pack fix_in
0680: 74 31 36 20 31 30 30 30 5d 0a 20 20 20 20 61 70 t16 1000]. ap
0690: 70 65 6e 64 20 74 74 20 5b 6d 73 67 70 61 63 6b pend tt [msgpack
06a0: 20 70 61 63 6b 20 66 69 78 5f 69 6e 74 31 36 20 pack fix_int16
06b0: 2d 31 30 30 30 5d 0a 20 20 20 20 61 70 70 65 6e -1000]. appen
06c0: 64 20 74 74 20 5b 6d 73 67 70 61 63 6b 20 70 61 d tt [msgpack pa
06d0: 63 6b 20 66 69 78 5f 75 69 6e 74 31 36 20 31 30 ck fix_uint16 10
06e0: 30 30 5d 0a 7d 20 2d 72 65 73 75 6c 74 20 5b 62 00].} -result [b
06f0: 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 inary decode hex
0700: 20 64 31 30 33 65 38 64 31 66 63 31 38 63 64 30 d103e8d1fc18cd0
0710: 33 65 38 5d 0a 0a 74 63 6c 74 65 73 74 3a 3a 74 3e8]..tcltest::t
0720: 65 73 74 20 66 69 78 5f 69 6e 74 33 32 20 66 69 est fix_int32 fi
0730: 78 5f 69 6e 74 33 32 20 2d 62 6f 64 79 20 7b 0a x_int32 -body {.
0740: 20 20 20 20 73 65 74 20 74 74 20 5b 6d 73 67 70 set tt [msgp
0750: 61 63 6b 20 70 61 63 6b 20 66 69 78 5f 69 6e 74 ack pack fix_int
0760: 33 32 20 31 30 30 30 30 30 5d 0a 20 20 20 20 61 32 100000]. a
0770: 70 70 65 6e 64 20 74 74 20 5b 6d 73 67 70 61 63 ppend tt [msgpac
0780: 6b 20 70 61 63 6b 20 66 69 78 5f 69 6e 74 33 32 k pack fix_int32
0790: 20 2d 31 30 30 30 30 30 5d 0a 20 20 20 20 61 70 -100000]. ap
07a0: 70 65 6e 64 20 74 74 20 5b 6d 73 67 70 61 63 6b pend tt [msgpack
07b0: 20 70 61 63 6b 20 66 69 78 5f 75 69 6e 74 33 32 pack fix_uint32
07c0: 20 31 30 30 30 30 30 5d 0a 7d 20 2d 72 65 73 75 100000].} -resu
07d0: 6c 74 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 lt [binary decod
07e0: 65 20 68 65 78 20 64 32 30 30 30 31 38 36 61 30 e hex d2000186a0
07f0: 64 32 66 66 66 65 37 39 36 30 63 65 30 30 30 31 d2fffe7960ce0001
0800: 38 36 61 30 5d 0a 0a 74 63 6c 74 65 73 74 3a 3a 86a0]..tcltest::
0810: 74 65 73 74 20 66 69 78 5f 69 6e 74 36 34 20 66 test fix_int64 f
0820: 69 78 5f 69 6e 74 36 34 20 2d 62 6f 64 79 20 7b ix_int64 -body {
0830: 0a 20 20 20 20 73 65 74 20 74 74 20 5b 6d 73 67 . set tt [msg
0840: 70 61 63 6b 20 70 61 63 6b 20 66 69 78 5f 69 6e pack pack fix_in
0850: 74 36 34 20 31 30 30 30 30 30 30 30 30 30 30 30 t64 100000000000
0860: 30 30 30 30 5d 0a 20 20 20 20 61 70 70 65 6e 64 0000]. append
0870: 20 74 74 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 tt [msgpack pac
0880: 6b 20 66 69 78 5f 69 6e 74 36 34 20 2d 31 30 30 k fix_int64 -100
0890: 30 30 30 30 30 30 30 30 30 30 30 30 30 5d 0a 20 0000000000000].
08a0: 20 20 20 61 70 70 65 6e 64 20 74 74 20 5b 6d 73 append tt [ms
08b0: 67 70 61 63 6b 20 70 61 63 6b 20 66 69 78 5f 75 gpack pack fix_u
08c0: 69 6e 74 36 34 20 31 30 30 30 30 30 30 30 30 30 int64 1000000000
08d0: 30 30 30 30 30 30 5d 0a 7d 20 2d 72 65 73 75 6c 000000].} -resul
08e0: 74 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 t [binary decode
08f0: 20 68 65 78 20 5c 0a 20 20 20 20 64 33 30 30 30 hex \. d3000
0900: 33 38 64 37 65 61 34 63 36 38 30 30 30 64 33 66 38d7ea4c68000d3f
0910: 66 66 63 37 32 38 31 35 62 33 39 38 30 30 30 63 ffc72815b398000c
0920: 66 30 30 30 33 38 64 37 65 61 34 63 36 38 30 30 f00038d7ea4c6800
0930: 30 20 5c 0a 5d 0a 0a 0a 74 63 6c 74 65 73 74 3a 0 \.]...tcltest:
0940: 3a 74 65 73 74 20 6e 69 6c 2d 74 72 75 65 2d 66 :test nil-true-f
0950: 61 6c 73 65 20 6e 69 6c 2d 74 72 75 65 2d 66 61 alse nil-true-fa
0960: 6c 73 65 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 lse -body {.
0970: 73 65 74 20 74 74 20 5b 6d 73 67 70 61 63 6b 20 set tt [msgpack
0980: 70 61 63 6b 20 6e 69 6c 5d 0a 20 20 20 20 61 70 pack nil]. ap
0990: 70 65 6e 64 20 74 74 20 5b 6d 73 67 70 61 63 6b pend tt [msgpack
09a0: 20 70 61 63 6b 20 74 72 75 65 5d 0a 20 20 20 20 pack true].
09b0: 61 70 70 65 6e 64 20 74 74 20 5b 6d 73 67 70 61 append tt [msgpa
09c0: 63 6b 20 70 61 63 6b 20 66 61 6c 73 65 5d 0a 7d ck pack false].}
09d0: 20 2d 72 65 73 75 6c 74 20 5b 62 69 6e 61 72 79 -result [binary
09e0: 20 64 65 63 6f 64 65 20 68 65 78 20 63 30 63 33 decode hex c0c3
09f0: 63 32 5d 0a 0a 0a 74 63 6c 74 65 73 74 3a 3a 74 c2]...tcltest::t
0a00: 65 73 74 20 66 69 78 6e 75 6d 2d 70 6f 73 2d 6e est fixnum-pos-n
0a10: 65 67 20 66 69 78 6e 75 6d 2d 70 6f 73 2d 6e 65 eg fixnum-pos-ne
0a20: 67 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 73 65 g -body {. se
0a30: 74 20 74 74 20 5b 6d 73 67 70 61 63 6b 20 70 61 t tt [msgpack pa
0a40: 63 6b 20 66 69 78 6e 75 6d 70 6f 73 20 35 5d 0a ck fixnumpos 5].
0a50: 20 20 20 20 61 70 70 65 6e 64 20 74 74 20 5b 6d append tt [m
0a60: 73 67 70 61 63 6b 20 70 61 63 6b 20 66 69 78 6e sgpack pack fixn
0a70: 75 6d 70 6f 73 20 35 30 5d 0a 20 20 20 20 61 70 umpos 50]. ap
0a80: 70 65 6e 64 20 74 74 20 5b 6d 73 67 70 61 63 6b pend tt [msgpack
0a90: 20 70 61 63 6b 20 66 69 78 6e 75 6d 6e 65 67 20 pack fixnumneg
0aa0: 2d 31 30 5d 0a 20 20 20 20 61 70 70 65 6e 64 20 -10]. append
0ab0: 74 74 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b tt [msgpack pack
0ac0: 20 66 69 78 6e 75 6d 6e 65 67 20 2d 33 32 5d 0a fixnumneg -32].
0ad0: 20 20 20 20 6d 73 67 70 61 63 6b 20 75 6e 70 61 msgpack unpa
0ae0: 63 6b 20 24 74 74 0a 7d 20 2d 72 65 73 75 6c 74 ck $tt.} -result
0af0: 20 7b 7b 69 6e 74 65 67 65 72 20 35 7d 20 7b 69 {{integer 5} {i
0b00: 6e 74 65 67 65 72 20 35 30 7d 20 7b 69 6e 74 65 nteger 50} {inte
0b10: 67 65 72 20 2d 31 30 7d 20 7b 69 6e 74 65 67 65 ger -10} {intege
0b20: 72 20 2d 33 32 7d 7d 0a 0a 0a 74 63 6c 74 65 73 r -32}}...tcltes
0b30: 74 3a 3a 74 65 73 74 20 69 6e 74 38 20 69 6e 74 t::test int8 int
0b40: 38 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 66 6c 8 -body {. fl
0b50: 61 74 6d 61 70 20 76 20 7b 31 32 37 20 31 32 38 atmap v {127 128
0b60: 20 31 20 30 20 2d 31 20 2d 33 32 20 2d 33 33 20 1 0 -1 -32 -33
0b70: 2d 31 32 37 20 2d 31 32 38 7d 20 7b 0a 20 20 20 -127 -128} {.
0b80: 20 20 20 20 20 20 20 20 20 6d 73 67 70 61 63 6b msgpack
0b90: 20 70 61 63 6b 20 69 6e 74 38 20 24 76 0a 20 20 pack int8 $v.
0ba0: 20 20 7d 0a 7d 20 2d 72 65 73 75 6c 74 20 22 5c }.} -result "\
0bb0: 78 37 66 20 5c 78 64 30 5c 78 38 30 20 5c 78 30 x7f \xd0\x80 \x0
0bc0: 31 20 5c 78 30 30 20 5c 78 66 66 20 5c 78 65 30 1 \x00 \xff \xe0
0bd0: 20 5c 78 64 30 5c 78 64 66 20 5c 78 64 30 5c 78 \xd0\xdf \xd0\x
0be0: 38 31 20 5c 78 64 30 5c 78 38 30 22 0a 0a 74 63 81 \xd0\x80"..tc
0bf0: 6c 74 65 73 74 3a 3a 74 65 73 74 20 75 69 6e 74 ltest::test uint
0c00: 38 20 75 69 6e 74 38 20 2d 62 6f 64 79 20 7b 0a 8 uint8 -body {.
0c10: 20 20 20 20 66 6c 61 74 6d 61 70 20 76 20 7b 31 flatmap v {1
0c20: 32 37 20 31 32 38 20 31 20 30 20 2d 31 20 2d 33 27 128 1 0 -1 -3
0c30: 32 20 2d 33 33 20 2d 31 32 37 20 2d 31 32 38 7d 2 -33 -127 -128}
0c40: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d {. m
0c50: 73 67 70 61 63 6b 20 70 61 63 6b 20 75 69 6e 74 sgpack pack uint
0c60: 38 20 24 76 0a 20 20 20 20 7d 0a 7d 20 2d 72 65 8 $v. }.} -re
0c70: 73 75 6c 74 20 22 5c 78 37 66 20 5c 78 63 63 5c sult "\x7f \xcc\
0c80: 78 38 30 20 5c 78 30 31 20 5c 78 30 30 20 5c 78 x80 \x01 \x00 \x
0c90: 63 63 5c 78 66 66 20 5c 78 63 63 5c 78 65 30 20 cc\xff \xcc\xe0
0ca0: 5c 78 63 63 5c 78 64 66 20 5c 78 63 63 5c 78 38 \xcc\xdf \xcc\x8
0cb0: 31 5c 0a 20 20 20 20 20 20 20 20 20 20 20 5c 78 1\. \x
0cc0: 63 63 5c 78 38 30 22 0a 0a 74 63 6c 74 65 73 74 cc\x80"..tcltest
0cd0: 3a 3a 74 65 73 74 20 69 6e 74 31 36 20 69 6e 74 ::test int16 int
0ce0: 31 36 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 66 16 -body {. f
0cf0: 6c 61 74 6d 61 70 20 76 20 7b 0a 20 20 20 20 20 latmap v {.
0d00: 20 20 20 31 20 30 20 2d 31 20 33 32 20 33 33 20 1 0 -1 32 33
0d10: 2d 33 32 20 2d 33 33 20 31 32 37 20 31 32 38 20 -32 -33 127 128
0d20: 2d 31 32 37 20 2d 31 32 38 20 32 35 36 20 32 35 -127 -128 256 25
0d30: 37 20 2d 32 35 35 20 2d 32 35 36 20 31 30 30 30 7 -255 -256 1000
0d40: 30 20 2d 31 30 30 30 30 0a 20 20 20 20 7d 20 7b 0 -10000. } {
0d50: 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 69 6e . bin
0d60: 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b ary encode hex [
0d70: 6d 73 67 70 61 63 6b 20 70 61 63 6b 20 69 6e 74 msgpack pack int
0d80: 31 36 20 24 76 5d 0a 20 20 20 20 7d 0a 7d 20 2d 16 $v]. }.} -
0d90: 72 65 73 75 6c 74 20 7b 30 31 20 30 30 20 66 66 result {01 00 ff
0da0: 20 32 30 20 32 31 20 65 30 20 64 30 64 66 20 37 20 21 e0 d0df 7
0db0: 66 20 63 63 38 30 20 64 30 38 31 20 64 30 38 30 f cc80 d081 d080
0dc0: 20 63 64 30 31 30 30 20 63 64 30 31 30 31 20 64 cd0100 cd0101 d
0dd0: 31 66 66 30 31 5c 0a 20 20 20 20 20 20 20 20 20 1ff01\.
0de0: 20 20 64 31 66 66 30 30 20 63 64 32 37 31 30 20 d1ff00 cd2710
0df0: 64 31 64 38 66 30 7d 0a 0a 74 63 6c 74 65 73 74 d1d8f0}..tcltest
0e00: 3a 3a 74 65 73 74 20 75 69 6e 74 31 36 20 75 69 ::test uint16 ui
0e10: 6e 74 31 36 20 2d 62 6f 64 79 20 7b 0a 20 20 20 nt16 -body {.
0e20: 20 66 6c 61 74 6d 61 70 20 76 20 7b 0a 20 20 20 flatmap v {.
0e30: 20 20 20 20 20 31 20 30 20 2d 31 20 33 32 20 33 1 0 -1 32 3
0e40: 33 20 2d 33 32 20 2d 33 33 20 31 32 37 20 31 32 3 -32 -33 127 12
0e50: 38 20 2d 31 32 37 20 2d 31 32 38 20 32 35 36 20 8 -127 -128 256
0e60: 32 35 37 20 2d 32 35 35 20 2d 32 35 36 20 31 30 257 -255 -256 10
0e70: 30 30 30 20 2d 31 30 30 30 30 0a 20 20 20 20 7d 000 -10000. }
0e80: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 {. b
0e90: 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78 inary encode hex
0ea0: 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b 20 75 [msgpack pack u
0eb0: 69 6e 74 31 36 20 24 76 5d 0a 20 20 20 20 7d 0a int16 $v]. }.
0ec0: 7d 20 2d 72 65 73 75 6c 74 20 7b 30 31 20 30 30 } -result {01 00
0ed0: 20 63 64 66 66 66 66 20 32 30 20 32 31 20 63 64 cdffff 20 21 cd
0ee0: 66 66 65 30 20 63 64 66 66 64 66 20 37 66 20 63 ffe0 cdffdf 7f c
0ef0: 63 38 30 20 63 64 66 66 38 31 20 63 64 66 66 38 c80 cdff81 cdff8
0f00: 30 20 63 64 30 31 30 30 5c 0a 20 20 20 20 20 20 0 cd0100\.
0f10: 20 20 20 20 20 63 64 30 31 30 31 20 63 64 66 66 cd0101 cdff
0f20: 30 31 20 63 64 66 66 30 30 20 63 64 32 37 31 30 01 cdff00 cd2710
0f30: 20 63 64 64 38 66 30 7d 0a 0a 74 63 6c 74 65 73 cdd8f0}..tcltes
0f40: 74 3a 3a 74 65 73 74 20 69 6e 74 33 32 20 69 6e t::test int32 in
0f50: 74 33 32 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 t32 -body {.
0f60: 66 6c 61 74 6d 61 70 20 76 20 7b 0a 20 20 20 20 flatmap v {.
0f70: 20 20 20 20 31 20 30 20 2d 31 20 33 32 20 33 33 1 0 -1 32 33
0f80: 20 2d 33 32 20 2d 33 33 20 31 32 37 20 31 32 38 -32 -33 127 128
0f90: 20 2d 31 32 37 20 2d 31 32 38 20 32 35 36 20 32 -127 -128 256 2
0fa0: 35 37 20 2d 32 35 35 20 2d 32 35 36 20 33 32 37 57 -255 -256 327
0fb0: 36 37 20 33 32 37 36 38 0a 20 20 20 20 20 20 20 67 32768.
0fc0: 20 2d 33 32 37 36 37 20 2d 33 32 37 36 38 20 36 -32767 -32768 6
0fd0: 35 35 33 35 20 36 35 35 33 36 20 2d 36 35 35 33 5535 65536 -6553
0fe0: 35 20 2d 36 35 35 33 36 20 31 30 30 30 30 30 30 5 -65536 1000000
0ff0: 30 20 2d 31 30 30 30 30 30 30 30 0a 20 20 20 20 0 -10000000.
1000: 7d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 } {.
1010: 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 binary encode he
1020: 78 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b 20 x [msgpack pack
1030: 69 6e 74 33 32 20 24 76 5d 0a 20 20 20 20 7d 0a int32 $v]. }.
1040: 7d 20 2d 72 65 73 75 6c 74 20 7b 30 31 20 30 30 } -result {01 00
1050: 20 66 66 20 32 30 20 32 31 20 65 30 20 64 30 64 ff 20 21 e0 d0d
1060: 66 20 37 66 20 63 63 38 30 20 64 30 38 31 20 64 f 7f cc80 d081 d
1070: 30 38 30 20 63 64 30 31 30 30 20 63 64 30 31 30 080 cd0100 cd010
1080: 31 20 64 31 66 66 30 31 5c 0a 20 20 20 20 20 20 1 d1ff01\.
1090: 20 20 20 20 20 64 31 66 66 30 30 20 63 64 37 66 d1ff00 cd7f
10a0: 66 66 20 63 64 38 30 30 30 20 64 31 38 30 30 31 ff cd8000 d18001
10b0: 20 64 31 38 30 30 30 20 63 64 66 66 66 66 20 63 d18000 cdffff c
10c0: 65 30 30 30 31 30 30 30 30 20 64 32 66 66 66 66 e00010000 d2ffff
10d0: 30 30 30 31 5c 0a 20 20 20 20 20 20 20 20 20 20 0001\.
10e0: 20 64 32 66 66 66 66 30 30 30 30 20 63 65 30 30 d2ffff0000 ce00
10f0: 39 38 39 36 38 30 20 64 32 66 66 36 37 36 39 38 989680 d2ff67698
1100: 30 7d 0a 0a 74 63 6c 74 65 73 74 3a 3a 74 65 73 0}..tcltest::tes
1110: 74 20 75 69 6e 74 33 32 20 75 69 6e 74 33 32 20 t uint32 uint32
1120: 2d 62 6f 64 79 20 7b 0a 20 20 20 20 66 6c 61 74 -body {. flat
1130: 6d 61 70 20 76 20 7b 0a 20 20 20 20 20 20 20 20 map v {.
1140: 31 20 30 20 2d 31 20 33 32 20 33 33 20 2d 33 32 1 0 -1 32 33 -32
1150: 20 2d 33 33 20 31 32 37 20 31 32 38 20 2d 31 32 -33 127 128 -12
1160: 37 20 2d 31 32 38 20 32 35 36 20 32 35 37 20 2d 7 -128 256 257 -
1170: 32 35 35 20 2d 32 35 36 20 33 32 37 36 37 20 33 255 -256 32767 3
1180: 32 37 36 38 0a 20 20 20 20 20 20 20 20 2d 33 32 2768. -32
1190: 37 36 37 20 2d 33 32 37 36 38 20 36 35 35 33 35 767 -32768 65535
11a0: 20 36 35 35 33 36 20 2d 36 35 35 33 35 20 2d 36 65536 -65535 -6
11b0: 35 35 33 36 20 31 30 30 30 30 30 30 30 20 2d 31 5536 10000000 -1
11c0: 30 30 30 30 30 30 30 0a 20 20 20 20 7d 20 7b 0a 0000000. } {.
11d0: 20 20 20 20 20 20 20 20 20 20 20 20 62 69 6e 61 bina
11e0: 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 6d ry encode hex [m
11f0: 73 67 70 61 63 6b 20 70 61 63 6b 20 75 69 6e 74 sgpack pack uint
1200: 33 32 20 24 76 5d 0a 20 20 20 20 7d 0a 7d 20 2d 32 $v]. }.} -
1210: 72 65 73 75 6c 74 20 7b 30 31 20 30 30 20 63 65 result {01 00 ce
1220: 66 66 66 66 66 66 66 66 20 32 30 20 32 31 20 63 ffffffff 20 21 c
1230: 65 66 66 66 66 66 66 65 30 20 63 65 66 66 66 66 effffffe0 ceffff
1240: 66 66 64 66 20 37 66 20 63 63 38 30 20 63 65 66 ffdf 7f cc80 cef
1250: 66 66 66 66 66 38 31 5c 0a 20 20 20 20 20 20 20 fffff81\.
1260: 20 20 20 20 63 65 66 66 66 66 66 66 38 30 20 63 ceffffff80 c
1270: 64 30 31 30 30 20 63 64 30 31 30 31 20 63 65 66 d0100 cd0101 cef
1280: 66 66 66 66 66 30 31 20 63 65 66 66 66 66 66 66 fffff01 ceffffff
1290: 30 30 20 63 64 37 66 66 66 20 63 64 38 30 30 30 00 cd7fff cd8000
12a0: 5c 0a 20 20 20 20 20 20 20 20 20 20 20 63 65 66 \. cef
12b0: 66 66 66 38 30 30 31 20 63 65 66 66 66 66 38 30 fff8001 ceffff80
12c0: 30 30 20 63 64 66 66 66 66 20 63 65 30 30 30 31 00 cdffff ce0001
12d0: 30 30 30 30 20 63 65 66 66 66 66 30 30 30 31 20 0000 ceffff0001
12e0: 63 65 66 66 66 66 30 30 30 30 5c 0a 20 20 20 20 ceffff0000\.
12f0: 20 20 20 20 20 20 20 63 65 30 30 39 38 39 36 38 ce0098968
1300: 30 20 63 65 66 66 36 37 36 39 38 30 7d 0a 0a 74 0 ceff676980}..t
1310: 63 6c 74 65 73 74 3a 3a 74 65 73 74 20 69 6e 74 cltest::test int
1320: 36 34 20 69 6e 74 36 34 20 2d 62 6f 64 79 20 7b 64 int64 -body {
1330: 0a 20 20 20 20 66 6c 61 74 6d 61 70 20 76 20 7b . flatmap v {
1340: 0a 20 20 20 20 20 20 20 20 31 20 30 20 2d 31 20 . 1 0 -1
1350: 33 32 20 33 33 20 2d 33 32 20 2d 33 33 20 31 32 32 33 -32 -33 12
1360: 37 20 31 32 38 20 2d 31 32 37 20 2d 31 32 38 20 7 128 -127 -128
1370: 32 35 36 20 32 35 37 20 2d 32 35 35 20 2d 32 35 256 257 -255 -25
1380: 36 20 33 32 37 36 37 20 33 32 37 36 38 0a 20 20 6 32767 32768.
1390: 20 20 20 20 20 20 2d 33 32 37 36 37 20 2d 33 32 -32767 -32
13a0: 37 36 38 20 36 35 35 33 35 20 36 35 35 33 36 20 768 65535 65536
13b0: 2d 36 35 35 33 35 20 2d 36 35 35 33 36 20 32 31 -65535 -65536 21
13c0: 34 37 34 38 33 36 34 37 20 32 31 34 37 34 38 33 47483647 2147483
13d0: 36 34 38 0a 20 20 20 20 20 20 20 20 2d 32 31 34 648. -214
13e0: 37 34 38 33 36 34 37 20 2d 32 31 34 37 34 38 33 7483647 -2147483
13f0: 36 34 38 20 34 32 39 34 39 36 37 32 39 35 20 34 648 4294967295 4
1400: 32 39 34 39 36 37 32 39 36 20 2d 34 32 39 34 39 294967296 -42949
1410: 36 37 32 39 35 20 2d 34 32 39 34 39 36 37 32 39 67295 -429496729
1420: 36 0a 20 20 20 20 20 20 20 20 31 30 30 30 30 30 6. 100000
1430: 30 30 30 30 30 30 30 30 30 30 20 2d 31 30 30 30 0000000000 -1000
1440: 30 30 30 30 30 30 30 30 30 30 30 30 0a 20 20 20 000000000000.
1450: 20 7d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 } {.
1460: 20 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 binary encode h
1470: 65 78 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b ex [msgpack pack
1480: 20 69 6e 74 36 34 20 24 76 5d 0a 20 20 20 20 7d int64 $v]. }
1490: 0a 7d 20 2d 72 65 73 75 6c 74 20 7b 30 31 20 30 .} -result {01 0
14a0: 30 20 66 66 20 32 30 20 32 31 20 65 30 20 64 30 0 ff 20 21 e0 d0
14b0: 64 66 20 37 66 20 63 63 38 30 20 64 30 38 31 20 df 7f cc80 d081
14c0: 64 30 38 30 20 63 64 30 31 30 30 20 63 64 30 31 d080 cd0100 cd01
14d0: 30 31 20 64 31 66 66 30 31 5c 0a 20 20 20 20 20 01 d1ff01\.
14e0: 20 20 20 20 20 20 64 31 66 66 30 30 20 63 64 37 d1ff00 cd7
14f0: 66 66 66 20 63 64 38 30 30 30 20 64 31 38 30 30 fff cd8000 d1800
1500: 31 20 64 31 38 30 30 30 20 63 64 66 66 66 66 20 1 d18000 cdffff
1510: 63 65 30 30 30 31 30 30 30 30 20 64 32 66 66 66 ce00010000 d2fff
1520: 66 30 30 30 31 5c 0a 20 20 20 20 20 20 20 20 20 f0001\.
1530: 20 20 64 32 66 66 66 66 30 30 30 30 20 63 65 37 d2ffff0000 ce7
1540: 66 66 66 66 66 66 66 20 63 65 38 30 30 30 30 30 fffffff ce800000
1550: 30 30 20 64 32 38 30 30 30 30 30 30 31 20 64 32 00 d280000001 d2
1560: 38 30 30 30 30 30 30 30 20 63 65 66 66 66 66 66 80000000 cefffff
1570: 66 66 66 5c 0a 20 20 20 20 20 20 20 20 20 20 20 fff\.
1580: 63 66 30 30 30 30 30 30 30 31 30 30 30 30 30 30 cf00000001000000
1590: 30 30 20 64 33 66 66 66 66 66 66 66 66 30 30 30 00 d3ffffffff000
15a0: 30 30 30 30 31 20 64 33 66 66 66 66 66 66 66 66 00001 d3ffffffff
15b0: 30 30 30 30 30 30 30 30 5c 0a 20 20 20 20 20 20 00000000\.
15c0: 20 20 20 20 20 63 66 30 30 30 33 38 64 37 65 61 cf00038d7ea
15d0: 34 63 36 38 30 30 30 20 64 33 66 66 66 63 37 32 4c68000 d3fffc72
15e0: 38 31 35 62 33 39 38 30 30 30 7d 0a 0a 74 63 6c 815b398000}..tcl
15f0: 74 65 73 74 3a 3a 74 65 73 74 20 75 69 6e 74 36 test::test uint6
1600: 34 20 75 69 6e 74 36 34 20 2d 62 6f 64 79 20 7b 4 uint64 -body {
1610: 0a 20 20 20 20 66 6c 61 74 6d 61 70 20 76 20 7b . flatmap v {
1620: 0a 20 20 20 20 20 20 20 20 31 20 30 20 2d 31 20 . 1 0 -1
1630: 33 32 20 33 33 20 2d 33 32 20 2d 33 33 20 31 32 32 33 -32 -33 12
1640: 37 20 31 32 38 20 2d 31 32 37 20 2d 31 32 38 20 7 128 -127 -128
1650: 32 35 36 20 32 35 37 20 2d 32 35 35 20 2d 32 35 256 257 -255 -25
1660: 36 20 33 32 37 36 37 20 33 32 37 36 38 0a 20 20 6 32767 32768.
1670: 20 20 20 20 20 20 2d 33 32 37 36 37 20 2d 33 32 -32767 -32
1680: 37 36 38 20 36 35 35 33 35 20 36 35 35 33 36 20 768 65535 65536
1690: 2d 36 35 35 33 35 20 2d 36 35 35 33 36 20 32 31 -65535 -65536 21
16a0: 34 37 34 38 33 36 34 37 20 32 31 34 37 34 38 33 47483647 2147483
16b0: 36 34 38 0a 20 20 20 20 20 20 20 20 2d 32 31 34 648. -214
16c0: 37 34 38 33 36 34 37 20 2d 32 31 34 37 34 38 33 7483647 -2147483
16d0: 36 34 38 20 34 32 39 34 39 36 37 32 39 35 20 34 648 4294967295 4
16e0: 32 39 34 39 36 37 32 39 36 20 2d 34 32 39 34 39 294967296 -42949
16f0: 36 37 32 39 35 20 2d 34 32 39 34 39 36 37 32 39 67295 -429496729
1700: 36 0a 20 20 20 20 20 20 20 20 31 30 30 30 30 30 6. 100000
1710: 30 30 30 30 30 30 30 30 30 30 20 2d 31 30 30 30 0000000000 -1000
1720: 30 30 30 30 30 30 30 30 30 30 30 30 0a 20 20 20 000000000000.
1730: 20 7d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 } {.
1740: 20 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 binary encode h
1750: 65 78 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b ex [msgpack pack
1760: 20 75 69 6e 74 36 34 20 24 76 5d 0a 20 20 20 20 uint64 $v].
1770: 7d 0a 7d 20 2d 72 65 73 75 6c 74 20 7b 30 31 20 }.} -result {01
1780: 30 30 20 63 66 66 66 66 66 66 66 66 66 66 66 66 00 cffffffffffff
1790: 66 66 66 66 66 20 32 30 20 32 31 20 63 66 66 66 fffff 20 21 cfff
17a0: 66 66 66 66 66 66 66 66 66 66 66 66 65 30 5c 0a ffffffffffffe0\.
17b0: 20 20 20 20 20 20 20 20 20 20 20 63 66 66 66 66 cffff
17c0: 66 66 66 66 66 66 66 66 66 66 66 64 66 20 37 66 fffffffffffdf 7f
17d0: 20 63 63 38 30 20 63 66 66 66 66 66 66 66 66 66 cc80 cfffffffff
17e0: 66 66 66 66 66 66 38 31 20 63 66 66 66 66 66 66 ffffff81 cffffff
17f0: 66 66 66 66 66 66 66 66 66 38 30 5c 0a 20 20 20 fffffffff80\.
1800: 20 20 20 20 20 20 20 20 63 64 30 31 30 30 20 63 cd0100 c
1810: 64 30 31 30 31 20 63 66 66 66 66 66 66 66 66 66 d0101 cfffffffff
1820: 66 66 66 66 66 66 30 31 20 63 66 66 66 66 66 66 ffffff01 cffffff
1830: 66 66 66 66 66 66 66 66 66 30 30 20 63 64 37 66 fffffffff00 cd7f
1840: 66 66 20 63 64 38 30 30 30 5c 0a 20 20 20 20 20 ff cd8000\.
1850: 20 20 20 20 20 20 63 66 66 66 66 66 66 66 66 66 cfffffffff
1860: 66 66 66 66 38 30 30 31 20 63 66 66 66 66 66 66 ffff8001 cffffff
1870: 66 66 66 66 66 66 66 38 30 30 30 20 63 64 66 66 fffffff8000 cdff
1880: 66 66 20 63 65 30 30 30 31 30 30 30 30 5c 0a 20 ff ce00010000\.
1890: 20 20 20 20 20 20 20 20 20 20 63 66 66 66 66 66 cfffff
18a0: 66 66 66 66 66 66 66 66 30 30 30 31 20 63 66 66 ffffffff0001 cff
18b0: 66 66 66 66 66 66 66 66 66 66 66 30 30 30 30 20 fffffffffff0000
18c0: 63 65 37 66 66 66 66 66 66 66 20 63 65 38 30 30 ce7fffffff ce800
18d0: 30 30 30 30 30 5c 0a 20 20 20 20 20 20 20 20 20 00000\.
18e0: 20 20 63 66 66 66 66 66 66 66 66 66 38 30 30 30 cfffffffff8000
18f0: 30 30 30 31 20 63 66 66 66 66 66 66 66 66 66 38 0001 cfffffffff8
1900: 30 30 30 30 30 30 30 20 63 65 66 66 66 66 66 66 0000000 ceffffff
1910: 66 66 20 63 66 30 30 30 30 30 30 30 31 30 30 30 ff cf00000001000
1920: 30 30 30 30 30 5c 0a 20 20 20 20 20 20 20 20 20 00000\.
1930: 20 20 63 66 66 66 66 66 66 66 66 66 30 30 30 30 cfffffffff0000
1940: 30 30 30 31 20 63 66 66 66 66 66 66 66 66 66 30 0001 cfffffffff0
1950: 30 30 30 30 30 30 30 20 63 66 30 30 30 33 38 64 0000000 cf00038d
1960: 37 65 61 34 63 36 38 30 30 30 5c 0a 20 20 20 20 7ea4c68000\.
1970: 20 20 20 20 20 20 20 63 66 66 66 66 63 37 32 38 cffffc728
1980: 31 35 62 33 39 38 30 30 30 7d 0a 0a 0a 74 63 6c 15b398000}...tcl
1990: 74 65 73 74 3a 3a 74 65 73 74 20 66 6c 6f 61 74 test::test float
19a0: 33 32 20 66 6c 6f 61 74 33 32 20 2d 62 6f 64 79 32 float32 -body
19b0: 20 7b 0a 20 20 20 20 66 6c 61 74 6d 61 70 20 76 {. flatmap v
19c0: 20 7b 31 20 32 20 33 2e 31 34 31 35 20 31 32 33 {1 2 3.1415 123
19d0: 34 35 36 36 37 38 20 36 2e 35 34 65 33 7d 20 7b 456678 6.54e3} {
19e0: 0a 20 20 20 20 20 20 20 20 62 69 6e 61 72 79 20 . binary
19f0: 65 6e 63 6f 64 65 20 68 65 78 20 5b 6d 73 67 70 encode hex [msgp
1a00: 61 63 6b 20 70 61 63 6b 20 66 6c 6f 61 74 33 32 ack pack float32
1a10: 20 24 76 5d 0a 20 20 20 20 7d 0a 7d 20 2d 72 65 $v]. }.} -re
1a20: 73 75 6c 74 20 7b 63 61 33 66 38 30 30 30 30 30 sult {ca3f800000
1a30: 20 63 61 34 30 30 30 30 30 30 30 20 63 61 34 30 ca40000000 ca40
1a40: 34 39 30 65 35 36 20 63 61 34 63 65 62 37 39 39 490e56 ca4ceb799
1a50: 35 20 63 61 34 35 63 63 36 30 30 30 7d 0a 0a 74 5 ca45cc6000}..t
1a60: 63 6c 74 65 73 74 3a 3a 74 65 73 74 20 66 6c 6f cltest::test flo
1a70: 61 74 36 34 20 66 6c 6f 61 74 36 34 20 2d 62 6f at64 float64 -bo
1a80: 64 79 20 7b 0a 20 20 20 20 66 6c 61 74 6d 61 70 dy {. flatmap
1a90: 20 76 20 7b 31 20 32 20 33 2e 31 34 31 35 20 31 v {1 2 3.1415 1
1aa0: 32 33 34 35 36 36 37 38 20 36 2e 35 34 65 33 7d 23456678 6.54e3}
1ab0: 20 7b 0a 20 20 20 20 20 20 20 20 62 69 6e 61 72 {. binar
1ac0: 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 6d 73 y encode hex [ms
1ad0: 67 70 61 63 6b 20 70 61 63 6b 20 66 6c 6f 61 74 gpack pack float
1ae0: 36 34 20 24 76 5d 0a 20 20 20 20 7d 0a 7d 20 2d 64 $v]. }.} -
1af0: 72 65 73 75 6c 74 20 7b 63 62 33 66 66 30 30 30 result {cb3ff000
1b00: 30 30 30 30 30 30 30 30 30 30 20 63 62 34 30 30 0000000000 cb400
1b10: 30 30 30 30 30 30 30 30 30 30 30 30 30 20 63 62 0000000000000 cb
1b20: 34 30 30 39 32 31 63 61 63 30 38 33 31 32 36 66 400921cac083126f
1b30: 5c 0a 20 20 20 20 20 20 20 20 20 20 20 63 62 34 \. cb4
1b40: 31 39 64 36 66 33 32 39 38 30 30 30 30 30 30 20 19d6f3298000000
1b50: 63 62 34 30 62 39 38 63 30 30 30 30 30 30 30 30 cb40b98c00000000
1b60: 30 30 7d 0a 0a 0a 23 20 4f 6e 65 20 63 61 6e 27 00}...# One can'
1b70: 74 20 75 73 65 20 2d 6d 61 74 63 68 20 72 65 67 t use -match reg
1b80: 65 78 70 20 68 65 72 65 20 62 65 63 61 75 73 65 exp here because
1b90: 20 69 74 20 69 73 20 6c 69 6d 69 74 65 64 20 74 it is limited t
1ba0: 6f 20 32 35 35 20 72 65 70 65 74 69 74 69 6f 6e o 255 repetition
1bb0: 73 2e 0a 23 20 57 65 20 77 65 65 70 20 66 6f 72 s..# We weep for
1bc0: 20 79 6f 75 72 20 74 65 72 6d 69 6e 61 6c 20 69 your terminal i
1bd0: 66 20 74 68 69 73 20 74 65 73 74 20 66 61 69 6c f this test fail
1be0: 73 2e 0a 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 s..tcltest::test
1bf0: 20 62 69 6e 20 62 69 6e 20 2d 62 6f 64 79 20 7b bin bin -body {
1c00: 0a 20 20 20 20 66 6c 61 74 6d 61 70 20 76 20 5b . flatmap v [
1c10: 6c 69 73 74 20 5c 0a 20 20 20 20 20 20 20 20 7b list \. {
1c20: 7d 20 61 20 62 62 20 63 63 63 20 64 64 64 64 20 } a bb ccc dddd
1c30: 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 65 [string repeat e
1c40: 20 32 35 35 5d 20 5b 73 74 72 69 6e 67 20 72 65 255] [string re
1c50: 70 65 61 74 20 65 20 32 35 36 5d 20 5c 0a 20 20 peat e 256] \.
1c60: 20 20 20 20 20 20 5b 73 74 72 69 6e 67 20 72 65 [string re
1c70: 70 65 61 74 20 66 20 32 35 37 5d 20 5b 73 74 72 peat f 257] [str
1c80: 69 6e 67 20 72 65 70 65 61 74 20 67 20 36 35 35 ing repeat g 655
1c90: 33 35 5d 20 5b 73 74 72 69 6e 67 20 72 65 70 65 35] [string repe
1ca0: 61 74 20 68 20 36 35 35 33 36 5d 20 5c 0a 20 20 at h 65536] \.
1cb0: 20 20 20 20 20 20 5b 73 74 72 69 6e 67 20 72 65 [string re
1cc0: 70 65 61 74 20 69 20 31 30 30 30 30 30 5d 20 5c peat i 100000] \
1cd0: 0a 20 20 20 20 5d 20 7b 0a 20 20 20 20 20 20 20 . ] {.
1ce0: 20 20 20 20 20 62 69 6e 61 72 79 20 65 6e 63 6f binary enco
1cf0: 64 65 20 68 65 78 20 5b 6d 73 67 70 61 63 6b 20 de hex [msgpack
1d00: 70 61 63 6b 20 62 69 6e 20 24 76 5d 0a 20 20 20 pack bin $v].
1d10: 20 7d 0a 7d 20 2d 72 65 73 75 6c 74 20 5b 6c 69 }.} -result [li
1d20: 73 74 20 5c 0a 20 20 20 20 63 34 30 30 20 5c 0a st \. c400 \.
1d30: 20 20 20 20 63 34 30 31 36 31 20 5c 0a 20 20 20 c40161 \.
1d40: 20 63 34 30 32 36 32 36 32 20 5c 0a 20 20 20 20 c4026262 \.
1d50: 63 34 30 33 36 33 36 33 36 33 20 5c 0a 20 20 20 c403636363 \.
1d60: 20 63 34 30 34 36 34 36 34 36 34 36 34 20 5c 0a c40464646464 \.
1d70: 20 20 20 20 63 34 66 66 5b 73 74 72 69 6e 67 20 c4ff[string
1d80: 72 65 70 65 61 74 20 36 35 20 32 35 35 5d 20 5c repeat 65 255] \
1d90: 0a 20 20 20 20 63 35 30 31 30 30 5b 73 74 72 69 . c50100[stri
1da0: 6e 67 20 72 65 70 65 61 74 20 36 35 20 32 35 36 ng repeat 65 256
1db0: 5d 20 5c 0a 20 20 20 20 63 35 30 31 30 31 5b 73 ] \. c50101[s
1dc0: 74 72 69 6e 67 20 72 65 70 65 61 74 20 36 36 20 tring repeat 66
1dd0: 32 35 37 5d 20 5c 0a 20 20 20 20 63 35 66 66 66 257] \. c5fff
1de0: 66 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 f[string repeat
1df0: 36 37 20 36 35 35 33 35 5d 20 5c 0a 20 20 20 20 67 65535] \.
1e00: 63 36 30 30 30 31 30 30 30 30 5b 73 74 72 69 6e c600010000[strin
1e10: 67 20 72 65 70 65 61 74 20 36 38 20 36 35 35 33 g repeat 68 6553
1e20: 36 5d 20 5c 0a 20 20 20 20 63 36 30 30 30 31 38 6] \. c600018
1e30: 36 61 30 5b 73 74 72 69 6e 67 20 72 65 70 65 61 6a0[string repea
1e40: 74 20 36 39 20 31 30 30 30 30 30 5d 20 5c 0a 5d t 69 100000] \.]
1e50: 0a 0a 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 20 ..tcltest::test
1e60: 62 69 6e 2d 75 6e 70 61 63 6b 2d 38 20 62 69 6e bin-unpack-8 bin
1e70: 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 6d 73 67 -body {. msg
1e80: 70 61 63 6b 20 75 6e 70 61 63 6b 20 5b 6d 73 67 pack unpack [msg
1e90: 70 61 63 6b 20 70 61 63 6b 20 62 69 6e 20 68 65 pack pack bin he
1ea0: 6c 6c 6f 5d 0a 7d 20 2d 72 65 73 75 6c 74 20 7b llo].} -result {
1eb0: 7b 62 69 6e 20 68 65 6c 6c 6f 7d 7d 0a 0a 74 63 {bin hello}}..tc
1ec0: 6c 74 65 73 74 3a 3a 74 65 73 74 20 62 69 6e 2d ltest::test bin-
1ed0: 75 6e 70 61 63 6b 2d 31 36 20 62 69 6e 20 2d 62 unpack-16 bin -b
1ee0: 6f 64 79 20 7b 0a 20 20 20 20 6d 73 67 70 61 63 ody {. msgpac
1ef0: 6b 20 75 6e 70 61 63 6b 20 5b 6d 73 67 70 61 63 k unpack [msgpac
1f00: 6b 20 70 61 63 6b 20 62 69 6e 20 68 65 6c 6c 5b k pack bin hell[
1f10: 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 6f 20 string repeat o
1f20: 33 30 30 5d 5d 0a 7d 20 2d 6d 61 74 63 68 20 72 300]].} -match r
1f30: 65 67 65 78 70 20 2d 72 65 73 75 6c 74 20 7b 7b egexp -result {{
1f40: 62 69 6e 20 68 65 6c 6c 6f 7b 31 35 30 7d 6f 7b bin hello{150}o{
1f50: 31 35 30 7d 7d 7d 0a 0a 74 63 6c 74 65 73 74 3a 150}}}..tcltest:
1f60: 3a 74 65 73 74 20 62 69 6e 2d 75 6e 70 61 63 6b :test bin-unpack
1f70: 2d 33 32 20 62 69 6e 20 2d 62 6f 64 79 20 7b 0a -32 bin -body {.
1f80: 20 20 20 20 6d 73 67 70 61 63 6b 20 75 6e 70 61 msgpack unpa
1f90: 63 6b 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b ck [msgpack pack
1fa0: 20 62 69 6e 20 68 65 6c 6c 5b 73 74 72 69 6e 67 bin hell[string
1fb0: 20 72 65 70 65 61 74 20 6f 20 31 30 30 30 30 30 repeat o 100000
1fc0: 5d 5d 0a 7d 20 2d 6d 61 74 63 68 20 72 65 67 65 ]].} -match rege
1fd0: 78 70 20 2d 72 65 73 75 6c 74 20 7b 7b 62 69 6e xp -result {{bin
1fe0: 20 68 65 6c 6c 6f 2b 7d 7d 0a 0a 0a 74 63 6c 74 hello+}}...tclt
1ff0: 65 73 74 3a 3a 74 65 73 74 20 73 74 72 20 73 74 est::test str st
2000: 72 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 66 6c r -body {. fl
2010: 61 74 6d 61 70 20 76 20 5b 6c 69 73 74 20 5c 0a atmap v [list \.
2020: 20 20 20 20 20 20 20 20 7b 7d 20 61 20 62 62 20 {} a bb
2030: 63 63 63 20 64 64 64 64 20 5b 73 74 72 69 6e 67 ccc dddd [string
2040: 20 72 65 70 65 61 74 20 65 20 33 31 5d 20 5b 73 repeat e 31] [s
2050: 74 72 69 6e 67 20 72 65 70 65 61 74 20 65 20 33 tring repeat e 3
2060: 32 5d 20 5c 0a 20 20 20 20 20 20 20 20 5b 73 74 2] \. [st
2070: 72 69 6e 67 20 72 65 70 65 61 74 20 66 20 33 33 ring repeat f 33
2080: 5d 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 ] [string repeat
2090: 20 67 20 36 35 35 33 35 5d 20 5b 73 74 72 69 6e g 65535] [strin
20a0: 67 20 72 65 70 65 61 74 20 68 20 36 35 35 33 36 g repeat h 65536
20b0: 5d 20 5c 0a 20 20 20 20 20 20 20 20 5b 73 74 72 ] \. [str
20c0: 69 6e 67 20 72 65 70 65 61 74 20 69 20 31 30 30 ing repeat i 100
20d0: 30 30 30 5d 20 5c 0a 20 20 20 20 5d 20 7b 0a 20 000] \. ] {.
20e0: 20 20 20 20 20 20 20 20 20 20 20 62 69 6e 61 72 binar
20f0: 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 6d 73 y encode hex [ms
2100: 67 70 61 63 6b 20 70 61 63 6b 20 73 74 72 20 24 gpack pack str $
2110: 76 5d 0a 20 20 20 20 7d 0a 7d 20 2d 72 65 73 75 v]. }.} -resu
2120: 6c 74 20 5b 6c 69 73 74 20 5c 0a 20 20 20 20 61 lt [list \. a
2130: 30 20 5c 0a 20 20 20 20 61 31 36 31 20 5c 0a 20 0 \. a161 \.
2140: 20 20 20 61 32 36 32 36 32 20 5c 0a 20 20 20 20 a26262 \.
2150: 61 33 36 33 36 33 36 33 20 5c 0a 20 20 20 20 61 a3636363 \. a
2160: 34 36 34 36 34 36 34 36 34 20 5c 0a 20 20 20 20 464646464 \.
2170: 62 66 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 bf[string repeat
2180: 20 36 35 20 33 31 5d 20 5c 0a 20 20 20 20 64 39 65 31] \. d9
2190: 32 30 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20[string repeat
21a0: 20 36 35 20 33 32 5d 20 5c 0a 20 20 20 20 64 39 65 32] \. d9
21b0: 32 31 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 21[string repeat
21c0: 20 36 36 20 33 33 5d 20 5c 0a 20 20 20 20 64 61 66 33] \. da
21d0: 66 66 66 66 5b 73 74 72 69 6e 67 20 72 65 70 65 ffff[string repe
21e0: 61 74 20 36 37 20 36 35 35 33 35 5d 20 5c 0a 20 at 67 65535] \.
21f0: 20 20 20 64 62 30 30 30 31 30 30 30 30 5b 73 74 db00010000[st
2200: 72 69 6e 67 20 72 65 70 65 61 74 20 36 38 20 36 ring repeat 68 6
2210: 35 35 33 36 5d 20 5c 0a 20 20 20 20 64 62 30 30 5536] \. db00
2220: 30 31 38 36 61 30 5b 73 74 72 69 6e 67 20 72 65 0186a0[string re
2230: 70 65 61 74 20 36 39 20 31 30 30 30 30 30 5d 20 peat 69 100000]
2240: 5c 0a 5d 0a 0a 74 63 6c 74 65 73 74 3a 3a 74 65 \.]..tcltest::te
2250: 73 74 20 73 74 72 2d 75 6e 70 61 63 6b 2d 38 20 st str-unpack-8
2260: 73 74 72 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 str -body {.
2270: 6d 73 67 70 61 63 6b 20 75 6e 70 61 63 6b 20 5b msgpack unpack [
2280: 6d 73 67 70 61 63 6b 20 70 61 63 6b 20 73 74 72 msgpack pack str
2290: 20 68 65 6c 6c 6f 5d 0a 7d 20 2d 72 65 73 75 6c hello].} -resul
22a0: 74 20 7b 7b 73 74 72 20 68 65 6c 6c 6f 7d 7d 0a t {{str hello}}.
22b0: 0a 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 20 73 .tcltest::test s
22c0: 74 72 2d 75 6e 70 61 63 6b 2d 31 36 20 73 74 72 tr-unpack-16 str
22d0: 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 6d 73 67 -body {. msg
22e0: 70 61 63 6b 20 75 6e 70 61 63 6b 20 5b 6d 73 67 pack unpack [msg
22f0: 70 61 63 6b 20 70 61 63 6b 20 73 74 72 20 68 65 pack pack str he
2300: 6c 6c 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 ll[string repeat
2310: 20 6f 20 33 30 30 5d 5d 0a 7d 20 2d 6d 61 74 63 o 300]].} -matc
2320: 68 20 72 65 67 65 78 70 20 2d 72 65 73 75 6c 74 h regexp -result
2330: 20 7b 7b 73 74 72 20 68 65 6c 6c 6f 7b 31 35 30 {{str hello{150
2340: 7d 6f 7b 31 35 30 7d 7d 7d 0a 0a 74 63 6c 74 65 }o{150}}}..tclte
2350: 73 74 3a 3a 74 65 73 74 20 73 74 72 2d 75 6e 70 st::test str-unp
2360: 61 63 6b 2d 33 32 20 73 74 72 20 2d 62 6f 64 79 ack-32 str -body
2370: 20 7b 0a 20 20 20 20 6d 73 67 70 61 63 6b 20 75 {. msgpack u
2380: 6e 70 61 63 6b 20 5b 6d 73 67 70 61 63 6b 20 70 npack [msgpack p
2390: 61 63 6b 20 73 74 72 20 68 65 6c 6c 5b 73 74 72 ack str hell[str
23a0: 69 6e 67 20 72 65 70 65 61 74 20 6f 20 31 30 30 ing repeat o 100
23b0: 30 30 30 5d 5d 0a 7d 20 2d 6d 61 74 63 68 20 72 000]].} -match r
23c0: 65 67 65 78 70 20 2d 72 65 73 75 6c 74 20 7b 7b egexp -result {{
23d0: 73 74 72 20 68 65 6c 6c 6f 2b 7d 7d 0a 0a 0a 74 str hello+}}...t
23e0: 63 6c 74 65 73 74 3a 3a 74 65 73 74 20 61 72 72 cltest::test arr
23f0: 61 79 2d 6c 69 73 74 20 61 72 72 61 79 2d 6c 69 ay-list array-li
2400: 73 74 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 73 st -body {. s
2410: 65 74 20 6e 20 31 30 0a 20 20 20 20 73 65 74 20 et n 10. set
2420: 74 74 20 7b 7d 0a 0a 20 20 20 20 61 70 70 65 6e tt {}.. appen
2430: 64 20 74 74 20 5b 6d 73 67 70 61 63 6b 20 70 61 d tt [msgpack pa
2440: 63 6b 20 61 72 72 61 79 20 24 6e 5d 0a 0a 20 20 ck array $n]..
2450: 20 20 73 65 74 20 6c 20 7b 7d 0a 20 20 20 20 66 set l {}. f
2460: 6f 72 20 7b 73 65 74 20 69 20 30 7d 20 7b 24 69 or {set i 0} {$i
2470: 20 3c 20 24 6e 7d 20 7b 69 6e 63 72 20 69 7d 20 < $n} {incr i}
2480: 7b 0a 20 20 20 20 20 20 20 20 73 65 74 20 76 20 {. set v
2490: 5b 65 78 70 72 20 7b 69 6e 74 28 65 78 70 28 24 [expr {int(exp($
24a0: 69 20 2b 20 24 6e 29 29 20 25 20 31 30 30 30 30 i + $n)) % 10000
24b0: 30 7d 5d 0a 20 20 20 20 20 20 20 20 6c 61 70 70 0}]. lapp
24c0: 65 6e 64 20 6c 20 24 76 0a 20 20 20 20 20 20 20 end l $v.
24d0: 20 61 70 70 65 6e 64 20 74 74 20 5b 6d 73 67 70 append tt [msgp
24e0: 61 63 6b 20 70 61 63 6b 20 69 6e 74 20 24 76 5d ack pack int $v]
24f0: 0a 20 20 20 20 7d 0a 20 20 20 20 61 70 70 65 6e . }. appen
2500: 64 20 74 74 20 5b 6d 73 67 70 61 63 6b 20 70 61 d tt [msgpack pa
2510: 63 6b 20 74 72 75 65 5d 0a 0a 20 20 20 20 23 20 ck true].. #
2520: 54 65 73 74 20 6c 69 73 74 0a 20 20 20 20 73 65 Test list. se
2530: 74 20 74 74 32 20 5b 6d 73 67 70 61 63 6b 20 70 t tt2 [msgpack p
2540: 61 63 6b 20 6c 69 73 74 20 69 6e 74 20 24 6c 5d ack list int $l]
2550: 0a 20 20 20 20 61 70 70 65 6e 64 20 74 74 32 20 . append tt2
2560: 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b 20 74 72 [msgpack pack tr
2570: 75 65 5d 0a 0a 20 20 20 20 6c 69 73 74 20 5b 73 ue].. list [s
2580: 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 74 20 tring equal $tt
2590: 24 74 74 32 5d 20 5b 62 69 6e 61 72 79 20 65 6e $tt2] [binary en
25a0: 63 6f 64 65 20 68 65 78 20 24 74 74 5d 0a 7d 20 code hex $tt].}
25b0: 2d 72 65 73 75 6c 74 20 7b 31 20 39 61 63 64 35 -result {1 9acd5
25c0: 36 30 61 63 64 65 39 65 32 63 64 66 35 32 32 63 60acde9e2cdf522c
25d0: 64 61 35 61 64 63 64 30 61 32 63 63 65 30 30 30 da5adcd0a2cce000
25e0: 31 30 64 39 39 63 65 30 30 30 31 35 30 35 65 63 10d99ce0001505ec
25f0: 64 64 36 61 38 63 64 65 61 34 31 63 65 30 30 30 dd6a8cdea41ce000
2600: 31 34 31 37 63 63 33 7d 0a 0a 0a 74 63 6c 74 65 1417cc3}...tclte
2610: 73 74 3a 3a 74 65 73 74 20 6d 61 70 2d 64 69 63 st::test map-dic
2620: 74 2d 74 63 6c 5f 61 72 72 61 79 2d 31 30 2d 33 t-tcl_array-10-3
2630: 31 2d 33 32 20 6d 61 70 2d 64 69 63 74 2d 74 63 1-32 map-dict-tc
2640: 6c 5f 61 72 72 61 79 2d 31 30 2d 33 31 2d 33 32 l_array-10-31-32
2650: 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 66 6c 61 -body {. fla
2660: 74 6d 61 70 20 6e 20 7b 31 30 20 33 31 20 33 32 tmap n {10 31 32
2670: 7d 20 7b 0a 20 20 20 20 20 20 20 20 6c 61 73 73 } {. lass
2680: 69 67 6e 20 5b 74 65 73 74 5f 6d 61 70 20 24 6e ign [test_map $n
2690: 5d 20 65 71 31 20 65 71 32 20 74 74 0a 20 20 20 ] eq1 eq2 tt.
26a0: 20 20 20 20 20 6c 69 73 74 20 24 65 71 31 20 24 list $eq1 $
26b0: 65 71 32 20 5b 62 69 6e 61 72 79 20 65 6e 63 6f eq2 [binary enco
26c0: 64 65 20 68 65 78 20 24 74 74 5d 0a 20 20 20 20 de hex $tt].
26d0: 7d 0a 7d 20 2d 72 65 73 75 6c 74 20 5b 6c 69 73 }.} -result [lis
26e0: 74 20 5c 0a 20 20 20 20 31 20 31 20 38 61 64 32 t \. 1 1 8ad2
26f0: 66 66 64 35 35 64 35 36 64 32 66 66 66 66 32 62 ffd55d56d2ffff2b
2700: 37 65 64 32 66 66 38 63 38 35 36 38 64 32 66 66 7ed2ff8c8568d2ff
2710: 66 66 32 62 37 65 64 32 66 66 36 64 61 65 30 36 ff2b7ed2ff6dae06
2720: 64 32 66 66 66 66 32 62 37 65 30 30 64 32 66 66 d2ffff2b7e00d2ff
2730: 66 66 32 62 37 65 63 65 30 30 31 35 38 38 38 30 ff2b7ece00158880
2740: 64 32 66 66 66 66 32 62 37 65 63 65 30 30 33 65 d2ffff2b7ece003e
2750: 65 32 36 30 64 32 66 66 66 66 32 62 37 65 63 65 e260d2ffff2b7ece
2760: 30 30 36 34 33 66 38 39 64 32 66 66 66 66 32 62 00643f89d2ffff2b
2770: 37 65 63 65 30 30 38 30 36 35 66 35 64 32 66 66 7ece008065f5d2ff
2780: 66 66 32 62 37 65 63 65 30 30 38 61 62 66 36 65 ff2b7ece008abf6e
2790: 64 32 66 66 66 66 32 62 37 65 63 65 30 30 39 36 d2ffff2b7ece0096
27a0: 66 36 63 65 64 32 66 66 66 66 32 62 37 65 63 33 f6ced2ffff2b7ec3
27b0: 20 5c 0a 20 20 20 20 31 20 31 20 64 65 30 30 31 \. 1 1 de001
27c0: 66 64 32 66 66 66 65 61 36 33 66 64 32 66 66 66 fd2fffea63fd2fff
27d0: 66 36 32 32 64 64 32 66 66 65 62 63 65 30 33 64 f622dd2ffebce03d
27e0: 32 66 66 66 66 36 32 32 64 64 32 66 66 64 35 35 2ffff622dd2ffd55
27f0: 64 35 36 64 32 66 66 66 66 36 32 32 64 64 32 66 d56d2ffff622dd2f
2800: 66 64 34 31 31 63 37 64 32 66 66 66 66 36 32 32 fd411c7d2ffff622
2810: 64 64 32 66 66 61 65 32 30 31 66 64 32 66 66 66 dd2ffae201fd2fff
2820: 66 36 32 32 64 64 32 66 66 61 63 66 64 32 64 64 f622dd2ffacfd2dd
2830: 32 66 66 66 66 36 32 32 64 64 32 66 66 39 61 62 2ffff622dd2ff9ab
2840: 63 63 65 64 32 66 66 66 66 36 32 32 64 64 32 66 cced2ffff622dd2f
2850: 66 38 64 36 38 39 30 64 32 66 66 66 66 36 32 32 f8d6890d2ffff622
2860: 64 64 32 66 66 38 63 38 35 36 38 64 32 66 66 66 dd2ff8c8568d2fff
2870: 66 36 32 32 64 64 32 66 66 37 65 65 30 38 34 64 f622dd2ff7ee084d
2880: 32 66 66 66 66 36 32 32 64 64 32 66 66 37 35 64 2ffff622dd2ff75d
2890: 31 64 39 64 32 66 66 66 66 36 32 32 64 64 32 66 1d9d2ffff622dd2f
28a0: 66 36 64 61 65 30 36 64 32 66 66 66 66 36 32 32 f6dae06d2ffff622
28b0: 64 64 32 66 66 36 64 34 64 36 61 64 32 66 66 66 dd2ff6d4d6ad2fff
28c0: 66 36 32 32 64 64 32 66 66 36 39 33 64 30 34 64 f622dd2ff693d04d
28d0: 32 66 66 66 66 36 32 32 64 64 32 66 66 36 37 36 2ffff622dd2ff676
28e0: 39 65 32 64 32 66 66 66 66 36 32 32 64 30 30 64 9e2d2ffff622d00d
28f0: 32 66 66 66 66 36 32 32 64 63 65 30 30 31 35 38 2ffff622dce00158
2900: 38 38 30 64 32 66 66 66 66 36 32 32 64 63 65 30 880d2ffff622dce0
2910: 30 31 36 64 65 39 34 64 32 66 66 66 66 36 32 32 016de94d2ffff622
2920: 64 63 65 30 30 32 39 35 36 34 31 64 32 66 66 66 dce00295641d2fff
2930: 66 36 32 32 64 63 65 30 30 33 65 65 32 36 30 64 f622dce003ee260d
2940: 32 66 66 66 66 36 32 32 64 63 65 30 30 34 30 31 2ffff622dce00401
2950: 63 63 36 64 32 66 66 66 66 36 32 32 64 63 65 30 cc6d2ffff622dce0
2960: 30 36 33 33 39 64 65 64 32 66 66 66 66 36 32 32 06339ded2ffff622
2970: 64 63 65 30 30 36 34 33 66 38 39 64 32 66 66 66 dce00643f89d2fff
2980: 66 36 32 32 64 63 65 30 30 37 34 35 62 37 30 64 f622dce00745b70d
2990: 32 66 66 66 66 36 32 32 64 63 65 30 30 37 66 61 2ffff622dce007fa
29a0: 39 64 63 64 32 66 66 66 66 36 32 32 64 63 65 30 9dcd2ffff622dce0
29b0: 30 38 30 36 35 66 35 64 32 66 66 66 66 36 32 32 08065f5d2ffff622
29c0: 64 63 65 30 30 38 61 62 66 36 65 64 32 66 66 66 dce008abf6ed2fff
29d0: 66 36 32 32 64 63 65 30 30 38 62 34 64 65 63 64 f622dce008b4decd
29e0: 32 66 66 66 66 36 32 32 64 63 65 30 30 39 31 65 2ffff622dce0091e
29f0: 65 36 66 64 32 66 66 66 66 36 32 32 64 63 65 30 e6fd2ffff622dce0
2a00: 30 39 36 66 36 63 65 64 32 66 66 66 66 36 32 32 096f6ced2ffff622
2a10: 64 63 65 30 30 39 37 32 37 39 39 64 32 66 66 66 dce00972799d2fff
2a20: 66 36 32 32 64 63 33 20 5c 0a 20 20 20 20 31 20 f622dc3 \. 1
2a30: 31 20 64 65 30 30 32 30 64 32 66 66 66 65 61 36 1 de0020d2fffea6
2a40: 33 66 63 64 64 37 36 36 64 32 66 66 65 62 63 65 3fcdd766d2ffebce
2a50: 30 33 63 64 64 37 36 36 64 32 66 66 64 35 35 64 03cdd766d2ffd55d
2a60: 35 36 63 64 64 37 36 36 64 32 66 66 64 34 31 31 56cdd766d2ffd411
2a70: 63 37 63 64 64 37 36 36 64 32 66 66 63 32 35 39 c7cdd766d2ffc259
2a80: 34 38 63 64 64 37 36 36 64 32 66 66 61 65 32 30 48cdd766d2ffae20
2a90: 31 66 63 64 64 37 36 36 64 32 66 66 61 63 66 64 1fcdd766d2ffacfd
2aa0: 32 64 63 64 64 37 36 36 64 32 66 66 39 61 62 63 2dcdd766d2ff9abc
2ab0: 63 65 63 64 64 37 36 36 64 32 66 66 38 64 36 38 cecdd766d2ff8d68
2ac0: 39 30 63 64 64 37 36 36 64 32 66 66 38 63 38 35 90cdd766d2ff8c85
2ad0: 36 38 63 64 64 37 36 36 64 32 66 66 37 65 65 30 68cdd766d2ff7ee0
2ae0: 38 34 63 64 64 37 36 36 64 32 66 66 37 35 64 31 84cdd766d2ff75d1
2af0: 64 39 63 64 64 37 36 36 64 32 66 66 36 64 61 65 d9cdd766d2ff6dae
2b00: 30 36 63 64 64 37 36 36 64 32 66 66 36 64 34 64 06cdd766d2ff6d4d
2b10: 36 61 63 64 64 37 36 36 64 32 66 66 36 39 33 64 6acdd766d2ff693d
2b20: 30 34 63 64 64 37 36 36 64 32 66 66 36 37 36 39 04cdd766d2ff6769
2b30: 65 32 63 64 64 37 36 36 30 30 63 64 64 37 36 36 e2cdd76600cdd766
2b40: 63 65 30 30 31 35 38 38 38 30 63 64 64 37 36 36 ce00158880cdd766
2b50: 63 65 30 30 31 36 64 65 39 34 63 64 64 37 36 36 ce0016de94cdd766
2b60: 63 65 30 30 32 39 35 36 34 31 63 64 64 37 36 36 ce00295641cdd766
2b70: 63 65 30 30 33 65 65 32 36 30 63 64 64 37 36 36 ce003ee260cdd766
2b80: 63 65 30 30 34 30 31 63 63 36 63 64 64 37 36 36 ce00401cc6cdd766
2b90: 63 65 30 30 36 33 33 39 64 65 63 64 64 37 36 36 ce006339decdd766
2ba0: 63 65 30 30 36 34 33 66 38 39 63 64 64 37 36 36 ce00643f89cdd766
2bb0: 63 65 30 30 37 34 35 62 37 30 63 64 64 37 36 36 ce00745b70cdd766
2bc0: 63 65 30 30 37 66 61 39 64 63 63 64 64 37 36 36 ce007fa9dccdd766
2bd0: 63 65 30 30 38 30 36 35 66 35 63 64 64 37 36 36 ce008065f5cdd766
2be0: 63 65 30 30 38 61 62 66 36 65 63 64 64 37 36 36 ce008abf6ecdd766
2bf0: 63 65 30 30 38 62 34 64 65 63 63 64 64 37 36 36 ce008b4deccdd766
2c00: 63 65 30 30 39 31 65 65 36 66 63 64 64 37 36 36 ce0091ee6fcdd766
2c10: 63 65 30 30 39 36 66 36 63 65 63 64 64 37 36 36 ce0096f6cecdd766
2c20: 63 65 30 30 39 37 32 37 39 39 63 64 64 37 36 36 ce00972799cdd766
2c30: 63 33 20 5c 0a 5d 0a 0a 74 63 6c 74 65 73 74 3a c3 \.]..tcltest:
2c40: 3a 74 65 73 74 20 6d 61 70 2d 64 69 63 74 2d 74 :test map-dict-t
2c50: 63 6c 5f 61 72 72 61 79 2d 36 35 35 33 35 20 6d cl_array-65535 m
2c60: 61 70 2d 64 69 63 74 2d 74 63 6c 5f 61 72 72 61 ap-dict-tcl_arra
2c70: 79 2d 36 35 35 33 35 20 2d 62 6f 64 79 20 7b 0a y-65535 -body {.
2c80: 20 20 20 20 6c 72 61 6e 67 65 20 5b 74 65 73 74 lrange [test
2c90: 5f 6d 61 70 20 36 35 35 33 35 5d 20 30 20 31 0a _map 65535] 0 1.
2ca0: 7d 20 2d 72 65 73 75 6c 74 20 7b 31 20 31 7d 20 } -result {1 1}
2cb0: 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 73 6c 6f -constraints slo
2cc0: 77 54 65 73 74 73 0a 0a 74 63 6c 74 65 73 74 3a wTests..tcltest:
2cd0: 3a 74 65 73 74 20 6d 61 70 2d 64 69 63 74 2d 74 :test map-dict-t
2ce0: 63 6c 5f 61 72 72 61 79 2d 36 35 35 33 36 20 6d cl_array-65536 m
2cf0: 61 70 2d 64 69 63 74 2d 74 63 6c 5f 61 72 72 61 ap-dict-tcl_arra
2d00: 79 2d 36 35 35 33 36 7d 20 2d 62 6f 64 79 20 7b y-65536} -body {
2d10: 0a 20 20 20 20 6c 72 61 6e 67 65 20 5b 74 65 73 . lrange [tes
2d20: 74 5f 6d 61 70 20 36 35 35 33 36 5d 20 30 20 31 t_map 65536] 0 1
2d30: 0a 7d 20 2d 72 65 73 75 6c 74 20 7b 31 20 31 7d .} -result {1 1}
2d40: 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 73 6c -constraints sl
2d50: 6f 77 54 65 73 74 73 0a 0a 0a 74 63 6c 74 65 73 owTests...tcltes
2d60: 74 3a 3a 74 65 73 74 20 6e 65 73 74 65 64 2d 31 t::test nested-1
2d70: 20 6e 65 73 74 65 64 20 2d 62 6f 64 79 20 7b 0a nested -body {.
2d80: 20 20 20 20 73 65 74 20 74 74 20 7b 7d 0a 20 20 set tt {}.
2d90: 20 20 61 70 70 65 6e 64 20 74 74 20 5b 6d 73 67 append tt [msg
2da0: 70 61 63 6b 20 70 61 63 6b 20 61 72 72 61 79 20 pack pack array
2db0: 36 5d 0a 20 20 20 20 61 70 70 65 6e 64 20 74 74 6]. append tt
2dc0: 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b 20 69 [msgpack pack i
2dd0: 6e 74 20 35 5d 0a 20 20 20 20 61 70 70 65 6e 64 nt 5]. append
2de0: 20 74 74 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 tt [msgpack pac
2df0: 6b 20 73 74 72 20 76 69 6a 66 5d 0a 20 20 20 20 k str vijf].
2e00: 61 70 70 65 6e 64 20 74 74 20 5b 6d 73 67 70 61 append tt [msgpa
2e10: 63 6b 20 70 61 63 6b 20 69 6e 74 20 36 5d 0a 20 ck pack int 6].
2e20: 20 20 20 61 70 70 65 6e 64 20 74 74 20 5b 6d 73 append tt [ms
2e30: 67 70 61 63 6b 20 70 61 63 6b 20 64 69 63 74 20 gpack pack dict
2e40: 69 6e 74 20 73 74 72 20 7b 31 20 74 77 65 65 20 int str {1 twee
2e50: 33 20 76 69 65 72 7d 5d 0a 20 20 20 20 61 70 70 3 vier}]. app
2e60: 65 6e 64 20 74 74 20 5b 6d 73 67 70 61 63 6b 20 end tt [msgpack
2e70: 70 61 63 6b 20 69 6e 74 20 37 5d 0a 20 20 20 20 pack int 7].
2e80: 61 70 70 65 6e 64 20 74 74 20 5b 6d 73 67 70 61 append tt [msgpa
2e90: 63 6b 20 70 61 63 6b 20 73 74 72 20 7a 65 76 65 ck pack str zeve
2ea0: 6e 5d 0a 0a 20 20 20 20 6d 73 67 70 61 63 6b 20 n].. msgpack
2eb0: 75 6e 70 61 63 6b 20 24 74 74 0a 7d 20 2d 72 65 unpack $tt.} -re
2ec0: 73 75 6c 74 20 7b 7b 61 72 72 61 79 20 7b 7b 69 sult {{array {{i
2ed0: 6e 74 65 67 65 72 20 35 7d 20 7b 73 74 72 20 76 nteger 5} {str v
2ee0: 69 6a 66 7d 20 7b 69 6e 74 65 67 65 72 20 36 7d ijf} {integer 6}
2ef0: 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 6d \. {m
2f00: 61 70 20 7b 7b 69 6e 74 65 67 65 72 20 31 7d 20 ap {{integer 1}
2f10: 7b 73 74 72 20 74 77 65 65 7d 20 7b 69 6e 74 65 {str twee} {inte
2f20: 67 65 72 20 33 7d 20 7b 73 74 72 20 76 69 65 72 ger 3} {str vier
2f30: 7d 7d 7d 5c 0a 20 20 20 20 20 20 20 20 20 20 20 }}}\.
2f40: 20 7b 69 6e 74 65 67 65 72 20 37 7d 20 7b 73 74 {integer 7} {st
2f50: 72 20 7a 65 76 65 6e 7d 7d 7d 7d 0a 0a 74 63 6c r zeven}}}}..tcl
2f60: 74 65 73 74 3a 3a 74 65 73 74 20 6e 65 73 74 65 test::test neste
2f70: 64 2d 32 20 6e 65 73 74 65 64 20 2d 62 6f 64 79 d-2 nested -body
2f80: 20 7b 0a 20 20 20 20 6d 73 67 70 61 63 6b 20 75 {. msgpack u
2f90: 6e 70 61 63 6b 20 5b 62 69 6e 61 72 79 20 64 65 npack [binary de
2fa0: 63 6f 64 65 20 68 65 78 20 38 32 61 37 36 33 36 code hex 82a7636
2fb0: 63 36 39 36 35 36 65 37 34 37 33 38 32 61 34 36 c69656e747382a46
2fc0: 34 36 31 37 34 36 31 39 34 63 34 30 35 36 37 36 461746194c405676
2fd0: 31 36 64 36 64 36 31 63 34 30 35 36 34 36 35 36 16d6d61c40564656
2fe0: 63 37 34 36 31 30 31 30 32 61 35 36 38 36 66 37 c74610102a5686f7
2ff0: 33 37 34 37 33 39 32 63 34 30 35 36 31 36 63 37 3747392c405616c7
3000: 30 36 38 36 31 63 34 30 35 36 66 36 64 36 35 36 06861c4056f6d656
3010: 37 36 31 61 38 36 34 36 31 37 34 36 31 36 32 36 761a864617461626
3020: 31 37 33 36 35 38 33 61 65 36 33 36 66 36 65 36 1736583ae636f6e6
3030: 65 36 35 36 33 37 34 36 39 36 66 36 65 35 66 36 e656374696f6e5f6
3040: 64 36 31 37 38 63 64 31 33 38 38 61 37 36 35 36 d6178cd1388a7656
3050: 65 36 31 36 32 36 63 36 35 36 34 63 33 61 35 37 e61626c6564c3a57
3060: 30 36 66 37 32 37 34 37 33 39 33 63 64 31 66 34 06f72747393cd1f4
3070: 31 63 64 31 66 34 31 63 64 31 66 34 32 5d 0a 7d 1cd1f41cd1f42].}
3080: 20 2d 72 65 73 75 6c 74 20 7b 7b 6d 61 70 20 7b -result {{map {
3090: 7b 73 74 72 20 63 6c 69 65 6e 74 73 7d 20 7b 6d {str clients} {m
30a0: 61 70 20 7b 7b 73 74 72 20 64 61 74 61 7d 20 7b ap {{str data} {
30b0: 61 72 72 61 79 20 7b 7b 62 69 6e 20 67 61 6d 6d array {{bin gamm
30c0: 61 7d 20 7b 62 69 6e 20 64 65 6c 74 61 7d 20 7b a} {bin delta} {
30d0: 69 6e 74 65 67 65 72 20 31 7d 20 7b 69 6e 74 65 integer 1} {inte
30e0: 67 65 72 20 32 7d 7d 7d 20 7b 73 74 72 20 68 6f ger 2}}} {str ho
30f0: 73 74 73 7d 20 7b 61 72 72 61 79 20 7b 7b 62 69 sts} {array {{bi
3100: 6e 20 61 6c 70 68 61 7d 20 7b 62 69 6e 20 6f 6d n alpha} {bin om
3110: 65 67 61 7d 7d 7d 7d 7d 20 7b 73 74 72 20 64 61 ega}}}}} {str da
3120: 74 61 62 61 73 65 7d 20 7b 6d 61 70 20 7b 7b 73 tabase} {map {{s
3130: 74 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 5f 6d 61 tr connection_ma
3140: 78 7d 20 7b 69 6e 74 65 67 65 72 20 35 30 30 30 x} {integer 5000
3150: 7d 20 7b 73 74 72 20 65 6e 61 62 6c 65 64 7d 20 } {str enabled}
3160: 7b 62 6f 6f 6c 65 61 6e 20 31 7d 20 7b 73 74 72 {boolean 1} {str
3170: 20 70 6f 72 74 73 7d 20 7b 61 72 72 61 79 20 7b ports} {array {
3180: 7b 69 6e 74 65 67 65 72 20 38 30 30 31 7d 20 7b {integer 8001} {
3190: 69 6e 74 65 67 65 72 20 38 30 30 31 7d 20 7b 69 integer 8001} {i
31a0: 6e 74 65 67 65 72 20 38 30 30 32 7d 7d 7d 7d 7d nteger 8002}}}}}
31b0: 7d 7d 7d 0a 0a 0a 74 63 6c 74 65 73 74 3a 3a 74 }}}...tcltest::t
31c0: 65 73 74 20 66 69 78 5f 65 78 74 31 20 66 69 78 est fix_ext1 fix
31d0: 5f 65 78 74 31 20 2d 62 6f 64 79 20 7b 0a 20 20 _ext1 -body {.
31e0: 20 20 73 65 74 20 65 6e 63 20 7b 7d 0a 20 20 20 set enc {}.
31f0: 20 6c 61 70 70 65 6e 64 20 65 6e 63 20 5b 6d 73 lappend enc [ms
3200: 67 70 61 63 6b 20 70 61 63 6b 20 66 69 78 5f 65 gpack pack fix_e
3210: 78 74 31 20 34 32 20 21 5d 0a 20 20 20 20 6c 61 xt1 42 !]. la
3220: 70 70 65 6e 64 20 65 6e 63 20 5b 6d 73 67 70 61 ppend enc [msgpa
3230: 63 6b 20 70 61 63 6b 20 66 69 78 5f 65 78 74 31 ck pack fix_ext1
3240: 20 2d 35 20 5c 78 46 46 5d 0a 0a 20 20 20 20 73 -5 \xFF].. s
3250: 65 74 20 64 65 63 20 5b 6c 6d 61 70 20 78 20 24 et dec [lmap x $
3260: 65 6e 63 20 7b 6d 73 67 70 61 63 6b 20 75 6e 70 enc {msgpack unp
3270: 61 63 6b 20 24 78 7d 5d 0a 0a 20 20 20 20 63 6f ack $x}].. co
3280: 6e 63 61 74 20 5b 6c 6d 61 70 20 78 20 24 65 6e ncat [lmap x $en
3290: 63 20 7b 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 c {binary encode
32a0: 20 68 65 78 20 24 78 7d 5d 20 24 64 65 63 0a 7d hex $x}] $dec.}
32b0: 20 2d 72 65 73 75 6c 74 20 22 64 34 32 61 32 31 -result "d42a21
32c0: 20 64 34 66 62 66 66 20 7b 7b 65 78 74 20 34 32 d4fbff {{ext 42
32d0: 20 21 7d 7d 20 7b 7b 65 78 74 20 2d 35 20 5c 78 !}} {{ext -5 \x
32e0: 46 46 7d 7d 22 0a 0a 74 63 6c 74 65 73 74 3a 3a FF}}"..tcltest::
32f0: 74 65 73 74 20 66 69 78 5f 65 78 74 32 20 66 69 test fix_ext2 fi
3300: 78 5f 65 78 74 32 20 2d 62 6f 64 79 20 7b 0a 20 x_ext2 -body {.
3310: 20 20 20 73 65 74 20 65 6e 63 20 7b 7d 0a 20 20 set enc {}.
3320: 20 20 6c 61 70 70 65 6e 64 20 65 6e 63 20 5b 6d lappend enc [m
3330: 73 67 70 61 63 6b 20 70 61 63 6b 20 66 69 78 5f sgpack pack fix_
3340: 65 78 74 32 20 34 32 20 21 5d 0a 20 20 20 20 6c ext2 42 !]. l
3350: 61 70 70 65 6e 64 20 65 6e 63 20 5b 6d 73 67 70 append enc [msgp
3360: 61 63 6b 20 70 61 63 6b 20 66 69 78 5f 65 78 74 ack pack fix_ext
3370: 32 20 33 20 5c 78 43 41 5c 78 46 45 5d 0a 0a 20 2 3 \xCA\xFE]..
3380: 20 20 20 73 65 74 20 64 65 63 20 5b 6c 6d 61 70 set dec [lmap
3390: 20 78 20 24 65 6e 63 20 7b 6d 73 67 70 61 63 6b x $enc {msgpack
33a0: 20 75 6e 70 61 63 6b 20 24 78 7d 5d 0a 0a 20 20 unpack $x}]..
33b0: 20 20 63 6f 6e 63 61 74 20 5b 6c 6d 61 70 20 78 concat [lmap x
33c0: 20 24 65 6e 63 20 7b 62 69 6e 61 72 79 20 65 6e $enc {binary en
33d0: 63 6f 64 65 20 68 65 78 20 24 78 7d 5d 20 24 64 code hex $x}] $d
33e0: 65 63 0a 7d 20 2d 72 65 73 75 6c 74 20 22 64 35 ec.} -result "d5
33f0: 32 61 32 31 30 30 20 64 35 30 33 63 61 66 65 20 2a2100 d503cafe
3400: 7b 7b 65 78 74 20 34 32 20 21 5c 78 30 30 7d 7d {{ext 42 !\x00}}
3410: 20 7b 7b 65 78 74 20 33 20 5c 78 43 41 5c 78 46 {{ext 3 \xCA\xF
3420: 45 7d 7d 22 0a 0a 74 63 6c 74 65 73 74 3a 3a 74 E}}"..tcltest::t
3430: 65 73 74 20 66 69 78 5f 65 78 74 34 20 66 69 78 est fix_ext4 fix
3440: 5f 65 78 74 34 20 2d 62 6f 64 79 20 7b 0a 20 20 _ext4 -body {.
3450: 20 20 73 65 74 20 65 6e 63 20 7b 7d 0a 20 20 20 set enc {}.
3460: 20 6c 61 70 70 65 6e 64 20 65 6e 63 20 5b 6d 73 lappend enc [ms
3470: 67 70 61 63 6b 20 70 61 63 6b 20 66 69 78 5f 65 gpack pack fix_e
3480: 78 74 34 20 34 32 20 21 5d 0a 20 20 20 20 6c 61 xt4 42 !]. la
3490: 70 70 65 6e 64 20 65 6e 63 20 5b 6d 73 67 70 61 ppend enc [msgpa
34a0: 63 6b 20 70 61 63 6b 20 66 69 78 5f 65 78 74 34 ck pack fix_ext4
34b0: 20 33 20 5c 78 43 41 5c 78 46 45 5d 0a 20 20 20 3 \xCA\xFE].
34c0: 20 6c 61 70 70 65 6e 64 20 65 6e 63 20 5b 6d 73 lappend enc [ms
34d0: 67 70 61 63 6b 20 70 61 63 6b 20 66 69 78 5f 65 gpack pack fix_e
34e0: 78 74 34 20 31 30 20 5c 78 31 32 5c 78 33 34 5c xt4 10 \x12\x34\
34f0: 78 35 36 5c 78 37 38 5d 0a 0a 20 20 20 20 73 65 x56\x78].. se
3500: 74 20 64 65 63 20 5b 6c 6d 61 70 20 78 20 24 65 t dec [lmap x $e
3510: 6e 63 20 7b 6d 73 67 70 61 63 6b 20 75 6e 70 61 nc {msgpack unpa
3520: 63 6b 20 24 78 7d 5d 0a 0a 20 20 20 20 63 6f 6e ck $x}].. con
3530: 63 61 74 20 5b 6c 6d 61 70 20 78 20 24 65 6e 63 cat [lmap x $enc
3540: 20 7b 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 {binary encode
3550: 68 65 78 20 24 78 7d 5d 20 24 64 65 63 0a 7d 20 hex $x}] $dec.}
3560: 2d 72 65 73 75 6c 74 20 22 64 36 32 61 32 31 30 -result "d62a210
3570: 30 30 30 30 30 20 64 36 30 33 63 61 66 65 30 30 00000 d603cafe00
3580: 30 30 20 64 36 30 61 31 32 33 34 35 36 37 38 5c 00 d60a12345678\
3590: 0a 20 20 20 20 20 20 20 20 20 20 20 7b 7b 65 78 . {{ex
35a0: 74 20 34 32 20 21 5c 78 30 30 5c 78 30 30 5c 78 t 42 !\x00\x00\x
35b0: 30 30 7d 7d 20 7b 7b 65 78 74 20 33 20 5c 78 43 00}} {{ext 3 \xC
35c0: 41 5c 78 46 45 5c 78 30 30 5c 78 30 30 7d 7d 5c A\xFE\x00\x00}}\
35d0: 0a 20 20 20 20 20 20 20 20 20 20 20 7b 7b 65 78 . {{ex
35e0: 74 20 31 30 20 5c 78 31 32 5c 78 33 34 5c 78 35 t 10 \x12\x34\x5
35f0: 36 5c 78 37 38 7d 7d 22 0a 0a 74 63 6c 74 65 73 6\x78}}"..tcltes
3600: 74 3a 3a 74 65 73 74 20 66 69 78 5f 65 78 74 38 t::test fix_ext8
3610: 20 66 69 78 5f 65 78 74 38 20 2d 62 6f 64 79 20 fix_ext8 -body
3620: 7b 0a 20 20 20 20 73 65 74 20 65 6e 63 20 7b 7d {. set enc {}
3630: 0a 20 20 20 20 6c 61 70 70 65 6e 64 20 65 6e 63 . lappend enc
3640: 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b 20 66 [msgpack pack f
3650: 69 78 5f 65 78 74 38 20 33 20 5c 78 43 41 5c 78 ix_ext8 3 \xCA\x
3660: 46 45 5d 0a 20 20 20 20 6c 61 70 70 65 6e 64 20 FE]. lappend
3670: 65 6e 63 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 enc [msgpack pac
3680: 6b 20 66 69 78 5f 65 78 74 38 20 31 30 20 5c 78 k fix_ext8 10 \x
3690: 30 31 5c 78 32 33 5c 78 34 35 5c 78 36 37 5c 78 01\x23\x45\x67\x
36a0: 38 39 5c 78 41 42 5c 78 43 44 5c 78 45 46 5d 0a 89\xAB\xCD\xEF].
36b0: 0a 20 20 20 20 73 65 74 20 64 65 63 20 5b 6c 6d . set dec [lm
36c0: 61 70 20 78 20 24 65 6e 63 20 7b 6d 73 67 70 61 ap x $enc {msgpa
36d0: 63 6b 20 75 6e 70 61 63 6b 20 24 78 7d 5d 0a 0a ck unpack $x}]..
36e0: 20 20 20 20 63 6f 6e 63 61 74 20 5b 6c 6d 61 70 concat [lmap
36f0: 20 78 20 24 65 6e 63 20 7b 62 69 6e 61 72 79 20 x $enc {binary
3700: 65 6e 63 6f 64 65 20 68 65 78 20 24 78 7d 5d 20 encode hex $x}]
3710: 24 64 65 63 0a 7d 20 2d 72 65 73 75 6c 74 20 22 $dec.} -result "
3720: 64 37 30 33 63 61 66 65 30 30 30 30 30 30 30 30 d703cafe00000000
3730: 30 30 30 30 20 64 37 30 61 30 31 32 33 34 35 36 0000 d70a0123456
3740: 37 38 39 61 62 63 64 65 66 5c 0a 20 20 20 20 20 789abcdef\.
3750: 20 20 20 20 20 20 7b 7b 65 78 74 20 33 20 5c 78 {{ext 3 \x
3760: 43 41 5c 78 46 45 5c 30 5c 30 5c 30 5c 30 5c 30 CA\xFE\0\0\0\0\0
3770: 5c 30 7d 7d 5c 0a 20 20 20 20 20 20 20 20 20 20 \0}}\.
3780: 20 7b 7b 65 78 74 20 31 30 20 5c 78 30 31 5c 78 {{ext 10 \x01\x
3790: 32 33 5c 78 34 35 5c 78 36 37 5c 78 38 39 5c 78 23\x45\x67\x89\x
37a0: 41 42 5c 78 43 44 5c 78 45 46 7d 7d 22 0a 0a 74 AB\xCD\xEF}}"..t
37b0: 63 6c 74 65 73 74 3a 3a 74 65 73 74 20 66 69 78 cltest::test fix
37c0: 5f 65 78 74 31 36 20 66 69 78 5f 65 78 74 31 36 _ext16 fix_ext16
37d0: 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 73 65 74 -body {. set
37e0: 20 65 6e 63 20 7b 7d 0a 20 20 20 20 6c 61 70 70 enc {}. lapp
37f0: 65 6e 64 20 65 6e 63 20 5b 6d 73 67 70 61 63 6b end enc [msgpack
3800: 20 70 61 63 6b 20 66 69 78 5f 65 78 74 31 36 20 pack fix_ext16
3810: 33 20 5c 78 43 41 5c 78 46 45 5d 0a 20 20 20 20 3 \xCA\xFE].
3820: 6c 61 70 70 65 6e 64 20 65 6e 63 20 5b 6d 73 67 lappend enc [msg
3830: 70 61 63 6b 20 70 61 63 6b 20 66 69 78 5f 65 78 pack pack fix_ex
3840: 74 31 36 20 31 31 20 5b 73 74 72 69 6e 67 20 72 t16 11 [string r
3850: 65 70 65 61 74 20 41 42 20 31 36 5d 5d 0a 0a 20 epeat AB 16]]..
3860: 20 20 20 73 65 74 20 64 65 63 20 5b 6c 6d 61 70 set dec [lmap
3870: 20 78 20 24 65 6e 63 20 7b 6d 73 67 70 61 63 6b x $enc {msgpack
3880: 20 75 6e 70 61 63 6b 20 24 78 7d 5d 0a 0a 20 20 unpack $x}]..
3890: 20 20 63 6f 6e 63 61 74 20 5b 6c 6d 61 70 20 78 concat [lmap x
38a0: 20 24 65 6e 63 20 7b 62 69 6e 61 72 79 20 65 6e $enc {binary en
38b0: 63 6f 64 65 20 68 65 78 20 24 78 7d 5d 20 24 64 code hex $x}] $d
38c0: 65 63 0a 7d 20 2d 72 65 73 75 6c 74 20 22 64 38 ec.} -result "d8
38d0: 30 33 63 61 66 65 30 30 30 30 30 30 30 30 30 30 03cafe0000000000
38e0: 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0000000000000000
38f0: 30 30 5c 0a 20 20 20 20 20 20 20 20 20 20 20 64 00\. d
3900: 38 30 62 34 31 34 32 34 31 34 32 34 31 34 32 34 80b4142414241424
3910: 31 34 32 34 31 34 32 34 31 34 32 34 31 34 32 34 1424142414241424
3920: 31 34 32 5c 0a 20 20 20 20 20 20 20 20 20 20 20 142\.
3930: 7b 7b 65 78 74 20 33 20 5c 78 43 41 5c 78 46 45 {{ext 3 \xCA\xFE
3940: 5c 30 5c 30 5c 30 5c 30 5c 30 5c 30 5c 30 5c 30 \0\0\0\0\0\0\0\0
3950: 5c 30 5c 30 5c 30 5c 30 5c 30 5c 30 7d 7d 5c 0a \0\0\0\0\0\0}}\.
3960: 20 20 20 20 20 20 20 20 20 20 20 7b 7b 65 78 74 {{ext
3970: 20 31 31 20 41 42 41 42 41 42 41 42 41 42 41 42 11 ABABABABABAB
3980: 41 42 41 42 7d 7d 22 0a 0a 0a 74 63 6c 74 65 73 ABAB}}"...tcltes
3990: 74 3a 3a 74 65 73 74 20 65 78 74 20 65 78 74 20 t::test ext ext
39a0: 2d 62 6f 64 79 20 7b 0a 20 20 20 20 66 6c 61 74 -body {. flat
39b0: 6d 61 70 20 76 20 5b 6c 69 73 74 20 5c 0a 20 20 map v [list \.
39c0: 20 20 20 20 20 20 7b 7d 20 61 20 62 62 20 63 63 {} a bb cc
39d0: 63 20 64 64 64 64 20 5b 73 74 72 69 6e 67 20 72 c dddd [string r
39e0: 65 70 65 61 74 20 65 20 32 35 35 5d 20 5b 73 74 epeat e 255] [st
39f0: 72 69 6e 67 20 72 65 70 65 61 74 20 65 20 32 35 ring repeat e 25
3a00: 36 5d 20 5c 0a 20 20 20 20 20 20 20 20 5b 73 74 6] \. [st
3a10: 72 69 6e 67 20 72 65 70 65 61 74 20 66 20 32 35 ring repeat f 25
3a20: 37 5d 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 7] [string repea
3a30: 74 20 67 20 36 35 35 33 35 5d 20 5b 73 74 72 69 t g 65535] [stri
3a40: 6e 67 20 72 65 70 65 61 74 20 68 20 36 35 35 33 ng repeat h 6553
3a50: 36 5d 20 5c 0a 20 20 20 20 20 20 20 20 5b 73 74 6] \. [st
3a60: 72 69 6e 67 20 72 65 70 65 61 74 20 69 20 31 30 ring repeat i 10
3a70: 30 30 30 30 5d 20 5c 0a 20 20 20 20 5d 20 7b 0a 0000] \. ] {.
3a80: 20 20 20 20 20 20 20 20 62 69 6e 61 72 79 20 65 binary e
3a90: 6e 63 6f 64 65 20 68 65 78 20 5b 6d 73 67 70 61 ncode hex [msgpa
3aa0: 63 6b 20 70 61 63 6b 20 65 78 74 20 31 32 37 20 ck pack ext 127
3ab0: 24 76 5d 0a 20 20 20 20 7d 0a 7d 20 2d 72 65 73 $v]. }.} -res
3ac0: 75 6c 74 20 5b 6c 69 73 74 20 5c 0a 20 20 20 20 ult [list \.
3ad0: 63 37 30 30 37 66 20 5c 0a 20 20 20 20 63 37 30 c7007f \. c70
3ae0: 31 37 66 36 31 20 5c 0a 20 20 20 20 63 37 30 32 17f61 \. c702
3af0: 37 66 36 32 36 32 20 5c 0a 20 20 20 20 63 37 30 7f6262 \. c70
3b00: 33 37 66 36 33 36 33 36 33 20 5c 0a 20 20 20 20 37f636363 \.
3b10: 63 37 30 34 37 66 36 34 36 34 36 34 36 34 20 5c c7047f64646464 \
3b20: 0a 20 20 20 20 63 37 66 66 37 66 5b 73 74 72 69 . c7ff7f[stri
3b30: 6e 67 20 72 65 70 65 61 74 20 36 35 20 32 35 35 ng repeat 65 255
3b40: 5d 20 5c 0a 20 20 20 20 63 38 30 31 30 30 37 66 ] \. c801007f
3b50: 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 36 [string repeat 6
3b60: 35 20 32 35 36 5d 20 5c 0a 20 20 20 20 63 38 30 5 256] \. c80
3b70: 31 30 31 37 66 5b 73 74 72 69 6e 67 20 72 65 70 1017f[string rep
3b80: 65 61 74 20 36 36 20 32 35 37 5d 20 5c 0a 20 20 eat 66 257] \.
3b90: 20 20 63 38 66 66 66 66 37 66 5b 73 74 72 69 6e c8ffff7f[strin
3ba0: 67 20 72 65 70 65 61 74 20 36 37 20 36 35 35 33 g repeat 67 6553
3bb0: 35 5d 20 5c 0a 20 20 20 20 63 39 30 30 30 31 30 5] \. c900010
3bc0: 30 30 30 37 66 5b 73 74 72 69 6e 67 20 72 65 70 0007f[string rep
3bd0: 65 61 74 20 36 38 20 36 35 35 33 36 5d 20 5c 0a eat 68 65536] \.
3be0: 20 20 20 20 63 39 30 30 30 31 38 36 61 30 37 66 c9000186a07f
3bf0: 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 36 [string repeat 6
3c00: 39 20 31 30 30 30 30 30 5d 20 5c 0a 5d 0a 0a 0a 9 100000] \.]...
3c10: 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 20 65 78 tcltest::test ex
3c20: 74 2d 74 69 6d 65 73 74 61 6d 70 2d 31 20 74 69 t-timestamp-1 ti
3c30: 6d 65 73 74 61 6d 70 33 32 20 2d 62 6f 64 79 20 mestamp32 -body
3c40: 7b 0a 20 20 20 20 6d 73 67 70 61 63 6b 20 75 6e {. msgpack un
3c50: 70 61 63 6b 20 5b 62 69 6e 61 72 79 20 64 65 63 pack [binary dec
3c60: 6f 64 65 20 68 65 78 20 38 31 61 35 36 35 37 36 ode hex 81a56576
3c70: 36 35 36 65 37 34 38 32 61 35 36 63 36 31 36 32 656e7482a56c6162
3c80: 36 35 36 63 61 61 37 34 36 39 36 64 36 35 32 30 656caa74696d6520
3c90: 36 32 36 35 36 37 36 31 36 65 61 34 36 34 36 31 626567616ea46461
3ca0: 37 34 36 35 64 36 66 66 30 30 30 30 30 30 30 30 7465d6ff00000000
3cb0: 5d 0a 7d 20 2d 72 65 73 75 6c 74 20 7b 7b 6d 61 ].} -result {{ma
3cc0: 70 20 7b 7b 73 74 72 20 65 76 65 6e 74 7d 20 7b p {{str event} {
3cd0: 6d 61 70 20 7b 7b 73 74 72 20 6c 61 62 65 6c 7d map {{str label}
3ce0: 20 7b 73 74 72 20 7b 74 69 6d 65 20 62 65 67 61 {str {time bega
3cf0: 6e 7d 7d 5c 0a 20 20 20 20 20 20 20 20 20 20 20 n}}\.
3d00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3d10: 20 20 20 20 20 20 20 20 7b 73 74 72 20 64 61 74 {str dat
3d20: 65 7d 20 7b 74 69 6d 65 73 74 61 6d 70 20 30 20 e} {timestamp 0
3d30: 30 7d 7d 7d 7d 7d 7d 0a 0a 74 63 6c 74 65 73 74 0}}}}}}..tcltest
3d40: 3a 3a 74 65 73 74 20 65 78 74 2d 74 69 6d 65 73 ::test ext-times
3d50: 74 61 6d 70 2d 32 20 74 69 6d 65 73 74 61 6d 70 tamp-2 timestamp
3d60: 33 32 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 73 32 -body {. s
3d70: 65 74 20 65 6e 63 20 5b 6d 73 67 70 61 63 6b 20 et enc [msgpack
3d80: 70 61 63 6b 20 74 69 6d 65 73 74 61 6d 70 33 32 pack timestamp32
3d90: 20 31 35 39 38 34 35 39 38 33 31 5d 0a 20 20 20 1598459831].
3da0: 20 6c 69 73 74 20 5b 62 69 6e 61 72 79 20 65 6e list [binary en
3db0: 63 6f 64 65 20 68 65 78 20 24 65 6e 63 5d 20 5b code hex $enc] [
3dc0: 6d 73 67 70 61 63 6b 20 75 6e 70 61 63 6b 20 24 msgpack unpack $
3dd0: 65 6e 63 5d 0a 7d 20 2d 72 65 73 75 6c 74 20 7b enc].} -result {
3de0: 64 36 66 66 35 66 34 36 38 66 62 37 20 7b 7b 74 d6ff5f468fb7 {{t
3df0: 69 6d 65 73 74 61 6d 70 20 31 35 39 38 34 35 39 imestamp 1598459
3e00: 38 33 31 20 30 7d 7d 7d 0a 0a 74 63 6c 74 65 73 831 0}}}..tcltes
3e10: 74 3a 3a 74 65 73 74 20 65 78 74 2d 74 69 6d 65 t::test ext-time
3e20: 73 74 61 6d 70 2d 33 20 74 69 6d 65 73 74 61 6d stamp-3 timestam
3e30: 70 36 34 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 p64 -body {.
3e40: 73 65 74 20 65 6e 63 20 7b 7d 0a 20 20 20 20 6c set enc {}. l
3e50: 61 70 70 65 6e 64 20 65 6e 63 20 5b 6d 73 67 70 append enc [msgp
3e60: 61 63 6b 20 70 61 63 6b 20 74 69 6d 65 73 74 61 ack pack timesta
3e70: 6d 70 36 34 20 31 35 39 38 34 35 39 38 33 31 20 mp64 1598459831
3e80: 30 5d 0a 20 20 20 20 6c 61 70 70 65 6e 64 20 65 0]. lappend e
3e90: 6e 63 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b nc [msgpack pack
3ea0: 20 74 69 6d 65 73 74 61 6d 70 36 34 20 31 35 39 timestamp64 159
3eb0: 38 34 35 39 38 33 31 20 31 32 33 34 35 36 37 38 8459831 12345678
3ec0: 39 5d 0a 20 20 20 20 6c 61 70 70 65 6e 64 20 65 9]. lappend e
3ed0: 6e 63 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b nc [msgpack pack
3ee0: 20 74 69 6d 65 73 74 61 6d 70 36 34 20 31 35 39 timestamp64 159
3ef0: 38 34 35 39 38 33 31 20 39 39 39 39 39 39 39 39 8459831 99999999
3f00: 39 5d 0a 0a 20 20 20 20 66 6c 61 74 6d 61 70 20 9].. flatmap
3f10: 78 20 24 65 6e 63 20 7b 0a 20 20 20 20 20 20 20 x $enc {.
3f20: 20 6c 69 73 74 20 5b 62 69 6e 61 72 79 20 65 6e list [binary en
3f30: 63 6f 64 65 20 68 65 78 20 24 78 5d 20 5b 6d 73 code hex $x] [ms
3f40: 67 70 61 63 6b 20 75 6e 70 61 63 6b 20 24 78 5d gpack unpack $x]
3f50: 0a 20 20 20 20 7d 0a 7d 20 2d 72 65 73 75 6c 74 . }.} -result
3f60: 20 7b 64 37 66 66 30 30 30 30 30 30 30 30 35 66 {d7ff000000005f
3f70: 34 36 38 66 62 37 20 7b 7b 74 69 6d 65 73 74 61 468fb7 {{timesta
3f80: 6d 70 20 31 35 39 38 34 35 39 38 33 31 20 30 7d mp 1598459831 0}
3f90: 7d 5c 0a 20 20 20 20 20 20 20 20 20 20 20 64 37 }\. d7
3fa0: 66 66 31 64 36 66 33 34 35 34 35 66 34 36 38 66 ff1d6f34545f468f
3fb0: 62 37 20 7b 7b 74 69 6d 65 73 74 61 6d 70 20 31 b7 {{timestamp 1
3fc0: 35 39 38 34 35 39 38 33 31 20 31 32 33 34 35 36 598459831 123456
3fd0: 37 38 39 7d 7d 5c 0a 20 20 20 20 20 20 20 20 20 789}}\.
3fe0: 20 20 64 37 66 66 65 65 36 62 32 37 66 63 35 66 d7ffee6b27fc5f
3ff0: 34 36 38 66 62 37 20 7b 7b 74 69 6d 65 73 74 61 468fb7 {{timesta
4000: 6d 70 20 31 35 39 38 34 35 39 38 33 31 20 39 39 mp 1598459831 99
4010: 39 39 39 39 39 39 39 7d 7d 7d 0a 0a 74 63 6c 74 9999999}}}..tclt
4020: 65 73 74 3a 3a 74 65 73 74 20 65 78 74 2d 74 69 est::test ext-ti
4030: 6d 65 73 74 61 6d 70 2d 34 20 74 69 6d 65 73 74 mestamp-4 timest
4040: 61 6d 70 39 36 20 2d 62 6f 64 79 20 7b 0a 20 20 amp96 -body {.
4050: 20 20 73 65 74 20 65 6e 63 20 7b 7d 0a 20 20 20 set enc {}.
4060: 20 6c 61 70 70 65 6e 64 20 65 6e 63 20 5b 6d 73 lappend enc [ms
4070: 67 70 61 63 6b 20 70 61 63 6b 20 74 69 6d 65 73 gpack pack times
4080: 74 61 6d 70 39 36 20 31 35 39 38 34 35 39 38 33 tamp96 159845983
4090: 31 20 30 5d 0a 20 20 20 20 6c 61 70 70 65 6e 64 1 0]. lappend
40a0: 20 65 6e 63 20 5b 6d 73 67 70 61 63 6b 20 70 61 enc [msgpack pa
40b0: 63 6b 20 74 69 6d 65 73 74 61 6d 70 39 36 20 31 ck timestamp96 1
40c0: 35 39 38 34 35 39 38 33 31 20 31 32 33 34 35 36 598459831 123456
40d0: 37 38 39 5d 0a 20 20 20 20 6c 61 70 70 65 6e 64 789]. lappend
40e0: 20 65 6e 63 20 5b 6d 73 67 70 61 63 6b 20 70 61 enc [msgpack pa
40f0: 63 6b 20 74 69 6d 65 73 74 61 6d 70 39 36 20 31 ck timestamp96 1
4100: 35 39 38 34 35 39 38 33 31 20 39 39 39 39 39 39 598459831 999999
4110: 39 39 39 5d 0a 0a 20 20 20 20 73 65 74 20 74 74 999].. set tt
4120: 20 7b 7d 0a 20 20 20 20 66 6c 61 74 6d 61 70 20 {}. flatmap
4130: 78 20 24 65 6e 63 20 7b 0a 20 20 20 20 20 20 20 x $enc {.
4140: 20 6c 69 73 74 20 5b 62 69 6e 61 72 79 20 65 6e list [binary en
4150: 63 6f 64 65 20 68 65 78 20 24 78 5d 20 5b 6d 73 code hex $x] [ms
4160: 67 70 61 63 6b 20 75 6e 70 61 63 6b 20 24 78 5d gpack unpack $x]
4170: 0a 20 20 20 20 7d 0a 7d 20 2d 72 65 73 75 6c 74 . }.} -result
4180: 20 7b 63 37 30 63 66 66 30 30 30 30 30 30 30 30 {c70cff00000000
4190: 30 30 30 30 30 30 30 30 35 66 34 36 38 66 62 37 000000005f468fb7
41a0: 20 7b 7b 74 69 6d 65 73 74 61 6d 70 20 31 35 39 {{timestamp 159
41b0: 38 34 35 39 38 33 31 20 30 7d 7d 5c 0a 20 20 20 8459831 0}}\.
41c0: 20 20 20 20 20 20 20 20 63 37 30 63 66 66 30 37 c70cff07
41d0: 35 62 63 64 31 35 30 30 30 30 30 30 30 30 35 66 5bcd15000000005f
41e0: 34 36 38 66 62 37 20 7b 7b 74 69 6d 65 73 74 61 468fb7 {{timesta
41f0: 6d 70 20 31 35 39 38 34 35 39 38 33 31 20 31 32 mp 1598459831 12
4200: 33 34 35 36 37 38 39 7d 7d 5c 0a 20 20 20 20 20 3456789}}\.
4210: 20 20 20 20 20 20 63 37 30 63 66 66 33 62 39 61 c70cff3b9a
4220: 63 39 66 66 30 30 30 30 30 30 30 30 35 66 34 36 c9ff000000005f46
4230: 38 66 62 37 20 7b 7b 74 69 6d 65 73 74 61 6d 70 8fb7 {{timestamp
4240: 20 31 35 39 38 34 35 39 38 33 31 20 39 39 39 39 1598459831 9999
4250: 39 39 39 39 39 7d 7d 7d 0a 0a 74 63 6c 74 65 73 99999}}}..tcltes
4260: 74 3a 3a 74 65 73 74 20 65 78 74 2d 74 69 6d 65 t::test ext-time
4270: 73 74 61 6d 70 2d 35 20 7b 6d 69 6c 6c 69 73 65 stamp-5 {millise
4280: 63 6f 6e 64 73 20 61 6e 64 20 6d 69 63 72 6f 73 conds and micros
4290: 65 63 6f 6e 64 73 7d 20 2d 62 6f 64 79 20 7b 0a econds} -body {.
42a0: 20 20 20 20 73 65 74 20 65 6e 63 20 7b 7d 0a 20 set enc {}.
42b0: 20 20 20 6c 61 70 70 65 6e 64 20 65 6e 63 20 5b lappend enc [
42c0: 6d 73 67 70 61 63 6b 20 70 61 63 6b 20 6d 69 6c msgpack pack mil
42d0: 6c 69 73 65 63 6f 6e 64 73 20 31 35 39 38 34 36 liseconds 159846
42e0: 33 33 30 38 37 36 38 5d 0a 20 20 20 20 6c 61 70 3308768]. lap
42f0: 70 65 6e 64 20 65 6e 63 20 5b 6d 73 67 70 61 63 pend enc [msgpac
4300: 6b 20 70 61 63 6b 20 6d 69 63 72 6f 73 65 63 6f k pack microseco
4310: 6e 64 73 20 31 35 39 38 34 36 33 33 30 30 36 34 nds 159846330064
4320: 32 34 36 38 5d 0a 0a 20 20 20 20 66 6c 61 74 6d 2468].. flatm
4330: 61 70 20 78 20 24 65 6e 63 20 7b 0a 20 20 20 20 ap x $enc {.
4340: 20 20 20 20 6c 69 73 74 20 5b 62 69 6e 61 72 79 list [binary
4350: 20 65 6e 63 6f 64 65 20 68 65 78 20 24 78 5d 20 encode hex $x]
4360: 5b 6d 73 67 70 61 63 6b 20 75 6e 70 61 63 6b 20 [msgpack unpack
4370: 24 78 5d 0a 20 20 20 20 7d 0a 7d 20 2d 72 65 73 $x]. }.} -res
4380: 75 6c 74 20 7b 63 37 30 63 66 66 32 64 63 36 63 ult {c70cff2dc6c
4390: 30 30 30 30 30 30 30 30 30 30 30 35 66 34 36 39 000000000005f469
43a0: 64 34 63 5c 0a 20 20 20 20 20 20 20 20 20 20 20 d4c\.
43b0: 7b 7b 74 69 6d 65 73 74 61 6d 70 20 31 35 39 38 {{timestamp 1598
43c0: 34 36 33 33 30 38 20 37 36 38 30 30 30 30 30 30 463308 768000000
43d0: 7d 7d 5c 0a 20 20 20 20 20 20 20 20 20 20 20 63 }}\. c
43e0: 37 30 63 66 66 32 36 34 62 34 38 61 30 30 30 30 70cff264b48a0000
43f0: 30 30 30 30 30 35 66 34 36 39 64 34 34 5c 0a 20 000005f469d44\.
4400: 20 20 20 20 20 20 20 20 20 20 7b 7b 74 69 6d 65 {{time
4410: 73 74 61 6d 70 20 31 35 39 38 34 36 33 33 30 30 stamp 1598463300
4420: 20 36 34 32 34 36 38 30 30 30 7d 7d 7d 0a 0a 0a 642468000}}}...
4430: 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 20 65 78 tcltest::test ex
4440: 74 2d 75 6e 70 61 63 6b 65 72 2d 31 20 7b 41 64 t-unpacker-1 {Ad
4450: 64 20 63 75 73 74 6f 6d 20 75 6e 70 61 63 6b 65 d custom unpacke
4460: 72 7d 20 2d 73 65 74 75 70 20 7b 0a 20 20 20 20 r} -setup {.
4470: 73 65 74 20 75 70 20 5b 6d 73 67 70 61 63 6b 3a set up [msgpack:
4480: 3a 75 6e 70 61 63 6b 65 72 20 6e 65 77 5d 0a 7d :unpacker new].}
4490: 20 2d 63 6c 65 61 6e 75 70 20 7b 0a 20 20 20 20 -cleanup {.
44a0: 63 61 74 63 68 20 7b 20 24 75 70 20 64 65 73 74 catch { $up dest
44b0: 72 6f 79 20 7d 0a 20 20 20 20 72 65 6e 61 6d 65 roy }. rename
44c0: 20 3a 3a 78 6f 72 20 7b 7d 0a 7d 20 2d 62 6f 64 ::xor {}.} -bod
44d0: 79 20 7b 0a 20 20 20 20 70 72 6f 63 20 3a 3a 78 y {. proc ::x
44e0: 6f 72 20 7b 6e 20 74 79 70 65 20 64 61 74 61 7d or {n type data}
44f0: 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 7b 24 {. if {$
4500: 74 79 70 65 20 21 3d 20 31 30 30 7d 20 7b 20 65 type != 100} { e
4510: 72 72 6f 72 20 5b 6c 69 73 74 20 77 72 6f 6e 67 rror [list wrong
4520: 20 74 79 70 65 3a 20 24 74 79 70 65 5d 20 7d 0a type: $type] }.
4530: 0a 20 20 20 20 20 20 20 20 73 65 74 20 72 65 73 . set res
4540: 20 7b 7d 0a 20 20 20 20 20 20 20 20 66 6f 72 65 {}. fore
4550: 61 63 68 20 62 20 5b 73 70 6c 69 74 20 24 64 61 ach b [split $da
4560: 74 61 20 7b 7d 5d 20 7b 0a 20 20 20 20 20 20 20 ta {}] {.
4570: 20 20 20 20 20 73 65 74 20 63 6f 64 65 20 5b 73 set code [s
4580: 63 61 6e 20 24 62 20 25 63 5d 0a 20 20 20 20 20 can $b %c].
4590: 20 20 20 20 20 20 20 61 70 70 65 6e 64 20 72 65 append re
45a0: 73 20 5b 66 6f 72 6d 61 74 20 25 63 20 5b 65 78 s [format %c [ex
45b0: 70 72 20 7b 20 24 63 6f 64 65 20 5e 20 24 6e 20 pr { $code ^ $n
45c0: 7d 5d 5d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 }]]. }..
45d0: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 5b 6c return [l
45e0: 69 73 74 20 65 6e 63 72 79 70 74 65 64 20 24 72 ist encrypted $r
45f0: 65 73 5d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 24 es]. }.. $
4600: 75 70 20 73 65 74 5f 65 78 74 5f 75 6e 70 61 63 up set_ext_unpac
4610: 6b 65 72 20 39 39 20 7b 3a 3a 78 6f 72 20 34 32 ker 99 {::xor 42
4620: 7d 0a 20 20 20 20 24 75 70 20 73 65 74 5f 65 78 }. $up set_ex
4630: 74 5f 75 6e 70 61 63 6b 65 72 20 31 30 30 20 7b t_unpacker 100 {
4640: 3a 3a 78 6f 72 20 35 7d 0a 20 20 20 20 24 75 70 ::xor 5}. $up
4650: 20 73 65 74 5f 65 78 74 5f 75 6e 70 61 63 6b 65 set_ext_unpacke
4660: 72 20 31 30 30 30 20 7b 3a 3a 78 6f 72 20 30 7d r 1000 {::xor 0}
4670: 0a 0a 20 20 20 20 24 75 70 20 75 6e 70 61 63 6b .. $up unpack
4680: 5f 73 74 72 69 6e 67 20 5b 6d 73 67 70 61 63 6b _string [msgpack
4690: 20 70 61 63 6b 20 65 78 74 20 31 30 30 20 4d 60 pack ext 100 M`
46a0: 69 69 6a 24 5d 0a 7d 20 2d 72 65 73 75 6c 74 20 iij$].} -result
46b0: 7b 7b 65 6e 63 72 79 70 74 65 64 20 48 65 6c 6c {{encrypted Hell
46c0: 6f 21 7d 7d 0a 0a 74 63 6c 74 65 73 74 3a 3a 74 o!}}..tcltest::t
46d0: 65 73 74 20 65 78 74 2d 75 6e 70 61 63 6b 65 72 est ext-unpacker
46e0: 2d 32 20 7b 52 65 6d 6f 76 65 20 74 69 6d 65 73 -2 {Remove times
46f0: 74 61 6d 70 20 75 6e 70 61 63 6b 65 72 7d 20 2d tamp unpacker} -
4700: 73 65 74 75 70 20 7b 0a 20 20 20 20 73 65 74 20 setup {. set
4710: 75 70 20 5b 6d 73 67 70 61 63 6b 3a 3a 75 6e 70 up [msgpack::unp
4720: 61 63 6b 65 72 20 6e 65 77 5d 0a 7d 20 2d 63 6c acker new].} -cl
4730: 65 61 6e 75 70 20 7b 0a 20 20 20 20 63 61 74 63 eanup {. catc
4740: 68 20 7b 20 24 75 70 20 64 65 73 74 72 6f 79 20 h { $up destroy
4750: 7d 0a 7d 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 }.} -body {.
4760: 24 75 70 20 73 65 74 5f 65 78 74 5f 75 6e 70 61 $up set_ext_unpa
4770: 63 6b 65 72 20 2d 31 20 7b 7d 0a 20 20 20 20 24 cker -1 {}. $
4780: 75 70 20 75 6e 70 61 63 6b 5f 73 74 72 69 6e 67 up unpack_string
4790: 20 5b 6d 73 67 70 61 63 6b 20 70 61 63 6b 20 74 [msgpack pack t
47a0: 69 6d 65 73 74 61 6d 70 33 32 20 31 35 39 38 34 imestamp32 15984
47b0: 35 39 38 33 31 5d 0a 7d 20 2d 72 65 73 75 6c 74 59831].} -result
47c0: 20 22 7b 65 78 74 20 2d 31 20 5c 78 35 66 5c 78 "{ext -1 \x5f\x
47d0: 34 36 5c 78 38 66 5c 78 62 37 7d 22 0a 0a 74 63 46\x8f\xb7}"..tc
47e0: 6c 74 65 73 74 3a 3a 74 65 73 74 20 65 78 74 2d ltest::test ext-
47f0: 75 6e 70 61 63 6b 65 72 2d 33 20 7b 47 65 74 20 unpacker-3 {Get
4800: 65 78 74 20 75 6e 70 61 63 6b 65 72 73 7d 20 2d ext unpackers} -
4810: 73 65 74 75 70 20 7b 0a 20 20 20 20 73 65 74 20 setup {. set
4820: 75 70 20 5b 6d 73 67 70 61 63 6b 3a 3a 75 6e 70 up [msgpack::unp
4830: 61 63 6b 65 72 20 6e 65 77 5d 0a 7d 20 2d 63 6c acker new].} -cl
4840: 65 61 6e 75 70 20 7b 0a 20 20 20 20 63 61 74 63 eanup {. catc
4850: 68 20 7b 20 24 75 70 20 64 65 73 74 72 6f 79 20 h { $up destroy
4860: 7d 0a 7d 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 }.} -body {.
4870: 73 65 74 20 74 74 20 7b 7d 0a 20 20 20 20 6c 61 set tt {}. la
4880: 70 70 65 6e 64 20 74 74 20 5b 24 75 70 20 73 65 ppend tt [$up se
4890: 74 5f 65 78 74 5f 75 6e 70 61 63 6b 65 72 5d 0a t_ext_unpacker].
48a0: 20 20 20 20 6c 61 70 70 65 6e 64 20 74 74 20 5b lappend tt [
48b0: 24 75 70 20 73 65 74 5f 65 78 74 5f 75 6e 70 61 $up set_ext_unpa
48c0: 63 6b 65 72 20 2d 31 5d 0a 7d 20 2d 6d 61 74 63 cker -1].} -matc
48d0: 68 20 72 65 67 65 78 70 20 2d 72 65 73 75 6c 74 h regexp -result
48e0: 20 7b 5c 73 2a 2d 31 20 5c 7b 61 70 70 6c 79 20 {\s*-1 \{apply
48f0: 5c 7b 5c 7b 74 79 70 65 20 64 61 74 61 5c 7d 2e \{\{type data\}.
4900: 2a 61 70 70 6c 79 7d 0a 0a 0a 74 63 6c 74 65 73 *apply}...tcltes
4910: 74 3a 3a 74 65 73 74 20 70 61 63 6b 2d 75 6e 6b t::test pack-unk
4920: 6e 6f 77 6e 2d 74 79 70 65 20 70 61 63 6b 2d 75 nown-type pack-u
4930: 6e 6b 6e 6f 77 6e 2d 74 79 70 65 20 2d 62 6f 64 nknown-type -bod
4940: 79 20 7b 0a 20 20 20 20 6d 73 67 70 61 63 6b 20 y {. msgpack
4950: 70 61 63 6b 20 66 6f 6f 20 39 39 0a 7d 20 2d 72 pack foo 99.} -r
4960: 65 74 75 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 eturnCodes error
4970: 20 2d 72 65 73 75 6c 74 20 7b 75 6e 6b 6e 6f 77 -result {unknow
4980: 6e 20 74 79 70 65 3a 20 66 6f 6f 7d 0a 0a 0a 0a n type: foo}....
4990: 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 20 75 6e tcltest::test un
49a0: 70 61 63 6b 2d 6e 6f 74 2d 6c 6f 6e 67 2d 65 6e pack-not-long-en
49b0: 6f 75 67 68 2d 61 72 72 61 79 20 75 6e 70 61 63 ough-array unpac
49c0: 6b 2d 6e 6f 74 2d 6c 6f 6e 67 2d 65 6e 6f 75 67 k-not-long-enoug
49d0: 68 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 6d 73 h -body {. ms
49e0: 67 70 61 63 6b 20 75 6e 70 61 63 6b 20 5c 78 44 gpack unpack \xD
49f0: 43 5c 78 30 30 5c 78 30 35 5c 78 46 46 0a 7d 20 C\x00\x05\xFF.}
4a00: 2d 6d 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 74 -match glob -ret
4a10: 75 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 2d urnCodes error -
4a20: 72 65 73 75 6c 74 20 7b 69 6e 70 75 74 20 73 74 result {input st
4a30: 72 69 6e 67 20 6e 6f 74 20 6c 6f 6e 67 20 65 6e ring not long en
4a40: 6f 75 67 68 2a 7d 0a 0a 74 63 6c 74 65 73 74 3a ough*}..tcltest:
4a50: 3a 74 65 73 74 20 75 6e 70 61 63 6b 2d 6e 6f 74 :test unpack-not
4a60: 2d 6c 6f 6e 67 2d 65 6e 6f 75 67 68 2d 62 69 6e -long-enough-bin
4a70: 20 75 6e 70 61 63 6b 2d 6e 6f 74 2d 6c 6f 6e 67 unpack-not-long
4a80: 2d 65 6e 6f 75 67 68 20 2d 62 6f 64 79 20 7b 0a -enough -body {.
4a90: 20 20 20 20 6d 73 67 70 61 63 6b 20 75 6e 70 61 msgpack unpa
4aa0: 63 6b 20 5c 78 43 34 5c 78 30 35 5c 78 46 46 0a ck \xC4\x05\xFF.
4ab0: 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 65 } -returnCodes e
4ac0: 72 72 6f 72 20 2d 72 65 73 75 6c 74 20 7b 69 6e rror -result {in
4ad0: 70 75 74 20 73 74 72 69 6e 67 20 6e 6f 74 20 6c put string not l
4ae0: 6f 6e 67 20 65 6e 6f 75 67 68 2c 5c 0a 20 20 20 ong enough,\.
4af0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4b00: 20 20 20 20 20 20 20 20 20 20 20 6e 65 65 64 20 need
4b10: 35 20 62 79 74 65 28 73 29 2c 20 6f 6e 6c 79 20 5 byte(s), only
4b20: 31 20 6c 65 66 74 7d 0a 0a 74 63 6c 74 65 73 74 1 left}..tcltest
4b30: 3a 3a 74 65 73 74 20 75 6e 70 61 63 6b 2d 6e 6f ::test unpack-no
4b40: 74 2d 6c 6f 6e 67 2d 65 6e 6f 75 67 68 2d 65 78 t-long-enough-ex
4b50: 74 20 75 6e 70 61 63 6b 2d 6e 6f 74 2d 6c 6f 6e t unpack-not-lon
4b60: 67 2d 65 6e 6f 75 67 68 20 2d 62 6f 64 79 20 7b g-enough -body {
4b70: 0a 20 20 20 20 6d 73 67 70 61 63 6b 20 75 6e 70 . msgpack unp
4b80: 61 63 6b 20 5c 78 43 37 5c 78 30 35 5c 78 30 31 ack \xC7\x05\x01
4b90: 5c 78 46 46 0a 7d 20 2d 72 65 74 75 72 6e 43 6f \xFF.} -returnCo
4ba0: 64 65 73 20 65 72 72 6f 72 20 2d 72 65 73 75 6c des error -resul
4bb0: 74 20 7b 69 6e 70 75 74 20 73 74 72 69 6e 67 20 t {input string
4bc0: 6e 6f 74 20 6c 6f 6e 67 20 65 6e 6f 75 67 68 2c not long enough,
4bd0: 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 \.
4be0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4bf0: 6e 65 65 64 20 35 20 62 79 74 65 28 73 29 2c 20 need 5 byte(s),
4c00: 6f 6e 6c 79 20 31 20 6c 65 66 74 7d 0a 0a 74 63 only 1 left}..tc
4c10: 6c 74 65 73 74 3a 3a 74 65 73 74 20 75 6e 70 61 ltest::test unpa
4c20: 63 6b 2d 6e 6f 74 2d 6c 6f 6e 67 2d 65 6e 6f 75 ck-not-long-enou
4c30: 67 68 2d 73 74 72 20 75 6e 70 61 63 6b 2d 6e 6f gh-str unpack-no
4c40: 74 2d 6c 6f 6e 67 2d 65 6e 6f 75 67 68 20 2d 62 t-long-enough -b
4c50: 6f 64 79 20 7b 0a 20 20 20 20 6d 73 67 70 61 63 ody {. msgpac
4c60: 6b 20 75 6e 70 61 63 6b 20 5c 78 44 39 5c 78 30 k unpack \xD9\x0
4c70: 35 5c 78 46 46 0a 7d 20 2d 72 65 74 75 72 6e 43 5\xFF.} -returnC
4c80: 6f 64 65 73 20 65 72 72 6f 72 20 2d 72 65 73 75 odes error -resu
4c90: 6c 74 20 7b 69 6e 70 75 74 20 73 74 72 69 6e 67 lt {input string
4ca0: 20 6e 6f 74 20 6c 6f 6e 67 20 65 6e 6f 75 67 68 not long enough
4cb0: 2c 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ,\.
4cc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4cd0: 20 6e 65 65 64 20 35 20 62 79 74 65 28 73 29 2c need 5 byte(s),
4ce0: 20 6f 6e 6c 79 20 31 20 6c 65 66 74 7d 0a 0a 70 only 1 left}..p
4cf0: 72 6f 63 20 6d 74 73 5f 75 6e 68 65 78 20 68 65 roc mts_unhex he
4d00: 78 20 7b 0a 20 20 20 20 62 69 6e 61 72 79 20 64 x {. binary d
4d10: 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72 69 6e ecode hex [strin
4d20: 67 20 6d 61 70 20 7b 2d 20 7b 7d 7d 20 24 68 65 g map {- {}} $he
4d30: 78 5d 0a 7d 0a 0a 70 72 6f 63 20 6d 74 73 5f 74 x].}..proc mts_t
4d40: 65 73 74 5f 66 69 6c 65 20 66 69 6c 65 6e 61 6d est_file filenam
4d50: 65 20 7b 0a 20 20 20 20 73 65 74 20 63 68 20 5b e {. set ch [
4d60: 6f 70 65 6e 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 open [file join
4d70: 24 3a 3a 6d 74 73 50 61 74 68 20 24 66 69 6c 65 $::mtsPath $file
4d80: 6e 61 6d 65 5d 20 72 5d 0a 20 20 20 20 63 68 61 name] r]. cha
4d90: 6e 20 63 6f 6e 66 69 67 75 72 65 20 24 63 68 20 n configure $ch
4da0: 2d 65 6e 63 6f 64 69 6e 67 20 75 74 66 2d 38 0a -encoding utf-8.
4db0: 20 20 20 20 73 65 74 20 79 61 6d 6c 20 5b 72 65 set yaml [re
4dc0: 61 64 20 24 63 68 5d 0a 20 20 20 20 63 6c 6f 73 ad $ch]. clos
4dd0: 65 20 24 63 68 0a 0a 20 20 20 20 72 65 74 75 72 e $ch.. retur
4de0: 6e 20 24 79 61 6d 6c 0a 7d 0a 0a 70 72 6f 63 20 n $yaml.}..proc
4df0: 6d 74 73 5f 74 65 73 74 20 7b 66 69 6c 65 6e 61 mts_test {filena
4e00: 6d 65 20 7b 6b 65 79 20 25 41 55 54 4f 25 7d 7d me {key %AUTO%}}
4e10: 20 7b 0a 20 20 20 20 73 65 74 20 74 65 73 74 73 {. set tests
4e20: 20 5b 79 61 6d 6c 3a 3a 79 61 6d 6c 32 64 69 63 [yaml::yaml2dic
4e30: 74 20 5b 6d 74 73 5f 74 65 73 74 5f 66 69 6c 65 t [mts_test_file
4e40: 20 24 66 69 6c 65 6e 61 6d 65 5d 5d 0a 0a 20 20 $filename]]..
4e50: 20 20 66 6c 61 74 6d 61 70 20 74 65 73 74 20 24 flatmap test $
4e60: 74 65 73 74 73 20 7b 0a 20 20 20 20 20 20 20 20 tests {.
4e70: 73 65 74 20 72 65 66 20 5b 64 69 63 74 20 67 65 set ref [dict ge
4e80: 74 20 24 74 65 73 74 20 5b 69 66 20 7b 24 6b 65 t $test [if {$ke
4e90: 79 20 65 71 20 7b 25 41 55 54 4f 25 7d 7d 20 7b y eq {%AUTO%}} {
4ea0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 73 65 . lse
4eb0: 61 72 63 68 20 2d 69 6e 6c 69 6e 65 20 2d 6e 6f arch -inline -no
4ec0: 74 20 5b 64 69 63 74 20 6b 65 79 73 20 24 74 65 t [dict keys $te
4ed0: 73 74 5d 20 6d 73 67 70 61 63 6b 0a 20 20 20 20 st] msgpack.
4ee0: 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 } else {.
4ef0: 20 20 20 20 20 20 20 20 20 6c 69 6e 64 65 78 20 lindex
4f00: 24 6b 65 79 0a 20 20 20 20 20 20 20 20 7d 5d 5d $key. }]]
4f10: 0a 0a 20 20 20 20 20 20 20 20 73 65 74 20 75 6e .. set un
4f20: 70 61 63 6b 65 64 20 5b 66 6c 61 74 6d 61 70 20 packed [flatmap
4f30: 78 20 5b 64 69 63 74 20 67 65 74 20 24 74 65 73 x [dict get $tes
4f40: 74 20 6d 73 67 70 61 63 6b 5d 20 7b 0a 20 20 20 t msgpack] {.
4f50: 20 20 20 20 20 20 20 20 20 73 65 74 20 70 61 63 set pac
4f60: 6b 65 64 20 5b 6d 74 73 5f 75 6e 68 65 78 20 24 ked [mts_unhex $
4f70: 78 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d x]. m
4f80: 73 67 70 61 63 6b 20 75 6e 70 61 63 6b 20 24 70 sgpack unpack $p
4f90: 61 63 6b 65 64 0a 20 20 20 20 20 20 20 20 7d 5d acked. }]
4fa0: 0a 0a 20 20 20 20 20 20 20 20 6c 69 73 74 20 24 .. list $
4fb0: 72 65 66 20 24 75 6e 70 61 63 6b 65 64 0a 20 20 ref $unpacked.
4fc0: 20 20 7d 0a 7d 0a 0a 74 63 6c 74 65 73 74 3a 3a }.}..tcltest::
4fd0: 74 65 73 74 20 6d 73 67 70 61 63 6b 2d 74 65 73 test msgpack-tes
4fe0: 74 2d 73 75 69 74 65 2d 61 72 72 61 79 20 7b 7d t-suite-array {}
4ff0: 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 73 65 74 -body {. set
5000: 20 66 69 6c 65 6e 61 6d 65 20 34 30 2e 61 72 72 filename 40.arr
5010: 61 79 2e 79 61 6d 6c 0a 0a 20 20 20 20 66 6f 72 ay.yaml.. for
5020: 65 61 63 68 20 7b 72 65 66 20 76 61 6c 75 65 73 each {ref values
5030: 7d 20 5b 6d 74 73 5f 74 65 73 74 20 24 66 69 6c } [mts_test $fil
5040: 65 6e 61 6d 65 5d 20 7b 0a 20 20 20 20 20 20 20 ename] {.
5050: 20 66 6f 72 65 61 63 68 20 76 61 6c 75 65 20 24 foreach value $
5060: 76 61 6c 75 65 73 20 7b 0a 20 20 20 20 20 20 20 values {.
5070: 20 20 20 20 20 73 65 74 20 61 20 5b 6c 6d 61 70 set a [lmap
5080: 20 78 20 5b 6c 69 6e 64 65 78 20 24 76 61 6c 75 x [lindex $valu
5090: 65 20 31 5d 20 7b 20 6c 69 6e 64 65 78 20 24 78 e 1] { lindex $x
50a0: 20 31 20 7d 5d 0a 20 20 20 20 20 20 20 20 20 20 1 }].
50b0: 20 20 69 66 20 7b 24 61 20 6e 65 20 24 72 65 66 if {$a ne $ref
50c0: 7d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 } {.
50d0: 20 20 20 20 65 72 72 6f 72 20 5b 6c 69 73 74 20 error [list
50e0: 75 6e 70 61 63 6b 65 64 20 61 72 72 61 79 20 24 unpacked array $
50f0: 61 20 6e 65 20 24 72 65 66 20 69 6e 20 24 66 69 a ne $ref in $fi
5100: 6c 65 6e 61 6d 65 5d 0a 20 20 20 20 20 20 20 20 lename].
5110: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a }. }.
5120: 20 20 20 20 7d 0a 7d 20 2d 72 65 73 75 6c 74 20 }.} -result
5130: 7b 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 {} -constraints
5140: 79 61 6d 6c 0a 0a 74 63 6c 74 65 73 74 3a 3a 74 yaml..tcltest::t
5150: 65 73 74 20 6d 73 67 70 61 63 6b 2d 74 65 73 74 est msgpack-test
5160: 2d 73 75 69 74 65 2d 62 69 6e 61 72 79 20 7b 7d -suite-binary {}
5170: 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 73 65 74 -body {. set
5180: 20 66 69 6c 65 6e 61 6d 65 20 31 32 2e 62 69 6e filename 12.bin
5190: 61 72 79 2e 79 61 6d 6c 0a 0a 20 20 20 20 66 6f ary.yaml.. fo
51a0: 72 65 61 63 68 20 7b 72 65 66 20 76 61 6c 75 65 reach {ref value
51b0: 73 7d 20 5b 6d 74 73 5f 74 65 73 74 20 24 66 69 s} [mts_test $fi
51c0: 6c 65 6e 61 6d 65 5d 20 7b 0a 20 20 20 20 20 20 lename] {.
51d0: 20 20 73 65 74 20 72 65 66 20 5b 6d 74 73 5f 75 set ref [mts_u
51e0: 6e 68 65 78 20 24 72 65 66 5d 0a 20 20 20 20 20 nhex $ref].
51f0: 20 20 20 66 6f 72 65 61 63 68 20 76 61 6c 75 65 foreach value
5200: 20 24 76 61 6c 75 65 73 20 7b 0a 20 20 20 20 20 $values {.
5210: 20 20 20 20 20 20 20 73 65 74 20 62 20 5b 6c 69 set b [li
5220: 6e 64 65 78 20 24 76 61 6c 75 65 20 31 5d 0a 20 ndex $value 1].
5230: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 7b 24 if {$
5240: 62 20 6e 65 20 24 72 65 66 7d 20 7b 0a 20 20 20 b ne $ref} {.
5250: 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 err
5260: 6f 72 20 5b 6c 69 73 74 20 75 6e 70 61 63 6b 65 or [list unpacke
5270: 64 20 62 69 6e 61 72 79 20 24 62 20 6e 65 20 24 d binary $b ne $
5280: 72 65 66 20 69 6e 20 24 66 69 6c 65 6e 61 6d 65 ref in $filename
5290: 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a ]. }.
52a0: 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a }. }.
52b0: 7d 20 2d 72 65 73 75 6c 74 20 7b 7d 20 2d 63 6f } -result {} -co
52c0: 6e 73 74 72 61 69 6e 74 73 20 79 61 6d 6c 0a 0a nstraints yaml..
52d0: 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 20 6d 73 tcltest::test ms
52e0: 67 70 61 63 6b 2d 74 65 73 74 2d 73 75 69 74 65 gpack-test-suite
52f0: 2d 65 78 74 20 7b 7d 20 2d 62 6f 64 79 20 7b 0a -ext {} -body {.
5300: 20 20 20 20 73 65 74 20 66 69 6c 65 6e 61 6d 65 set filename
5310: 20 36 30 2e 65 78 74 2e 79 61 6d 6c 0a 0a 20 20 60.ext.yaml..
5320: 20 20 66 6f 72 65 61 63 68 20 7b 72 65 66 20 76 foreach {ref v
5330: 61 6c 75 65 73 7d 20 5b 6d 74 73 5f 74 65 73 74 alues} [mts_test
5340: 20 24 66 69 6c 65 6e 61 6d 65 5d 20 7b 0a 20 20 $filename] {.
5350: 20 20 20 20 20 20 6c 73 65 74 20 72 65 66 20 31 lset ref 1
5360: 20 5b 6d 74 73 5f 75 6e 68 65 78 20 5b 6c 69 6e [mts_unhex [lin
5370: 64 65 78 20 24 72 65 66 20 31 5d 5d 0a 20 20 20 dex $ref 1]].
5380: 20 20 20 20 20 66 6f 72 65 61 63 68 20 76 61 6c foreach val
5390: 75 65 20 24 76 61 6c 75 65 73 20 7b 0a 20 20 20 ue $values {.
53a0: 20 20 20 20 20 20 20 20 20 73 65 74 20 65 20 5b set e [
53b0: 6c 72 61 6e 67 65 20 24 76 61 6c 75 65 20 31 20 lrange $value 1
53c0: 65 6e 64 5d 0a 20 20 20 20 20 20 20 20 20 20 20 end].
53d0: 20 69 66 20 7b 24 65 20 6e 65 20 24 72 65 66 7d if {$e ne $ref}
53e0: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {.
53f0: 20 20 20 65 72 72 6f 72 20 5b 6c 69 73 74 20 75 error [list u
5400: 6e 70 61 63 6b 65 64 20 62 69 6e 61 72 79 20 24 npacked binary $
5410: 65 20 6e 65 20 24 72 65 66 20 69 6e 20 24 66 69 e ne $ref in $fi
5420: 6c 65 6e 61 6d 65 5d 0a 20 20 20 20 20 20 20 20 lename].
5430: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a }. }.
5440: 20 20 20 20 7d 0a 7d 20 2d 72 65 73 75 6c 74 20 }.} -result
5450: 7b 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 {} -constraints
5460: 79 61 6d 6c 0a 0a 74 63 6c 74 65 73 74 3a 3a 74 yaml..tcltest::t
5470: 65 73 74 20 6d 73 67 70 61 63 6b 2d 74 65 73 74 est msgpack-test
5480: 2d 73 75 69 74 65 2d 6e 65 73 74 65 64 20 7b 7d -suite-nested {}
5490: 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 73 65 74 -body {. set
54a0: 20 66 69 6c 65 6e 61 6d 65 20 34 32 2e 6e 65 73 filename 42.nes
54b0: 74 65 64 2e 79 61 6d 6c 0a 0a 20 20 20 20 66 6f ted.yaml.. fo
54c0: 72 65 61 63 68 20 7b 72 65 66 20 76 61 6c 75 65 reach {ref value
54d0: 73 7d 20 5b 6d 74 73 5f 74 65 73 74 20 24 66 69 s} [mts_test $fi
54e0: 6c 65 6e 61 6d 65 5d 20 7b 0a 20 20 20 20 20 20 lename] {.
54f0: 20 20 66 6f 72 65 61 63 68 20 76 61 6c 75 65 20 foreach value
5500: 24 76 61 6c 75 65 73 20 7b 0a 20 20 20 20 20 20 $values {.
5510: 20 20 20 20 20 20 73 65 74 20 6d 20 5b 6c 6d 61 set m [lma
5520: 70 20 78 20 5b 6c 69 6e 64 65 78 20 24 76 61 6c p x [lindex $val
5530: 75 65 20 31 5d 20 7b 20 6c 69 6e 64 65 78 20 24 ue 1] { lindex $
5540: 78 20 31 20 7d 5d 0a 20 20 20 20 20 20 20 20 20 x 1 }].
5550: 20 20 20 69 66 20 7b 24 6d 20 6e 65 20 24 72 65 if {$m ne $re
5560: 66 7d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 f} {.
5570: 20 20 20 20 20 65 72 72 6f 72 20 5b 6c 69 73 74 error [list
5580: 20 75 6e 70 61 63 6b 65 64 20 61 72 72 61 79 20 unpacked array
5590: 24 6d 20 6e 65 20 24 72 65 66 20 69 6e 20 24 66 $m ne $ref in $f
55a0: 69 6c 65 6e 61 6d 65 5d 0a 20 20 20 20 20 20 20 ilename].
55b0: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d }. }
55c0: 0a 20 20 20 20 7d 0a 7d 20 2d 72 65 73 75 6c 74 . }.} -result
55d0: 20 7b 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 {} -constraints
55e0: 20 79 61 6d 6c 0a 0a 74 63 6c 74 65 73 74 3a 3a yaml..tcltest::
55f0: 74 65 73 74 20 6d 73 67 70 61 63 6b 2d 74 65 73 test msgpack-tes
5600: 74 2d 73 75 69 74 65 2d 6e 75 6d 62 65 72 20 7b t-suite-number {
5610: 7d 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 66 6f } -body {. fo
5620: 72 65 61 63 68 20 66 69 6c 65 6e 61 6d 65 20 7b reach filename {
5630: 0a 20 20 20 20 20 20 20 20 32 30 2e 6e 75 6d 62 . 20.numb
5640: 65 72 2d 70 6f 73 69 74 69 76 65 2e 79 61 6d 6c er-positive.yaml
5650: 0a 20 20 20 20 20 20 20 20 32 31 2e 6e 75 6d 62 . 21.numb
5660: 65 72 2d 6e 65 67 61 74 69 76 65 2e 79 61 6d 6c er-negative.yaml
5670: 0a 20 20 20 20 20 20 20 20 32 32 2e 6e 75 6d 62 . 22.numb
5680: 65 72 2d 66 6c 6f 61 74 2e 79 61 6d 6c 0a 20 20 er-float.yaml.
5690: 20 20 20 20 20 20 32 33 2e 6e 75 6d 62 65 72 2d 23.number-
56a0: 62 69 67 6e 75 6d 2e 79 61 6d 6c 0a 20 20 20 20 bignum.yaml.
56b0: 7d 20 7b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 } {. fore
56c0: 61 63 68 20 7b 72 65 66 20 76 61 6c 75 65 73 7d ach {ref values}
56d0: 20 5b 6d 74 73 5f 74 65 73 74 20 24 66 69 6c 65 [mts_test $file
56e0: 6e 61 6d 65 5d 20 7b 0a 20 20 20 20 20 20 20 20 name] {.
56f0: 20 20 20 20 66 6f 72 65 61 63 68 20 76 61 6c 75 foreach valu
5700: 65 20 24 76 61 6c 75 65 73 20 7b 0a 20 20 20 20 e $values {.
5710: 20 20 20 20 20 20 20 20 20 20 20 20 73 65 74 20 set
5720: 6e 20 5b 6c 69 6e 64 65 78 20 24 76 61 6c 75 65 n [lindex $value
5730: 20 31 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 1].
5740: 20 20 20 20 69 66 20 7b 24 6e 20 21 3d 20 24 72 if {$n != $r
5750: 65 66 7d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ef} {.
5760: 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 20 error
5770: 5b 6c 69 73 74 20 75 6e 70 61 63 6b 65 64 20 6e [list unpacked n
5780: 75 6d 62 65 72 20 24 6e 20 21 3d 20 24 72 65 66 umber $n != $ref
5790: 20 69 6e 20 24 66 69 6c 65 6e 61 6d 65 5d 0a 20 in $filename].
57a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
57b0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 . }.
57c0: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d }. }.}
57d0: 20 2d 72 65 73 75 6c 74 20 7b 7d 20 2d 63 6f 6e -result {} -con
57e0: 73 74 72 61 69 6e 74 73 20 79 61 6d 6c 0a 0a 74 straints yaml..t
57f0: 63 6c 74 65 73 74 3a 3a 74 65 73 74 20 6d 73 67 cltest::test msg
5800: 70 61 63 6b 2d 74 65 73 74 2d 73 75 69 74 65 2d pack-test-suite-
5810: 73 74 72 69 6e 67 20 7b 7d 20 2d 62 6f 64 79 20 string {} -body
5820: 7b 0a 20 20 20 20 66 6f 72 65 61 63 68 20 66 69 {. foreach fi
5830: 6c 65 6e 61 6d 65 20 7b 0a 20 20 20 20 20 20 20 lename {.
5840: 20 33 30 2e 73 74 72 69 6e 67 2d 61 73 63 69 69 30.string-ascii
5850: 2e 79 61 6d 6c 0a 20 20 20 20 20 20 20 20 33 31 .yaml. 31
5860: 2e 73 74 72 69 6e 67 2d 75 74 66 38 2e 79 61 6d .string-utf8.yam
5870: 6c 0a 20 20 20 20 20 20 20 20 33 32 2e 73 74 72 l. 32.str
5880: 69 6e 67 2d 65 6d 6f 6a 69 2e 79 61 6d 6c 0a 20 ing-emoji.yaml.
5890: 20 20 20 7d 20 7b 0a 20 20 20 20 20 20 20 20 66 } {. f
58a0: 6f 72 65 61 63 68 20 7b 72 65 66 20 76 61 6c 75 oreach {ref valu
58b0: 65 73 7d 20 5b 6d 74 73 5f 74 65 73 74 20 24 66 es} [mts_test $f
58c0: 69 6c 65 6e 61 6d 65 5d 20 7b 0a 20 20 20 20 20 ilename] {.
58d0: 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 76 foreach v
58e0: 61 6c 75 65 20 24 76 61 6c 75 65 73 20 7b 0a 20 alue $values {.
58f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
5900: 65 74 20 73 20 5b 6c 69 6e 64 65 78 20 24 76 61 et s [lindex $va
5910: 6c 75 65 20 31 5d 0a 20 20 20 20 20 20 20 20 20 lue 1].
5920: 20 20 20 20 20 20 20 69 66 20 7b 24 73 20 6e 65 if {$s ne
5930: 20 24 72 65 66 7d 20 7b 0a 20 20 20 20 20 20 20 $ref} {.
5940: 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 err
5950: 6f 72 20 5b 6c 69 73 74 20 75 6e 70 61 63 6b 65 or [list unpacke
5960: 64 20 73 74 72 69 6e 67 20 24 73 20 6e 65 20 24 d string $s ne $
5970: 72 65 66 20 69 6e 20 24 66 69 6c 65 6e 61 6d 65 ref in $filename
5980: 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ].
5990: 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 }.
59a0: 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 }. }.
59b0: 7d 0a 7d 20 2d 72 65 73 75 6c 74 20 7b 7d 20 2d }.} -result {} -
59c0: 63 6f 6e 73 74 72 61 69 6e 74 73 20 79 61 6d 6c constraints yaml
59d0: 0a 0a 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 20 ..tcltest::test
59e0: 6d 73 67 70 61 63 6b 2d 74 65 73 74 2d 73 75 69 msgpack-test-sui
59f0: 74 65 2d 74 69 6d 65 73 74 61 6d 70 20 7b 7d 20 te-timestamp {}
5a00: 2d 62 6f 64 79 20 7b 0a 20 20 20 20 73 65 74 20 -body {. set
5a10: 66 69 6c 65 6e 61 6d 65 20 35 30 2e 74 69 6d 65 filename 50.time
5a20: 73 74 61 6d 70 2e 79 61 6d 6c 0a 0a 20 20 20 20 stamp.yaml..
5a30: 66 6f 72 65 61 63 68 20 7b 72 65 66 20 76 61 6c foreach {ref val
5a40: 75 65 73 7d 20 5b 6d 74 73 5f 74 65 73 74 20 24 ues} [mts_test $
5a50: 66 69 6c 65 6e 61 6d 65 5d 20 7b 0a 20 20 20 20 filename] {.
5a60: 20 20 20 20 66 6f 72 65 61 63 68 20 76 61 6c 75 foreach valu
5a70: 65 20 24 76 61 6c 75 65 73 20 7b 0a 20 20 20 20 e $values {.
5a80: 20 20 20 20 20 20 20 20 73 65 74 20 74 20 5b 6c set t [l
5a90: 72 61 6e 67 65 20 24 76 61 6c 75 65 20 31 20 32 range $value 1 2
5aa0: 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 ]. if
5ab0: 20 7b 24 74 20 6e 65 20 24 72 65 66 7d 20 7b 0a {$t ne $ref} {.
5ac0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5ad0: 65 72 72 6f 72 20 5b 6c 69 73 74 20 75 6e 70 61 error [list unpa
5ae0: 63 6b 65 64 20 74 69 6d 65 73 74 61 6d 70 20 24 cked timestamp $
5af0: 74 20 6e 65 20 24 72 65 66 20 69 6e 20 24 66 69 t ne $ref in $fi
5b00: 6c 65 6e 61 6d 65 5d 0a 20 20 20 20 20 20 20 20 lename].
5b10: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a }. }.
5b20: 20 20 20 20 7d 0a 7d 20 2d 72 65 73 75 6c 74 20 }.} -result
5b30: 7b 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 {} -constraints
5b40: 79 61 6d 6c 0a 0a 74 63 6c 74 65 73 74 3a 3a 74 yaml..tcltest::t
5b50: 65 73 74 20 6d 73 67 70 61 63 6b 2d 74 65 73 74 est msgpack-test
5b60: 2d 73 75 69 74 65 2d 70 61 63 6b 2d 75 74 66 38 -suite-pack-utf8
5b70: 20 7b 7d 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 {} -body {.
5b80: 73 65 74 20 74 65 73 74 73 20 5b 79 61 6d 6c 3a set tests [yaml:
5b90: 3a 79 61 6d 6c 32 64 69 63 74 20 5b 6d 74 73 5f :yaml2dict [mts_
5ba0: 74 65 73 74 5f 66 69 6c 65 20 33 31 2e 73 74 72 test_file 31.str
5bb0: 69 6e 67 2d 75 74 66 38 2e 79 61 6d 6c 5d 5d 0a ing-utf8.yaml]].
5bc0: 0a 20 20 20 20 66 6c 61 74 6d 61 70 20 74 65 73 . flatmap tes
5bd0: 74 20 24 74 65 73 74 73 20 7b 0a 20 20 20 20 20 t $tests {.
5be0: 20 20 20 73 65 74 20 72 65 66 20 5b 64 69 63 74 set ref [dict
5bf0: 20 67 65 74 20 24 74 65 73 74 20 73 74 72 69 6e get $test strin
5c00: 67 5d 0a 20 20 20 20 20 20 20 20 73 65 74 20 68 g]. set h
5c10: 65 78 20 5b 66 6c 61 74 6d 61 70 20 78 20 5b 64 ex [flatmap x [d
5c20: 69 63 74 20 67 65 74 20 24 74 65 73 74 20 6d 73 ict get $test ms
5c30: 67 70 61 63 6b 5d 20 7b 0a 20 20 20 20 20 20 20 gpack] {.
5c40: 20 20 20 20 20 73 74 72 69 6e 67 20 6d 61 70 20 string map
5c50: 7b 2d 20 7b 7d 7d 20 24 78 0a 20 20 20 20 20 20 {- {}} $x.
5c60: 20 20 7d 5d 0a 20 20 20 20 20 20 20 20 73 65 74 }]. set
5c70: 20 68 65 78 50 61 63 6b 65 64 20 5b 62 69 6e 61 hexPacked [bina
5c80: 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 6d ry encode hex [m
5c90: 73 67 70 61 63 6b 20 70 61 63 6b 20 73 74 72 20 sgpack pack str
5ca0: 24 72 65 66 5d 5d 0a 0a 20 20 20 20 20 20 20 20 $ref]]..
5cb0: 69 66 20 7b 24 68 65 78 50 61 63 6b 65 64 20 6e if {$hexPacked n
5cc0: 69 20 24 68 65 78 7d 20 7b 0a 20 20 20 20 20 20 i $hex} {.
5cd0: 20 20 20 20 20 20 65 72 72 6f 72 20 5b 6c 69 73 error [lis
5ce0: 74 20 70 61 63 6b 65 64 20 24 72 65 66 20 65 71 t packed $ref eq
5cf0: 20 24 68 65 78 50 61 63 6b 65 64 20 6e 6f 74 20 $hexPacked not
5d00: 69 6e 20 6c 69 73 74 20 24 68 65 78 5d 0a 20 20 in list $hex].
5d10: 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 20 }. }.}
5d20: 2d 72 65 73 75 6c 74 20 7b 7d 20 2d 63 6f 6e 73 -result {} -cons
5d30: 74 72 61 69 6e 74 73 20 79 61 6d 6c 0a 0a 0a 23 traints yaml...#
5d40: 20 45 78 69 74 20 77 69 74 68 20 61 20 6e 6f 6e Exit with a non
5d50: 7a 65 72 6f 20 73 74 61 74 75 73 20 69 66 20 74 zero status if t
5d60: 68 65 72 65 20 61 72 65 20 66 61 69 6c 65 64 20 here are failed
5d70: 74 65 73 74 73 2e 0a 73 65 74 20 66 61 69 6c 65 tests..set faile
5d80: 64 20 5b 65 78 70 72 20 7b 24 74 63 6c 74 65 73 d [expr {$tcltes
5d90: 74 3a 3a 6e 75 6d 54 65 73 74 73 28 46 61 69 6c t::numTests(Fail
5da0: 65 64 29 20 3e 20 30 7d 5d 0a 0a 74 63 6c 74 65 ed) > 0}]..tclte
5db0: 73 74 3a 3a 63 6c 65 61 6e 75 70 54 65 73 74 73 st::cleanupTests
5dc0: 0a 69 66 20 7b 24 66 61 69 6c 65 64 7d 20 7b 20 .if {$failed} {
5dd0: 65 78 69 74 20 31 20 7d 0a exit 1 }.