cmdr
Hex Artifact Content
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Artifact 4b8318f828ab255a8078e2712b0c6bce5d4f8574:


0000: 23 20 2d 2a 2d 20 74 63 6c 20 2d 2a 2d 20 74 63  # -*- tcl -*- tc
0010: 6c 2e 74 6b 2f 2f 44 53 4c 20 74 63 6c 74 65 73  l.tk//DSL tcltes
0020: 74 2f 2f 45 4e 2f 2f 32 2e 30 0a 23 20 23 20 23  t//EN//2.0.# # #
0030: 23 20 23 23 23 20 23 23 23 23 23 20 23 23 23 23  # ### ##### ####
0040: 23 23 23 23 20 23 23 23 23 23 23 23 23 23 23 23  #### ###########
0050: 23 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23  ## #############
0060: 23 23 23 23 23 23 23 23 0a 23 23 20 54 65 73 74  ########.## Test
0070: 69 6e 67 20 74 68 65 20 63 6d 64 72 3a 3a 76 61  ing the cmdr::va
0080: 6c 69 64 61 74 65 20 70 61 63 6b 61 67 65 20 28  lidate package (
0090: 73 75 62 3a 20 62 6f 6f 6c 65 61 6e 29 2e 0a 0a  sub: boolean)...
00a0: 6b 74 20 63 68 65 63 6b 20 54 63 6c 20 20 20 20  kt check Tcl    
00b0: 20 38 2e 35 0a 6b 74 20 63 68 65 63 6b 20 74 63   8.5.kt check tc
00c0: 6c 74 65 73 74 20 32 0a 0a 6b 74 20 72 65 71 75  ltest 2..kt requ
00d0: 69 72 65 20 73 75 70 70 6f 72 74 20 64 65 62 75  ire support debu
00e0: 67 0a 6b 74 20 72 65 71 75 69 72 65 20 73 75 70  g.kt require sup
00f0: 70 6f 72 74 20 64 65 62 75 67 3a 3a 63 61 6c 6c  port debug::call
0100: 65 72 0a 0a 6b 74 20 6c 6f 63 61 6c 20 20 20 73  er..kt local   s
0110: 75 70 70 6f 72 74 20 63 6d 64 72 3a 3a 76 61 6c  upport cmdr::val
0120: 69 64 61 74 65 3a 3a 63 6f 6d 6d 6f 6e 0a 6b 74  idate::common.kt
0130: 20 6c 6f 63 61 6c 20 20 20 74 65 73 74 69 6e 67   local   testing
0140: 20 63 6d 64 72 3a 3a 76 61 6c 69 64 61 74 65 0a   cmdr::validate.
0150: 0a 23 20 23 20 23 23 20 23 23 23 20 23 23 23 23  .# # ## ### ####
0160: 23 20 23 23 23 23 23 23 23 23 20 23 23 23 23 23  # ######## #####
0170: 23 23 23 23 23 23 23 23 20 23 23 23 23 23 23 23  ######## #######
0180: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23  ##############.#
0190: 23 20 42 61 73 69 63 20 41 50 49 2e 0a 0a 73 65  # Basic API...se
01a0: 74 20 76 74 79 70 65 20 63 6d 64 72 3a 3a 76 61  t vtype cmdr::va
01b0: 6c 69 64 61 74 65 3a 3a 62 6f 6f 6c 65 61 6e 0a  lidate::boolean.
01c0: 73 65 74 20 76 74 64 65 66 20 6e 6f 0a 6b 74 20  set vtdef no.kt 
01d0: 73 6f 75 72 63 65 20 76 74 79 70 65 2e 74 63 6c  source vtype.tcl
01e0: 0a 0a 23 20 23 20 23 23 20 23 23 23 20 23 23 23  ..# # ## ### ###
01f0: 23 23 20 23 23 23 23 23 23 23 23 20 23 23 23 23  ## ######## ####
0200: 23 23 23 23 23 23 23 23 23 20 23 23 23 23 23 23  ######### ######
0210: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a  ###############.
0220: 23 23 20 53 70 65 63 69 66 69 63 20 62 65 68 61  ## Specific beha
0230: 76 69 6f 75 72 20 2d 20 76 61 6c 69 64 61 74 69  viour - validati
0240: 6f 6e 0a 0a 74 65 73 74 20 76 74 2d 24 7b 76 74  on..test vt-${vt
0250: 79 70 65 7d 2d 76 61 6c 69 64 61 74 65 2d 32 2e  ype}-validate-2.
0260: 30 20 22 24 76 74 79 70 65 20 76 61 6c 69 64 61  0 "$vtype valida
0270: 74 65 2c 20 66 61 69 6c 22 20 2d 62 6f 64 79 20  te, fail" -body 
0280: 7b 0a 20 20 20 20 24 76 74 79 70 65 20 76 61 6c  {.    $vtype val
0290: 69 64 61 74 65 20 50 20 62 6f 67 75 73 0a 7d 20  idate P bogus.} 
02a0: 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 65 72 72  -returnCodes err
02b0: 6f 72 20 2d 72 65 73 75 6c 74 20 7b 45 78 70 65  or -result {Expe
02c0: 63 74 65 64 20 61 20 62 6f 6f 6c 65 61 6e 20 28  cted a boolean (
02d0: 79 65 73 2c 20 6e 6f 2c 20 66 61 6c 73 65 2c 20  yes, no, false, 
02e0: 74 72 75 65 2c 20 6f 6e 2c 20 6f 66 66 2c 20 30  true, on, off, 0
02f0: 2c 20 6f 72 20 31 29 20 66 6f 72 20 54 20 22 50  , or 1) for T "P
0300: 22 2c 20 67 6f 74 20 22 62 6f 67 75 73 22 7d 0a  ", got "bogus"}.
0310: 0a 74 65 73 74 20 76 74 2d 24 7b 76 74 79 70 65  .test vt-${vtype
0320: 7d 2d 76 61 6c 69 64 61 74 65 2d 32 2e 31 20 22  }-validate-2.1 "
0330: 24 76 74 79 70 65 20 76 61 6c 69 64 61 74 65 2c  $vtype validate,
0340: 20 6f 6b 2c 20 74 72 75 65 22 20 2d 62 6f 64 79   ok, true" -body
0350: 20 7b 0a 20 20 20 20 24 76 74 79 70 65 20 76 61   {.    $vtype va
0360: 6c 69 64 61 74 65 20 50 20 79 65 73 0a 7d 20 2d  lidate P yes.} -
0370: 72 65 73 75 6c 74 20 31 0a 0a 74 65 73 74 20 76  result 1..test v
0380: 74 2d 24 7b 76 74 79 70 65 7d 2d 76 61 6c 69 64  t-${vtype}-valid
0390: 61 74 65 2d 32 2e 32 20 22 24 76 74 79 70 65 20  ate-2.2 "$vtype 
03a0: 76 61 6c 69 64 61 74 65 2c 20 6f 6b 2c 20 66 61  validate, ok, fa
03b0: 6c 73 65 22 20 2d 62 6f 64 79 20 7b 0a 20 20 20  lse" -body {.   
03c0: 20 24 76 74 79 70 65 20 76 61 6c 69 64 61 74 65   $vtype validate
03d0: 20 50 20 6e 6f 0a 7d 20 2d 72 65 73 75 6c 74 20   P no.} -result 
03e0: 30 0a 0a 23 20 23 20 23 23 20 23 23 23 20 23 23  0..# # ## ### ##
03f0: 23 23 23 20 23 23 23 23 23 23 23 23 20 23 23 23  ### ######## ###
0400: 23 23 23 23 23 23 23 23 23 23 20 23 23 23 23 23  ########## #####
0410: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0420: 0a 23 23 20 53 70 65 63 69 66 69 63 20 62 65 68  .## Specific beh
0430: 61 76 69 6f 75 72 20 2d 20 63 6f 6d 70 6c 65 74  aviour - complet
0440: 69 6f 6e 0a 0a 23 20 23 20 23 23 20 23 23 23 20  ion..# # ## ### 
0450: 23 23 23 23 23 20 23 23 23 23 23 23 23 23 20 23  ##### ######## #
0460: 23 23 23 23 23 23 23 23 23 23 23 23 20 23 23 23  ############ ###
0470: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0480: 23 23 0a 63 6c 65 61 6e 75 70 54 65 73 74 73 0a  ##.cleanupTests.
0490: 72 65 74 75 72 6e 0a                             return.