System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact c4d2d95100f400c6b8a28fe2fd09d17e558a67d3:


0000: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0010: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0020: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0030: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0040: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0d  ###############.
0050: 0a 23 0d 0a 23 20 65 70 69 6c 6f 67 75 65 2e 65  .#..# epilogue.e
0060: 61 67 6c 65 20 2d 2d 0d 0a 23 0d 0a 23 20 45 78  agle --..#..# Ex
0070: 74 65 6e 73 69 62 6c 65 20 41 64 61 70 74 61 62  tensible Adaptab
0080: 6c 65 20 47 65 6e 65 72 61 6c 69 7a 65 64 20 4c  le Generalized L
0090: 6f 67 69 63 20 45 6e 67 69 6e 65 20 28 45 61 67  ogic Engine (Eag
00a0: 6c 65 29 0d 0a 23 20 54 65 73 74 20 45 70 69 6c  le)..# Test Epil
00b0: 6f 67 75 65 20 46 69 6c 65 0d 0a 23 0d 0a 23 20  ogue File..#..# 
00c0: 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30  Copyright (c) 20
00d0: 30 37 2d 32 30 31 32 20 62 79 20 4a 6f 65 20 4d  07-2012 by Joe M
00e0: 69 73 74 61 63 68 6b 69 6e 2e 20 20 41 6c 6c 20  istachkin.  All 
00f0: 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2e  rights reserved.
0100: 0d 0a 23 0d 0a 23 20 53 65 65 20 74 68 65 20 66  ..#..# See the f
0110: 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72  ile "license.ter
0120: 6d 73 22 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74  ms" for informat
0130: 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64  ion on usage and
0140: 20 72 65 64 69 73 74 72 69 62 75 74 69 6f 6e 20   redistribution 
0150: 6f 66 0d 0a 23 20 74 68 69 73 20 66 69 6c 65 2c  of..# this file,
0160: 20 61 6e 64 20 66 6f 72 20 61 20 44 49 53 43 4c   and for a DISCL
0170: 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52  AIMER OF ALL WAR
0180: 52 41 4e 54 49 45 53 2e 0d 0a 23 0d 0a 23 20 52  RANTIES...#..# R
0190: 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 24 0d  CS: @(#) $Id: $.
01a0: 0a 23 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23  .#..############
01b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01f0: 23 23 23 0d 0a 0d 0a 69 66 20 7b 21 5b 69 6e 66  ###....if {![inf
0200: 6f 20 65 78 69 73 74 73 20 6e 6f 28 5b 66 69 6c  o exists no([fil
0210: 65 20 74 61 69 6c 20 5b 69 6e 66 6f 20 73 63 72  e tail [info scr
0220: 69 70 74 5d 5d 29 5d 7d 20 74 68 65 6e 20 7b 0d  ipt]])]} then {.
0230: 0a 20 20 69 66 20 7b 5b 69 6e 66 6f 20 6c 65 76  .  if {[info lev
0240: 65 6c 5d 20 3e 20 30 7d 20 74 68 65 6e 20 7b 0d  el] > 0} then {.
0250: 0a 20 20 20 20 65 72 72 6f 72 20 22 63 61 6e 6e  .    error "cann
0260: 6f 74 20 72 75 6e 2c 20 63 75 72 72 65 6e 74 20  ot run, current 
0270: 6c 65 76 65 6c 20 69 73 20 6e 6f 74 20 67 6c 6f  level is not glo
0280: 62 61 6c 22 0d 0a 20 20 7d 0d 0a 0d 0a 20 20 69  bal"..  }....  i
0290: 66 20 7b 5b 69 73 45 61 67 6c 65 5d 7d 20 74 68  f {[isEagle]} th
02a0: 65 6e 20 7b 0d 0a 20 20 20 20 23 0d 0a 20 20 20  en {..    #..   
02b0: 20 23 20 4e 4f 54 45 3a 20 53 68 6f 77 20 74 68   # NOTE: Show th
02c0: 65 20 63 75 72 72 65 6e 74 20 73 74 61 74 65 20  e current state 
02d0: 6f 66 20 74 68 65 20 6d 65 6d 6f 72 79 2e 0d 0a  of the memory...
02e0: 20 20 20 20 23 0d 0a 20 20 20 20 63 61 74 63 68      #..    catch
02f0: 20 7b 64 65 62 75 67 20 6d 65 6d 6f 72 79 7d 20   {debug memory} 
0300: 6d 65 6d 6f 72 79 0d 0a 0d 0a 20 20 20 20 74 70  memory....    tp
0310: 75 74 73 20 24 74 65 73 74 5f 63 68 61 6e 6e 65  uts $test_channe
0320: 6c 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22 2d  l [appendArgs "-
0330: 2d 2d 2d 20 65 6e 64 69 6e 67 20 6d 65 6d 6f 72  --- ending memor
0340: 79 3a 20 22 20 5c 0d 0a 20 20 20 20 20 20 20 20  y: " \..        
0350: 5b 66 6f 72 6d 61 74 4c 69 73 74 41 73 44 69 63  [formatListAsDic
0360: 74 20 24 6d 65 6d 6f 72 79 5d 20 5c 6e 5d 0d 0a  t $memory] \n]..
0370: 0d 0a 20 20 20 20 75 6e 73 65 74 20 6d 65 6d 6f  ..    unset memo
0380: 72 79 0d 0a 0d 0a 20 20 20 20 23 0d 0a 20 20 20  ry....    #..   
0390: 20 23 20 4e 4f 54 45 3a 20 53 68 6f 77 20 74 68   # NOTE: Show th
03a0: 65 20 63 75 72 72 65 6e 74 20 73 74 61 74 65 20  e current state 
03b0: 6f 66 20 74 68 65 20 6e 61 74 69 76 65 20 73 74  of the native st
03c0: 61 63 6b 2e 0d 0a 20 20 20 20 23 0d 0a 20 20 20  ack...    #..   
03d0: 20 63 61 74 63 68 20 7b 64 65 62 75 67 20 73 74   catch {debug st
03e0: 61 63 6b 20 74 72 75 65 7d 20 73 74 61 63 6b 0d  ack true} stack.
03f0: 0a 0d 0a 20 20 20 20 74 70 75 74 73 20 24 74 65  ...    tputs $te
0400: 73 74 5f 63 68 61 6e 6e 65 6c 20 5b 61 70 70 65  st_channel [appe
0410: 6e 64 41 72 67 73 20 22 2d 2d 2d 2d 20 65 6e 64  ndArgs "---- end
0420: 69 6e 67 20 73 74 61 63 6b 3a 20 22 20 5c 0d 0a  ing stack: " \..
0430: 20 20 20 20 20 20 20 20 5b 66 6f 72 6d 61 74 4c          [formatL
0440: 69 73 74 41 73 44 69 63 74 20 24 73 74 61 63 6b  istAsDict $stack
0450: 5d 20 5c 6e 5d 0d 0a 0d 0a 20 20 20 20 75 6e 73  ] \n]....    uns
0460: 65 74 20 73 74 61 63 6b 0d 0a 20 20 7d 0d 0a 0d  et stack..  }...
0470: 0a 20 20 23 0d 0a 20 20 23 20 4e 4f 54 45 3a 20  .  #..  # NOTE: 
0480: 53 68 6f 77 20 77 68 65 6e 20 74 68 65 20 74 65  Show when the te
0490: 73 74 73 20 61 63 74 75 61 6c 6c 79 20 65 6e 64  sts actually end
04a0: 65 64 20 28 6e 6f 77 29 2e 0d 0a 20 20 23 0d 0a  ed (now)...  #..
04b0: 20 20 74 70 75 74 73 20 24 74 65 73 74 5f 63 68    tputs $test_ch
04c0: 61 6e 6e 65 6c 20 5b 61 70 70 65 6e 64 41 72 67  annel [appendArg
04d0: 73 20 22 2d 2d 2d 2d 20 74 65 73 74 73 20 65 6e  s "---- tests en
04e0: 64 65 64 20 61 74 20 22 20 5c 0d 0a 20 20 20 20  ded at " \..    
04f0: 20 20 5b 63 6c 6f 63 6b 20 66 6f 72 6d 61 74 20    [clock format 
0500: 5b 63 6c 6f 63 6b 20 73 65 63 6f 6e 64 73 5d 5d  [clock seconds]]
0510: 20 5c 6e 5d 0d 0a 0d 0a 20 20 69 66 20 7b 5b 69   \n]....  if {[i
0520: 73 45 61 67 6c 65 5d 7d 20 74 68 65 6e 20 7b 0d  sEagle]} then {.
0530: 0a 20 20 20 20 23 0d 0a 20 20 20 20 23 20 4e 4f  .    #..    # NO
0540: 54 45 3a 20 43 68 65 63 6b 20 66 6f 72 20 61 6e  TE: Check for an
0550: 64 20 64 69 73 70 6c 61 79 20 61 6e 79 20 64 75  d display any du
0560: 70 6c 69 63 61 74 65 20 74 65 73 74 20 6e 61 6d  plicate test nam
0570: 65 73 20 74 68 61 74 20 77 65 20 66 6f 75 6e 64  es that we found
0580: 2e 20 20 49 6e 0d 0a 20 20 20 20 23 20 20 20 20  .  In..    #    
0590: 20 20 20 74 68 65 6f 72 79 2c 20 74 68 69 73 20     theory, this 
05a0: 63 68 65 63 6b 69 6e 67 20 6d 61 79 20 70 72 6f  checking may pro
05b0: 64 75 63 65 20 66 61 6c 73 65 20 70 6f 73 69 74  duce false posit
05c0: 69 76 65 73 20 69 66 20 61 20 74 65 73 74 20 66  ives if a test f
05d0: 69 6c 65 0d 0a 20 20 20 20 23 20 20 20 20 20 20  ile..    #      
05e0: 20 28 6f 72 20 74 68 65 20 65 6e 74 69 72 65 20   (or the entire 
05f0: 74 65 73 74 20 73 75 69 74 65 29 20 69 73 20 72  test suite) is r
0600: 75 6e 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65  un multiple time
0610: 73 20 77 69 74 68 6f 75 74 20 72 65 73 65 74 74  s without resett
0620: 69 6e 67 0d 0a 20 20 20 20 23 20 20 20 20 20 20  ing..    #      
0630: 20 74 68 65 20 74 65 73 74 20 73 74 61 74 69 73   the test statis
0640: 74 69 63 73 20 61 6e 64 2f 6f 72 20 72 65 73 74  tics and/or rest
0650: 61 72 74 69 6e 67 20 45 61 67 6c 65 3b 20 68 6f  arting Eagle; ho
0660: 77 65 76 65 72 2c 20 64 75 70 6c 69 63 61 74 65  wever, duplicate
0670: 0d 0a 20 20 20 20 23 20 20 20 20 20 20 20 74 65  ..    #       te
0680: 73 74 20 6e 61 6d 65 73 20 6d 75 73 74 20 62 65  st names must be
0690: 20 61 76 6f 69 64 65 64 20 61 6e 64 20 74 68 69   avoided and thi
06a0: 73 20 69 73 20 63 6f 6e 73 69 64 65 72 65 64 20  s is considered 
06b0: 61 20 67 6f 6f 64 20 74 72 61 64 65 2d 6f 66 66  a good trade-off
06c0: 2e 0d 0a 20 20 20 20 23 0d 0a 20 20 20 20 66 6f  ...    #..    fo
06d0: 72 65 61 63 68 20 7b 6e 61 6d 65 20 63 6f 75 6e  reach {name coun
06e0: 74 7d 20 24 65 61 67 6c 65 5f 74 65 73 74 73 28  t} $eagle_tests(
06f0: 63 6f 75 6e 74 73 29 20 7b 0d 0a 20 20 20 20 20  counts) {..     
0700: 20 69 66 20 7b 24 63 6f 75 6e 74 20 3e 20 31 7d   if {$count > 1}
0710: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 20   then {..       
0720: 20 74 70 75 74 73 20 24 74 65 73 74 5f 63 68 61   tputs $test_cha
0730: 6e 6e 65 6c 20 5b 61 70 70 65 6e 64 41 72 67 73  nnel [appendArgs
0740: 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   \..            
0750: 22 3d 3d 3d 3d 20 74 65 73 74 20 6e 61 6d 65 20  "==== test name 
0760: 5c 22 22 20 24 6e 61 6d 65 20 22 5c 22 20 44 55  \"" $name "\" DU
0770: 50 4c 49 43 41 54 45 44 20 28 22 20 24 63 6f 75  PLICATED (" $cou
0780: 6e 74 20 22 29 5c 6e 22 5d 0d 0a 20 20 20 20 20  nt ")\n"]..     
0790: 20 7d 20 65 6c 73 65 69 66 20 7b 24 63 6f 75 6e   } elseif {$coun
07a0: 74 20 3c 3d 20 30 7d 20 74 68 65 6e 20 7b 0d 0a  t <= 0} then {..
07b0: 20 20 20 20 20 20 20 20 74 70 75 74 73 20 24 74          tputs $t
07c0: 65 73 74 5f 63 68 61 6e 6e 65 6c 20 5b 61 70 70  est_channel [app
07d0: 65 6e 64 41 72 67 73 20 5c 0d 0a 20 20 20 20 20  endArgs \..     
07e0: 20 20 20 20 20 20 20 22 3d 3d 3d 3d 20 74 65 73         "==== tes
07f0: 74 20 6e 61 6d 65 20 5c 22 22 20 24 6e 61 6d 65  t name \"" $name
0800: 20 22 5c 22 20 42 41 44 20 43 4f 55 4e 54 20 28   "\" BAD COUNT (
0810: 22 20 24 63 6f 75 6e 74 20 22 29 5c 6e 22 5d 0d  " $count ")\n"].
0820: 0a 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d  .      }..    }.
0830: 0a 0d 0a 20 20 20 20 75 6e 73 65 74 20 2d 6e 6f  ...    unset -no
0840: 63 6f 6d 70 6c 61 69 6e 20 6e 61 6d 65 20 63 6f  complain name co
0850: 75 6e 74 0d 0a 0d 0a 20 20 20 20 74 70 75 74 73  unt....    tputs
0860: 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 5c   $test_channel \
0870: 6e 3b 20 23 20 4e 4f 54 45 3a 20 42 6c 61 6e 6b  n; # NOTE: Blank
0880: 20 6c 69 6e 65 2e 0d 0a 0d 0a 20 20 20 20 69 66   line.....    if
0890: 20 7b 24 65 61 67 6c 65 5f 74 65 73 74 73 28 70   {$eagle_tests(p
08a0: 61 73 73 65 64 29 20 3e 20 30 7d 20 74 68 65 6e  assed) > 0} then
08b0: 20 7b 0d 0a 20 20 20 20 20 20 68 6f 73 74 20 72   {..      host r
08c0: 65 73 75 6c 74 20 4f 6b 20 5b 61 70 70 65 6e 64  esult Ok [append
08d0: 41 72 67 73 20 22 50 41 53 53 45 44 3a 20 22 20  Args "PASSED: " 
08e0: 24 65 61 67 6c 65 5f 74 65 73 74 73 28 70 61 73  $eagle_tests(pas
08f0: 73 65 64 29 20 5c 6e 5d 0d 0a 20 20 20 20 20 20  sed) \n]..      
0900: 74 6c 6f 67 20 5b 61 70 70 65 6e 64 41 72 67 73  tlog [appendArgs
0910: 20 22 50 41 53 53 45 44 3a 20 22 20 24 65 61 67   "PASSED: " $eag
0920: 6c 65 5f 74 65 73 74 73 28 70 61 73 73 65 64 29  le_tests(passed)
0930: 20 5c 6e 5d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20   \n]..    }.... 
0940: 20 20 20 69 66 20 7b 24 65 61 67 6c 65 5f 74 65     if {$eagle_te
0950: 73 74 73 28 66 61 69 6c 65 64 29 20 3e 20 30 7d  sts(failed) > 0}
0960: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 68   then {..      h
0970: 6f 73 74 20 72 65 73 75 6c 74 20 45 72 72 6f 72  ost result Error
0980: 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22 46 41   [appendArgs "FA
0990: 49 4c 45 44 3a 20 22 20 24 65 61 67 6c 65 5f 74  ILED: " $eagle_t
09a0: 65 73 74 73 28 66 61 69 6c 65 64 29 20 5c 6e 5d  ests(failed) \n]
09b0: 0d 0a 20 20 20 20 20 20 74 6c 6f 67 20 5b 61 70  ..      tlog [ap
09c0: 70 65 6e 64 41 72 67 73 20 22 46 41 49 4c 45 44  pendArgs "FAILED
09d0: 3a 20 22 20 24 65 61 67 6c 65 5f 74 65 73 74 73  : " $eagle_tests
09e0: 28 66 61 69 6c 65 64 29 20 5c 6e 5d 0d 0a 0d 0a  (failed) \n]....
09f0: 20 20 20 20 20 20 69 66 20 7b 5b 6c 6c 65 6e 67        if {[lleng
0a00: 74 68 20 24 65 61 67 6c 65 5f 74 65 73 74 73 28  th $eagle_tests(
0a10: 66 61 69 6c 65 64 4e 61 6d 65 73 29 5d 20 3e 20  failedNames)] > 
0a20: 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20  0} then {..     
0a30: 20 20 20 68 6f 73 74 20 72 65 73 75 6c 74 20 45     host result E
0a40: 72 72 6f 72 20 5b 61 70 70 65 6e 64 41 72 67 73  rror [appendArgs
0a50: 20 22 46 41 49 4c 45 44 3a 20 22 20 24 65 61 67   "FAILED: " $eag
0a60: 6c 65 5f 74 65 73 74 73 28 66 61 69 6c 65 64 4e  le_tests(failedN
0a70: 61 6d 65 73 29 20 5c 6e 5d 0d 0a 20 20 20 20 20  ames) \n]..     
0a80: 20 20 20 74 6c 6f 67 20 5b 61 70 70 65 6e 64 41     tlog [appendA
0a90: 72 67 73 20 22 46 41 49 4c 45 44 3a 20 22 20 24  rgs "FAILED: " $
0aa0: 65 61 67 6c 65 5f 74 65 73 74 73 28 66 61 69 6c  eagle_tests(fail
0ab0: 65 64 4e 61 6d 65 73 29 20 5c 6e 5d 0d 0a 20 20  edNames) \n]..  
0ac0: 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a      }..    }....
0ad0: 20 20 20 20 69 66 20 7b 24 65 61 67 6c 65 5f 74      if {$eagle_t
0ae0: 65 73 74 73 28 73 6b 69 70 70 65 64 29 20 3e 20  ests(skipped) > 
0af0: 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20  0} then {..     
0b00: 20 68 6f 73 74 20 72 65 73 75 6c 74 20 42 72 65   host result Bre
0b10: 61 6b 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22  ak [appendArgs "
0b20: 53 4b 49 50 50 45 44 3a 20 22 20 24 65 61 67 6c  SKIPPED: " $eagl
0b30: 65 5f 74 65 73 74 73 28 73 6b 69 70 70 65 64 29  e_tests(skipped)
0b40: 20 5c 6e 5d 0d 0a 20 20 20 20 20 20 74 6c 6f 67   \n]..      tlog
0b50: 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22 53 4b   [appendArgs "SK
0b60: 49 50 50 45 44 3a 20 22 20 24 65 61 67 6c 65 5f  IPPED: " $eagle_
0b70: 74 65 73 74 73 28 73 6b 69 70 70 65 64 29 20 5c  tests(skipped) \
0b80: 6e 5d 0d 0a 0d 0a 20 20 20 20 20 20 69 66 20 7b  n]....      if {
0b90: 5b 6c 6c 65 6e 67 74 68 20 24 65 61 67 6c 65 5f  [llength $eagle_
0ba0: 74 65 73 74 73 28 73 6b 69 70 70 65 64 4e 61 6d  tests(skippedNam
0bb0: 65 73 29 5d 20 3e 20 30 7d 20 74 68 65 6e 20 7b  es)] > 0} then {
0bc0: 0d 0a 20 20 20 20 20 20 20 20 68 6f 73 74 20 72  ..        host r
0bd0: 65 73 75 6c 74 20 42 72 65 61 6b 20 5b 61 70 70  esult Break [app
0be0: 65 6e 64 41 72 67 73 20 22 53 4b 49 50 50 45 44  endArgs "SKIPPED
0bf0: 3a 20 22 20 24 65 61 67 6c 65 5f 74 65 73 74 73  : " $eagle_tests
0c00: 28 73 6b 69 70 70 65 64 4e 61 6d 65 73 29 20 5c  (skippedNames) \
0c10: 6e 5d 0d 0a 20 20 20 20 20 20 20 20 74 6c 6f 67  n]..        tlog
0c20: 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22 53 4b   [appendArgs "SK
0c30: 49 50 50 45 44 3a 20 22 20 24 65 61 67 6c 65 5f  IPPED: " $eagle_
0c40: 74 65 73 74 73 28 73 6b 69 70 70 65 64 4e 61 6d  tests(skippedNam
0c50: 65 73 29 20 5c 6e 5d 0d 0a 20 20 20 20 20 20 7d  es) \n]..      }
0c60: 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 69  ..    }....    i
0c70: 66 20 7b 24 65 61 67 6c 65 5f 74 65 73 74 73 28  f {$eagle_tests(
0c80: 74 6f 74 61 6c 29 20 3e 20 30 7d 20 74 68 65 6e  total) > 0} then
0c90: 20 7b 0d 0a 20 20 20 20 20 20 68 6f 73 74 20 72   {..      host r
0ca0: 65 73 75 6c 74 20 52 65 74 75 72 6e 20 5b 61 70  esult Return [ap
0cb0: 70 65 6e 64 41 72 67 73 20 22 54 4f 54 41 4c 3a  pendArgs "TOTAL:
0cc0: 20 22 20 24 65 61 67 6c 65 5f 74 65 73 74 73 28   " $eagle_tests(
0cd0: 74 6f 74 61 6c 29 20 5c 6e 5d 0d 0a 20 20 20 20  total) \n]..    
0ce0: 20 20 74 6c 6f 67 20 5b 61 70 70 65 6e 64 41 72    tlog [appendAr
0cf0: 67 73 20 22 54 4f 54 41 4c 3a 20 22 20 24 65 61  gs "TOTAL: " $ea
0d00: 67 6c 65 5f 74 65 73 74 73 28 74 6f 74 61 6c 29  gle_tests(total)
0d10: 20 5c 6e 5d 0d 0a 0d 0a 20 20 20 20 20 20 69 66   \n]....      if
0d20: 20 7b 24 65 61 67 6c 65 5f 74 65 73 74 73 28 73   {$eagle_tests(s
0d30: 6b 69 70 70 65 64 29 20 3e 20 30 7d 20 74 68 65  kipped) > 0} the
0d40: 6e 20 7b 0d 0a 20 20 20 20 20 20 20 20 73 65 74  n {..        set
0d50: 20 70 65 72 63 65 6e 74 20 5b 67 65 74 53 6b 69   percent [getSki
0d60: 70 50 65 72 63 65 6e 74 61 67 65 5d 0d 0a 20 20  pPercentage]..  
0d70: 20 20 20 20 20 20 68 6f 73 74 20 72 65 73 75 6c        host resul
0d80: 74 20 42 72 65 61 6b 20 5b 61 70 70 65 6e 64 41  t Break [appendA
0d90: 72 67 73 20 22 53 4b 49 50 20 50 45 52 43 45 4e  rgs "SKIP PERCEN
0da0: 54 41 47 45 3a 20 22 20 5c 0d 0a 20 20 20 20 20  TAGE: " \..     
0db0: 20 20 20 20 20 20 20 5b 66 6f 72 6d 61 74 44 65         [formatDe
0dc0: 63 69 6d 61 6c 20 24 70 65 72 63 65 6e 74 5d 20  cimal $percent] 
0dd0: 25 5c 6e 5d 0d 0a 0d 0a 20 20 20 20 20 20 20 20  %\n]....        
0de0: 74 6c 6f 67 20 5b 61 70 70 65 6e 64 41 72 67 73  tlog [appendArgs
0df0: 20 22 53 4b 49 50 20 50 45 52 43 45 4e 54 41 47   "SKIP PERCENTAG
0e00: 45 3a 20 22 20 5b 66 6f 72 6d 61 74 44 65 63 69  E: " [formatDeci
0e10: 6d 61 6c 20 24 70 65 72 63 65 6e 74 5d 20 25 5c  mal $percent] %\
0e20: 6e 5d 0d 0a 20 20 20 20 20 20 7d 0d 0a 0d 0a 20  n]..      }.... 
0e30: 20 20 20 20 20 73 65 74 20 70 65 72 63 65 6e 74       set percent
0e40: 20 5b 67 65 74 50 61 73 73 50 65 72 63 65 6e 74   [getPassPercent
0e50: 61 67 65 5d 0d 0a 20 20 20 20 20 20 68 6f 73 74  age]..      host
0e60: 20 72 65 73 75 6c 74 20 52 65 74 75 72 6e 20 5b   result Return [
0e70: 61 70 70 65 6e 64 41 72 67 73 20 22 50 41 53 53  appendArgs "PASS
0e80: 20 50 45 52 43 45 4e 54 41 47 45 3a 20 22 20 5c   PERCENTAGE: " \
0e90: 0d 0a 20 20 20 20 20 20 20 20 20 20 5b 66 6f 72  ..          [for
0ea0: 6d 61 74 44 65 63 69 6d 61 6c 20 24 70 65 72 63  matDecimal $perc
0eb0: 65 6e 74 5d 20 25 5c 6e 5d 0d 0a 0d 0a 20 20 20  ent] %\n]....   
0ec0: 20 20 20 74 6c 6f 67 20 5b 61 70 70 65 6e 64 41     tlog [appendA
0ed0: 72 67 73 20 22 50 41 53 53 20 50 45 52 43 45 4e  rgs "PASS PERCEN
0ee0: 54 41 47 45 3a 20 22 20 5b 66 6f 72 6d 61 74 44  TAGE: " [formatD
0ef0: 65 63 69 6d 61 6c 20 24 70 65 72 63 65 6e 74 5d  ecimal $percent]
0f00: 20 25 5c 6e 5d 0d 0a 20 20 20 20 7d 20 65 6c 73   %\n]..    } els
0f10: 65 20 7b 0d 0a 20 20 20 20 20 20 23 0d 0a 20 20  e {..      #..  
0f20: 20 20 20 20 23 20 4e 4f 54 45 3a 20 4e 6f 20 74      # NOTE: No t
0f30: 65 73 74 73 2e 0d 0a 20 20 20 20 20 20 23 0d 0a  ests...      #..
0f40: 20 20 20 20 20 20 73 65 74 20 70 65 72 63 65 6e        set percen
0f50: 74 20 30 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20  t 0..    }....  
0f60: 20 20 23 0d 0a 20 20 20 20 23 20 4e 4f 54 45 3a    #..    # NOTE:
0f70: 20 48 61 73 20 74 68 65 20 74 65 73 74 20 70 61   Has the test pa
0f80: 73 73 20 74 68 72 65 73 68 6f 6c 64 20 62 65 65  ss threshold bee
0f90: 6e 20 73 65 74 3f 20 20 49 66 20 73 6f 2c 20 69  n set?  If so, i
0fa0: 73 20 69 74 20 73 65 74 20 74 6f 0d 0a 20 20 20  s it set to..   
0fb0: 20 23 20 20 20 20 20 20 20 74 68 65 20 64 65 66   #       the def
0fc0: 61 75 6c 74 20 76 61 6c 75 65 3f 0d 0a 20 20 20  ault value?..   
0fd0: 20 23 0d 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e   #..    if {![in
0fe0: 66 6f 20 65 78 69 73 74 73 20 74 65 73 74 5f 74  fo exists test_t
0ff0: 68 72 65 73 68 6f 6c 64 5d 20 7c 7c 20 24 74 65  hreshold] || $te
1000: 73 74 5f 74 68 72 65 73 68 6f 6c 64 20 3d 3d 20  st_threshold == 
1010: 31 30 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20  100} then {..   
1020: 20 20 20 23 0d 0a 20 20 20 20 20 20 23 20 4e 4f     #..      # NO
1030: 54 45 3a 20 54 68 65 20 74 65 73 74 20 70 61 73  TE: The test pas
1040: 73 20 74 68 72 65 73 68 6f 6c 64 20 69 73 20 73  s threshold is s
1050: 65 74 20 74 6f 20 74 68 65 20 64 65 66 61 75 6c  et to the defaul
1060: 74 20 76 61 6c 75 65 20 28 31 30 30 25 29 2e 0d  t value (100%)..
1070: 0a 20 20 20 20 20 20 23 20 20 20 20 20 20 20 43  .      #       C
1080: 68 65 63 6b 20 74 6f 20 6d 61 6b 65 20 73 75 72  heck to make sur
1090: 65 20 74 68 61 74 20 61 6c 6c 20 74 65 73 74 73  e that all tests
10a0: 20 70 61 73 73 20 61 6e 64 20 74 68 65 6e 20 73   pass and then s
10b0: 65 74 20 74 68 65 0d 0a 20 20 20 20 20 20 23 20  et the..      # 
10c0: 20 20 20 20 20 20 65 78 69 74 20 63 6f 64 65 20        exit code 
10d0: 74 6f 20 73 75 63 63 65 73 73 3b 20 6f 74 68 65  to success; othe
10e0: 72 77 69 73 65 2c 20 77 65 20 73 65 74 20 69 74  rwise, we set it
10f0: 20 74 6f 20 66 61 69 6c 75 72 65 2e 0d 0a 20 20   to failure...  
1100: 20 20 20 20 23 0d 0a 20 20 20 20 20 20 73 65 74      #..      set
1110: 20 70 61 73 73 65 64 4f 72 53 6b 69 70 70 65 64   passedOrSkipped
1120: 20 5b 65 78 70 72 20 7b 24 65 61 67 6c 65 5f 74   [expr {$eagle_t
1130: 65 73 74 73 28 70 61 73 73 65 64 29 20 2b 20 5c  ests(passed) + \
1140: 0d 0a 20 20 20 20 20 20 20 20 20 20 24 65 61 67  ..          $eag
1150: 6c 65 5f 74 65 73 74 73 28 73 6b 69 70 70 65 64  le_tests(skipped
1160: 29 7d 5d 0d 0a 0d 0a 20 20 20 20 20 20 69 66 20  )}]....      if 
1170: 7b 24 70 61 73 73 65 64 4f 72 53 6b 69 70 70 65  {$passedOrSkippe
1180: 64 20 3d 3d 20 24 65 61 67 6c 65 5f 74 65 73 74  d == $eagle_test
1190: 73 28 74 6f 74 61 6c 29 7d 20 74 68 65 6e 20 7b  s(total)} then {
11a0: 0d 0a 20 20 20 20 20 20 20 20 73 65 74 20 65 78  ..        set ex
11b0: 69 74 43 6f 64 65 20 53 75 63 63 65 73 73 0d 0a  itCode Success..
11c0: 0d 0a 20 20 20 20 20 20 20 20 68 6f 73 74 20 72  ..        host r
11d0: 65 73 75 6c 74 20 4f 6b 20 22 4f 56 45 52 41 4c  esult Ok "OVERAL
11e0: 4c 20 52 45 53 55 4c 54 3a 20 53 55 43 43 45 53  L RESULT: SUCCES
11f0: 53 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 74 6c  S\n"..        tl
1200: 6f 67 20 22 4f 56 45 52 41 4c 4c 20 52 45 53 55  og "OVERALL RESU
1210: 4c 54 3a 20 53 55 43 43 45 53 53 5c 6e 22 0d 0a  LT: SUCCESS\n"..
1220: 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a        } else {..
1230: 20 20 20 20 20 20 20 20 73 65 74 20 65 78 69 74          set exit
1240: 43 6f 64 65 20 46 61 69 6c 75 72 65 0d 0a 0d 0a  Code Failure....
1250: 20 20 20 20 20 20 20 20 68 6f 73 74 20 72 65 73          host res
1260: 75 6c 74 20 45 72 72 6f 72 20 22 4f 56 45 52 41  ult Error "OVERA
1270: 4c 4c 20 52 45 53 55 4c 54 3a 20 46 41 49 4c 55  LL RESULT: FAILU
1280: 52 45 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 74  RE\n"..        t
1290: 6c 6f 67 20 22 4f 56 45 52 41 4c 4c 20 52 45 53  log "OVERALL RES
12a0: 55 4c 54 3a 20 46 41 49 4c 55 52 45 5c 6e 22 0d  ULT: FAILURE\n".
12b0: 0a 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20  .      }....    
12c0: 20 20 75 6e 73 65 74 20 70 61 73 73 65 64 4f 72    unset passedOr
12d0: 53 6b 69 70 70 65 64 0d 0a 20 20 20 20 7d 20 65  Skipped..    } e
12e0: 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 23 0d 0a  lse {..      #..
12f0: 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20 54 68        # NOTE: Th
1300: 65 79 20 73 70 65 63 69 66 69 65 64 20 61 20 6e  ey specified a n
1310: 6f 6e 2d 64 65 66 61 75 6c 74 20 74 65 73 74 20  on-default test 
1320: 70 61 73 73 20 74 68 72 65 73 68 6f 6c 64 2e 20  pass threshold. 
1330: 20 43 68 65 63 6b 20 74 6f 0d 0a 20 20 20 20 20   Check to..     
1340: 20 23 20 20 20 20 20 20 20 6d 61 6b 65 20 73 75   #       make su
1350: 72 65 20 74 68 61 74 20 77 65 20 6d 65 65 74 20  re that we meet 
1360: 6f 72 20 65 78 63 65 65 64 20 74 68 65 20 72 65  or exceed the re
1370: 71 75 69 72 65 6d 65 6e 74 20 61 6e 64 20 74 68  quirement and th
1380: 65 6e 0d 0a 20 20 20 20 20 20 23 20 20 20 20 20  en..      #     
1390: 20 20 73 65 74 20 74 68 65 20 65 78 69 74 20 63    set the exit c
13a0: 6f 64 65 20 74 6f 20 73 75 63 63 65 73 73 3b 20  ode to success; 
13b0: 6f 74 68 65 72 77 69 73 65 2c 20 73 65 74 20 69  otherwise, set i
13c0: 74 20 74 6f 20 66 61 69 6c 75 72 65 2e 0d 0a 20  t to failure... 
13d0: 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 69 66       #..      if
13e0: 20 7b 24 70 65 72 63 65 6e 74 20 3e 3d 20 24 74   {$percent >= $t
13f0: 65 73 74 5f 74 68 72 65 73 68 6f 6c 64 7d 20 74  est_threshold} t
1400: 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 20 20 73  hen {..        s
1410: 65 74 20 65 78 69 74 43 6f 64 65 20 53 75 63 63  et exitCode Succ
1420: 65 73 73 0d 0a 0d 0a 20 20 20 20 20 20 20 20 68  ess....        h
1430: 6f 73 74 20 72 65 73 75 6c 74 20 4f 6b 20 5b 61  ost result Ok [a
1440: 70 70 65 6e 64 41 72 67 73 20 22 4f 56 45 52 41  ppendArgs "OVERA
1450: 4c 4c 20 52 45 53 55 4c 54 3a 20 53 55 43 43 45  LL RESULT: SUCCE
1460: 53 53 20 28 22 20 5c 0d 0a 20 20 20 20 20 20 20  SS (" \..       
1470: 20 20 20 20 20 24 70 65 72 63 65 6e 74 20 22 25       $percent "%
1480: 20 3e 3d 20 22 20 24 74 65 73 74 5f 74 68 72 65   >= " $test_thre
1490: 73 68 6f 6c 64 20 25 29 5c 6e 5d 0d 0a 0d 0a 20  shold %)\n].... 
14a0: 20 20 20 20 20 20 20 74 6c 6f 67 20 5b 61 70 70         tlog [app
14b0: 65 6e 64 41 72 67 73 20 22 4f 56 45 52 41 4c 4c  endArgs "OVERALL
14c0: 20 52 45 53 55 4c 54 3a 20 53 55 43 43 45 53 53   RESULT: SUCCESS
14d0: 20 28 22 20 5c 0d 0a 20 20 20 20 20 20 20 20 20   (" \..         
14e0: 20 20 20 24 70 65 72 63 65 6e 74 20 22 25 20 3e     $percent "% >
14f0: 3d 20 22 20 24 74 65 73 74 5f 74 68 72 65 73 68  = " $test_thresh
1500: 6f 6c 64 20 25 29 5c 6e 5d 0d 0a 20 20 20 20 20  old %)\n]..     
1510: 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20   } else {..     
1520: 20 20 20 73 65 74 20 65 78 69 74 43 6f 64 65 20     set exitCode 
1530: 46 61 69 6c 75 72 65 0d 0a 0d 0a 20 20 20 20 20  Failure....     
1540: 20 20 20 68 6f 73 74 20 72 65 73 75 6c 74 20 45     host result E
1550: 72 72 6f 72 20 5b 61 70 70 65 6e 64 41 72 67 73  rror [appendArgs
1560: 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   \..            
1570: 22 4f 56 45 52 41 4c 4c 20 52 45 53 55 4c 54 3a  "OVERALL RESULT:
1580: 20 46 41 49 4c 55 52 45 20 28 22 20 24 70 65 72   FAILURE (" $per
1590: 63 65 6e 74 20 22 25 20 3c 20 22 20 24 74 65 73  cent "% < " $tes
15a0: 74 5f 74 68 72 65 73 68 6f 6c 64 20 25 29 5c 6e  t_threshold %)\n
15b0: 5d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 74 6c 6f  ]....        tlo
15c0: 67 20 5b 61 70 70 65 6e 64 41 72 67 73 20 5c 0d  g [appendArgs \.
15d0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 4f 56  .            "OV
15e0: 45 52 41 4c 4c 20 52 45 53 55 4c 54 3a 20 46 41  ERALL RESULT: FA
15f0: 49 4c 55 52 45 20 28 22 20 24 70 65 72 63 65 6e  ILURE (" $percen
1600: 74 20 22 25 20 3c 20 22 20 24 74 65 73 74 5f 74  t "% < " $test_t
1610: 68 72 65 73 68 6f 6c 64 20 25 29 5c 6e 5d 0d 0a  hreshold %)\n]..
1620: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a        }..    }..
1630: 0d 0a 20 20 20 20 75 6e 73 65 74 20 70 65 72 63  ..    unset perc
1640: 65 6e 74 0d 0a 0d 0a 20 20 20 20 74 70 75 74 73  ent....    tputs
1650: 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 5c   $test_channel \
1660: 6e 3b 20 23 20 4e 4f 54 45 3a 20 42 6c 61 6e 6b  n; # NOTE: Blank
1670: 20 6c 69 6e 65 2e 0d 0a 20 20 7d 20 65 6c 73 65   line...  } else
1680: 20 7b 0d 0a 20 20 20 20 74 70 75 74 73 20 24 74   {..    tputs $t
1690: 65 73 74 5f 63 68 61 6e 6e 65 6c 20 5c 6e 3b 20  est_channel \n; 
16a0: 23 20 4e 4f 54 45 3a 20 42 6c 61 6e 6b 20 6c 69  # NOTE: Blank li
16b0: 6e 65 2e 0d 0a 0d 0a 20 20 20 20 69 66 20 7b 24  ne.....    if {$
16c0: 3a 3a 74 63 6c 74 65 73 74 3a 3a 6e 75 6d 54 65  ::tcltest::numTe
16d0: 73 74 73 28 50 61 73 73 65 64 29 20 3e 20 30 7d  sts(Passed) > 0}
16e0: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 74   then {..      t
16f0: 70 75 74 73 20 24 74 65 73 74 5f 63 68 61 6e 6e  puts $test_chann
1700: 65 6c 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20  el \..          
1710: 5b 61 70 70 65 6e 64 41 72 67 73 20 22 50 41 53  [appendArgs "PAS
1720: 53 45 44 3a 20 22 20 24 3a 3a 74 63 6c 74 65 73  SED: " $::tcltes
1730: 74 3a 3a 6e 75 6d 54 65 73 74 73 28 50 61 73 73  t::numTests(Pass
1740: 65 64 29 20 5c 6e 5d 0d 0a 20 20 20 20 7d 0d 0a  ed) \n]..    }..
1750: 0d 0a 20 20 20 20 69 66 20 7b 24 3a 3a 74 63 6c  ..    if {$::tcl
1760: 74 65 73 74 3a 3a 6e 75 6d 54 65 73 74 73 28 46  test::numTests(F
1770: 61 69 6c 65 64 29 20 3e 20 30 7d 20 74 68 65 6e  ailed) > 0} then
1780: 20 7b 0d 0a 20 20 20 20 20 20 74 70 75 74 73 20   {..      tputs 
1790: 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 5c 0d  $test_channel \.
17a0: 0a 20 20 20 20 20 20 20 20 20 20 5b 61 70 70 65  .          [appe
17b0: 6e 64 41 72 67 73 20 22 46 41 49 4c 45 44 3a 20  ndArgs "FAILED: 
17c0: 22 20 24 3a 3a 74 63 6c 74 65 73 74 3a 3a 6e 75  " $::tcltest::nu
17d0: 6d 54 65 73 74 73 28 46 61 69 6c 65 64 29 20 5c  mTests(Failed) \
17e0: 6e 5d 0d 0a 0d 0a 20 20 20 20 20 20 69 66 20 7b  n]....      if {
17f0: 5b 6c 6c 65 6e 67 74 68 20 24 3a 3a 74 63 6c 74  [llength $::tclt
1800: 65 73 74 3a 3a 66 61 69 6c 46 69 6c 65 73 5d 20  est::failFiles] 
1810: 3e 20 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20  > 0} then {..   
1820: 20 20 20 20 20 74 70 75 74 73 20 24 74 65 73 74       tputs $test
1830: 5f 63 68 61 6e 6e 65 6c 20 5c 0d 0a 20 20 20 20  _channel \..    
1840: 20 20 20 20 20 20 20 20 5b 61 70 70 65 6e 64 41          [appendA
1850: 72 67 73 20 22 46 41 49 4c 45 44 3a 20 22 20 24  rgs "FAILED: " $
1860: 3a 3a 74 63 6c 74 65 73 74 3a 3a 66 61 69 6c 46  ::tcltest::failF
1870: 69 6c 65 73 20 5c 6e 5d 0d 0a 20 20 20 20 20 20  iles \n]..      
1880: 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20  }..    }....    
1890: 69 66 20 7b 24 3a 3a 74 63 6c 74 65 73 74 3a 3a  if {$::tcltest::
18a0: 6e 75 6d 54 65 73 74 73 28 53 6b 69 70 70 65 64  numTests(Skipped
18b0: 29 20 3e 20 30 7d 20 74 68 65 6e 20 7b 0d 0a 20  ) > 0} then {.. 
18c0: 20 20 20 20 20 74 70 75 74 73 20 24 74 65 73 74       tputs $test
18d0: 5f 63 68 61 6e 6e 65 6c 20 5c 0d 0a 20 20 20 20  _channel \..    
18e0: 20 20 20 20 20 20 5b 61 70 70 65 6e 64 41 72 67        [appendArg
18f0: 73 20 22 53 4b 49 50 50 45 44 3a 20 22 20 24 3a  s "SKIPPED: " $:
1900: 3a 74 63 6c 74 65 73 74 3a 3a 6e 75 6d 54 65 73  :tcltest::numTes
1910: 74 73 28 53 6b 69 70 70 65 64 29 20 5c 6e 5d 0d  ts(Skipped) \n].
1920: 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 69 66  .    }....    if
1930: 20 7b 24 3a 3a 74 63 6c 74 65 73 74 3a 3a 6e 75   {$::tcltest::nu
1940: 6d 54 65 73 74 73 28 54 6f 74 61 6c 29 20 3e 20  mTests(Total) > 
1950: 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20  0} then {..     
1960: 20 74 70 75 74 73 20 24 74 65 73 74 5f 63 68 61   tputs $test_cha
1970: 6e 6e 65 6c 20 5c 0d 0a 20 20 20 20 20 20 20 20  nnel \..        
1980: 20 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22 54    [appendArgs "T
1990: 4f 54 41 4c 3a 20 22 20 24 3a 3a 74 63 6c 74 65  OTAL: " $::tclte
19a0: 73 74 3a 3a 6e 75 6d 54 65 73 74 73 28 54 6f 74  st::numTests(Tot
19b0: 61 6c 29 20 5c 6e 5d 0d 0a 0d 0a 20 20 20 20 20  al) \n]....     
19c0: 20 69 66 20 7b 24 3a 3a 74 63 6c 74 65 73 74 3a   if {$::tcltest:
19d0: 3a 6e 75 6d 54 65 73 74 73 28 53 6b 69 70 70 65  :numTests(Skippe
19e0: 64 29 20 3e 20 30 7d 20 74 68 65 6e 20 7b 0d 0a  d) > 0} then {..
19f0: 20 20 20 20 20 20 20 20 73 65 74 20 70 65 72 63          set perc
1a00: 65 6e 74 20 5b 67 65 74 53 6b 69 70 50 65 72 63  ent [getSkipPerc
1a10: 65 6e 74 61 67 65 5d 0d 0a 20 20 20 20 20 20 20  entage]..       
1a20: 20 74 70 75 74 73 20 24 74 65 73 74 5f 63 68 61   tputs $test_cha
1a30: 6e 6e 65 6c 20 5b 61 70 70 65 6e 64 41 72 67 73  nnel [appendArgs
1a40: 20 22 53 4b 49 50 20 50 45 52 43 45 4e 54 41 47   "SKIP PERCENTAG
1a50: 45 3a 20 22 20 5c 0d 0a 20 20 20 20 20 20 20 20  E: " \..        
1a60: 20 20 20 20 5b 66 6f 72 6d 61 74 44 65 63 69 6d      [formatDecim
1a70: 61 6c 20 24 70 65 72 63 65 6e 74 5d 20 25 5c 6e  al $percent] %\n
1a80: 5d 0d 0a 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20  ]..      }....  
1a90: 20 20 20 20 73 65 74 20 70 65 72 63 65 6e 74 20      set percent 
1aa0: 5b 67 65 74 50 61 73 73 50 65 72 63 65 6e 74 61  [getPassPercenta
1ab0: 67 65 5d 0d 0a 20 20 20 20 20 20 74 70 75 74 73  ge]..      tputs
1ac0: 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 5b   $test_channel [
1ad0: 61 70 70 65 6e 64 41 72 67 73 20 22 50 41 53 53  appendArgs "PASS
1ae0: 20 50 45 52 43 45 4e 54 41 47 45 3a 20 22 20 5c   PERCENTAGE: " \
1af0: 0d 0a 20 20 20 20 20 20 20 20 20 20 5b 66 6f 72  ..          [for
1b00: 6d 61 74 44 65 63 69 6d 61 6c 20 24 70 65 72 63  matDecimal $perc
1b10: 65 6e 74 5d 20 25 5c 6e 5d 0d 0a 20 20 20 20 7d  ent] %\n]..    }
1b20: 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 23   else {..      #
1b30: 0d 0a 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20  ..      # NOTE: 
1b40: 4e 6f 20 74 65 73 74 73 2e 0d 0a 20 20 20 20 20  No tests...     
1b50: 20 23 0d 0a 20 20 20 20 20 20 73 65 74 20 70 65   #..      set pe
1b60: 72 63 65 6e 74 20 30 0d 0a 20 20 20 20 7d 0d 0a  rcent 0..    }..
1b70: 0d 0a 20 20 20 20 23 0d 0a 20 20 20 20 23 20 4e  ..    #..    # N
1b80: 4f 54 45 3a 20 48 61 73 20 74 68 65 20 74 65 73  OTE: Has the tes
1b90: 74 20 70 61 73 73 20 74 68 72 65 73 68 6f 6c 64  t pass threshold
1ba0: 20 62 65 65 6e 20 73 65 74 3f 20 20 49 66 20 73   been set?  If s
1bb0: 6f 2c 20 69 73 20 69 74 20 73 65 74 20 74 6f 0d  o, is it set to.
1bc0: 0a 20 20 20 20 23 20 20 20 20 20 20 20 74 68 65  .    #       the
1bd0: 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 3f 0d   default value?.
1be0: 0a 20 20 20 20 23 0d 0a 20 20 20 20 69 66 20 7b  .    #..    if {
1bf0: 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 65  ![info exists te
1c00: 73 74 5f 74 68 72 65 73 68 6f 6c 64 5d 20 7c 7c  st_threshold] ||
1c10: 20 24 74 65 73 74 5f 74 68 72 65 73 68 6f 6c 64   $test_threshold
1c20: 20 3d 3d 20 31 30 30 7d 20 74 68 65 6e 20 7b 0d   == 100} then {.
1c30: 0a 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20  .      #..      
1c40: 23 20 4e 4f 54 45 3a 20 54 68 65 20 74 65 73 74  # NOTE: The test
1c50: 20 70 61 73 73 20 74 68 72 65 73 68 6f 6c 64 20   pass threshold 
1c60: 69 73 20 73 65 74 20 74 6f 20 74 68 65 20 64 65  is set to the de
1c70: 66 61 75 6c 74 20 76 61 6c 75 65 20 28 31 30 30  fault value (100
1c80: 25 29 2e 0d 0a 20 20 20 20 20 20 23 20 20 20 20  %)...      #    
1c90: 20 20 20 43 68 65 63 6b 20 74 6f 20 6d 61 6b 65     Check to make
1ca0: 20 73 75 72 65 20 74 68 61 74 20 61 6c 6c 20 74   sure that all t
1cb0: 65 73 74 73 20 70 61 73 73 20 61 6e 64 20 74 68  ests pass and th
1cc0: 65 6e 20 73 65 74 20 74 68 65 0d 0a 20 20 20 20  en set the..    
1cd0: 20 20 23 20 20 20 20 20 20 20 65 78 69 74 20 63    #       exit c
1ce0: 6f 64 65 20 74 6f 20 73 75 63 63 65 73 73 3b 20  ode to success; 
1cf0: 6f 74 68 65 72 77 69 73 65 2c 20 77 65 20 73 65  otherwise, we se
1d00: 74 20 69 74 20 74 6f 20 66 61 69 6c 75 72 65 2e  t it to failure.
1d10: 0d 0a 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20  ..      #..     
1d20: 20 73 65 74 20 70 61 73 73 65 64 4f 72 53 6b 69   set passedOrSki
1d30: 70 70 65 64 20 5b 65 78 70 72 20 7b 24 3a 3a 74  pped [expr {$::t
1d40: 63 6c 74 65 73 74 3a 3a 6e 75 6d 54 65 73 74 73  cltest::numTests
1d50: 28 50 61 73 73 65 64 29 20 2b 20 5c 0d 0a 20 20  (Passed) + \..  
1d60: 20 20 20 20 20 20 20 20 24 3a 3a 74 63 6c 74 65          $::tclte
1d70: 73 74 3a 3a 6e 75 6d 54 65 73 74 73 28 53 6b 69  st::numTests(Ski
1d80: 70 70 65 64 29 7d 5d 0d 0a 0d 0a 20 20 20 20 20  pped)}]....     
1d90: 20 69 66 20 7b 24 70 61 73 73 65 64 4f 72 53 6b   if {$passedOrSk
1da0: 69 70 70 65 64 20 3d 3d 20 24 3a 3a 74 63 6c 74  ipped == $::tclt
1db0: 65 73 74 3a 3a 6e 75 6d 54 65 73 74 73 28 54 6f  est::numTests(To
1dc0: 74 61 6c 29 7d 20 74 68 65 6e 20 7b 0d 0a 20 20  tal)} then {..  
1dd0: 20 20 20 20 20 20 73 65 74 20 65 78 69 74 43 6f        set exitCo
1de0: 64 65 20 30 3b 20 23 20 53 75 63 63 65 73 73 2e  de 0; # Success.
1df0: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 74 70 75 74  ....        tput
1e00: 73 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20  s $test_channel 
1e10: 22 4f 56 45 52 41 4c 4c 20 52 45 53 55 4c 54 3a  "OVERALL RESULT:
1e20: 20 53 55 43 43 45 53 53 5c 6e 22 0d 0a 20 20 20   SUCCESS\n"..   
1e30: 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20     } else {..   
1e40: 20 20 20 20 20 73 65 74 20 65 78 69 74 43 6f 64       set exitCod
1e50: 65 20 31 3b 20 23 20 46 61 69 6c 75 72 65 2e 0d  e 1; # Failure..
1e60: 0a 0d 0a 20 20 20 20 20 20 20 20 74 70 75 74 73  ...        tputs
1e70: 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 22   $test_channel "
1e80: 4f 56 45 52 41 4c 4c 20 52 45 53 55 4c 54 3a 20  OVERALL RESULT: 
1e90: 46 41 49 4c 55 52 45 5c 6e 22 0d 0a 20 20 20 20  FAILURE\n"..    
1ea0: 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 75 6e 73    }....      uns
1eb0: 65 74 20 70 61 73 73 65 64 4f 72 53 6b 69 70 70  et passedOrSkipp
1ec0: 65 64 0d 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b  ed..    } else {
1ed0: 0d 0a 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20  ..      #..     
1ee0: 20 23 20 4e 4f 54 45 3a 20 54 68 65 79 20 73 70   # NOTE: They sp
1ef0: 65 63 69 66 69 65 64 20 61 20 6e 6f 6e 2d 64 65  ecified a non-de
1f00: 66 61 75 6c 74 20 74 65 73 74 20 70 61 73 73 20  fault test pass 
1f10: 74 68 72 65 73 68 6f 6c 64 2e 20 20 43 68 65 63  threshold.  Chec
1f20: 6b 20 74 6f 0d 0a 20 20 20 20 20 20 23 20 20 20  k to..      #   
1f30: 20 20 20 20 6d 61 6b 65 20 73 75 72 65 20 74 68      make sure th
1f40: 61 74 20 77 65 20 6d 65 65 74 20 6f 72 20 65 78  at we meet or ex
1f50: 63 65 65 64 20 74 68 65 20 72 65 71 75 69 72 65  ceed the require
1f60: 6d 65 6e 74 20 61 6e 64 20 74 68 65 6e 0d 0a 20  ment and then.. 
1f70: 20 20 20 20 20 23 20 20 20 20 20 20 20 73 65 74       #       set
1f80: 20 74 68 65 20 65 78 69 74 20 63 6f 64 65 20 74   the exit code t
1f90: 6f 20 73 75 63 63 65 73 73 3b 20 6f 74 68 65 72  o success; other
1fa0: 77 69 73 65 2c 20 73 65 74 20 69 74 20 74 6f 20  wise, set it to 
1fb0: 66 61 69 6c 75 72 65 2e 0d 0a 20 20 20 20 20 20  failure...      
1fc0: 23 0d 0a 20 20 20 20 20 20 69 66 20 7b 24 70 65  #..      if {$pe
1fd0: 72 63 65 6e 74 20 3e 3d 20 24 74 65 73 74 5f 74  rcent >= $test_t
1fe0: 68 72 65 73 68 6f 6c 64 7d 20 74 68 65 6e 20 7b  hreshold} then {
1ff0: 0d 0a 20 20 20 20 20 20 20 20 73 65 74 20 65 78  ..        set ex
2000: 69 74 43 6f 64 65 20 30 3b 20 23 20 53 75 63 63  itCode 0; # Succ
2010: 65 73 73 2e 0d 0a 0d 0a 20 20 20 20 20 20 20 20  ess.....        
2020: 74 70 75 74 73 20 24 74 65 73 74 5f 63 68 61 6e  tputs $test_chan
2030: 6e 65 6c 20 5b 61 70 70 65 6e 64 41 72 67 73 20  nel [appendArgs 
2040: 22 4f 56 45 52 41 4c 4c 20 52 45 53 55 4c 54 3a  "OVERALL RESULT:
2050: 20 53 55 43 43 45 53 53 20 28 22 20 5c 0d 0a 20   SUCCESS (" \.. 
2060: 20 20 20 20 20 20 20 20 20 20 20 24 70 65 72 63             $perc
2070: 65 6e 74 20 22 25 20 3e 3d 20 22 20 24 74 65 73  ent "% >= " $tes
2080: 74 5f 74 68 72 65 73 68 6f 6c 64 20 25 29 5c 6e  t_threshold %)\n
2090: 5d 0d 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 20  ]..      } else 
20a0: 7b 0d 0a 20 20 20 20 20 20 20 20 73 65 74 20 65  {..        set e
20b0: 78 69 74 43 6f 64 65 20 31 3b 20 23 20 46 61 69  xitCode 1; # Fai
20c0: 6c 75 72 65 2e 0d 0a 0d 0a 20 20 20 20 20 20 20  lure.....       
20d0: 20 74 70 75 74 73 20 24 74 65 73 74 5f 63 68 61   tputs $test_cha
20e0: 6e 6e 65 6c 20 5b 61 70 70 65 6e 64 41 72 67 73  nnel [appendArgs
20f0: 20 22 4f 56 45 52 41 4c 4c 20 52 45 53 55 4c 54   "OVERALL RESULT
2100: 3a 20 46 41 49 4c 55 52 45 20 28 22 20 5c 0d 0a  : FAILURE (" \..
2110: 20 20 20 20 20 20 20 20 20 20 20 20 24 70 65 72              $per
2120: 63 65 6e 74 20 22 25 20 3c 20 22 20 24 74 65 73  cent "% < " $tes
2130: 74 5f 74 68 72 65 73 68 6f 6c 64 20 25 29 5c 6e  t_threshold %)\n
2140: 5d 0d 0a 20 20 20 20 20 20 7d 0d 0a 20 20 20 20  ]..      }..    
2150: 7d 0d 0a 0d 0a 20 20 20 20 75 6e 73 65 74 20 70  }....    unset p
2160: 65 72 63 65 6e 74 0d 0a 0d 0a 20 20 20 20 74 70  ercent....    tp
2170: 75 74 73 20 24 74 65 73 74 5f 63 68 61 6e 6e 65  uts $test_channe
2180: 6c 20 5c 6e 3b 20 23 20 4e 4f 54 45 3a 20 42 6c  l \n; # NOTE: Bl
2190: 61 6e 6b 20 6c 69 6e 65 2e 0d 0a 0d 0a 20 20 20  ank line.....   
21a0: 20 23 0d 0a 20 20 20 20 23 20 4e 4f 54 45 3a 20   #..    # NOTE: 
21b0: 43 61 6c 6c 20 74 68 65 20 54 63 6c 20 74 65 73  Call the Tcl tes
21c0: 74 20 63 6c 65 61 6e 75 70 20 70 72 6f 63 65 64  t cleanup proced
21d0: 75 72 65 20 6e 6f 77 20 74 6f 20 67 69 76 65 20  ure now to give 
21e0: 69 74 20 61 20 63 68 61 6e 63 65 20 74 6f 20 64  it a chance to d
21f0: 6f 0d 0a 20 20 20 20 23 20 20 20 20 20 20 20 61  o..    #       a
2200: 6e 79 20 63 75 73 74 6f 6d 20 63 6c 65 61 6e 75  ny custom cleanu
2210: 70 20 74 68 61 74 20 68 61 73 20 62 65 65 6e 20  p that has been 
2220: 72 65 67 69 73 74 65 72 65 64 2e 0d 0a 20 20 20  registered...   
2230: 20 23 0d 0a 20 20 20 20 3a 3a 74 63 6c 74 65 73   #..    ::tcltes
2240: 74 3a 3a 63 6c 65 61 6e 75 70 54 65 73 74 73 0d  t::cleanupTests.
2250: 0a 20 20 7d 0d 0a 0d 0a 20 20 23 0d 0a 20 20 23  .  }....  #..  #
2260: 20 4e 4f 54 45 3a 20 43 68 65 63 6b 20 66 6f 72   NOTE: Check for
2270: 20 61 6e 64 20 70 72 6f 63 65 73 73 20 61 6e 79   and process any
2280: 20 63 75 73 74 6f 6d 20 74 65 73 74 20 65 70 69   custom test epi
2290: 6c 6f 67 75 65 20 73 63 72 69 70 74 20 74 68 61  logue script tha
22a0: 74 20 6d 61 79 0d 0a 20 20 23 20 20 20 20 20 20  t may..  #      
22b0: 20 62 65 20 73 65 74 20 69 6e 20 74 68 65 20 65   be set in the e
22c0: 6e 76 69 72 6f 6e 6d 65 6e 74 2e 0d 0a 20 20 23  nvironment...  #
22d0: 0d 0a 20 20 73 6f 75 72 63 65 49 66 56 61 6c 69  ..  sourceIfVali
22e0: 64 20 65 70 69 6c 6f 67 75 65 20 5b 67 65 74 45  d epilogue [getE
22f0: 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 72 69 61 62  nvironmentVariab
2300: 6c 65 20 74 65 73 74 45 70 69 6c 6f 67 75 65 5d  le testEpilogue]
2310: 0d 0a 0d 0a 20 20 23 0d 0a 20 20 23 20 4e 4f 54  ....  #..  # NOT
2320: 45 3a 20 41 72 65 20 77 65 20 62 65 69 6e 67 20  E: Are we being 
2330: 70 72 65 76 65 6e 74 65 64 20 66 72 6f 6d 20 65  prevented from e
2340: 76 61 6c 75 61 74 69 6e 67 20 74 68 65 20 22 70  valuating the "p
2350: 6f 73 74 2d 74 65 73 74 22 20 73 63 72 69 70 74  ost-test" script
2360: 3f 0d 0a 20 20 23 0d 0a 20 20 69 66 20 7b 21 5b  ?..  #..  if {![
2370: 69 6e 66 6f 20 65 78 69 73 74 73 20 6e 6f 28 70  info exists no(p
2380: 6f 73 74 54 65 73 74 29 5d 7d 20 74 68 65 6e 20  ostTest)]} then 
2390: 7b 0d 0a 20 20 20 20 23 0d 0a 20 20 20 20 23 20  {..    #..    # 
23a0: 4e 4f 54 45 3a 20 45 76 61 6c 75 61 74 65 20 74  NOTE: Evaluate t
23b0: 68 65 20 73 70 65 63 69 66 69 65 64 20 70 6f 73  he specified pos
23c0: 74 2d 74 65 73 74 20 73 63 72 69 70 74 20 6e 6f  t-test script no
23d0: 77 2c 20 69 66 20 61 6e 79 2e 0d 0a 20 20 20 20  w, if any...    
23e0: 23 0d 0a 20 20 20 20 69 66 20 7b 5b 69 6e 66 6f  #..    if {[info
23f0: 20 65 78 69 73 74 73 20 74 65 73 74 5f 66 6c 61   exists test_fla
2400: 67 73 28 2d 70 6f 73 74 54 65 73 74 29 5d 20 26  gs(-postTest)] &
2410: 26 20 5c 0d 0a 20 20 20 20 20 20 20 20 5b 73 74  & \..        [st
2420: 72 69 6e 67 20 6c 65 6e 67 74 68 20 24 74 65 73  ring length $tes
2430: 74 5f 66 6c 61 67 73 28 2d 70 6f 73 74 54 65 73  t_flags(-postTes
2440: 74 29 5d 20 3e 20 30 7d 20 74 68 65 6e 20 7b 0d  t)] > 0} then {.
2450: 0a 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20  .      #..      
2460: 23 20 54 4f 44 4f 3a 20 50 65 72 68 61 70 73 20  # TODO: Perhaps 
2470: 75 73 65 20 5b 75 70 6c 65 76 65 6c 5d 20 68 65  use [uplevel] he
2480: 72 65 20 69 6e 73 74 65 61 64 20 6f 66 20 5b 65  re instead of [e
2490: 76 61 6c 5d 2e 20 20 46 6f 72 20 6e 6f 77 2c 20  val].  For now, 
24a0: 69 74 20 64 6f 65 73 0d 0a 20 20 20 20 20 20 23  it does..      #
24b0: 20 20 20 20 20 20 20 6e 6f 74 20 6d 61 74 74 65         not matte
24c0: 72 20 73 69 6e 63 65 20 77 65 20 65 6e 66 6f 72  r since we enfor
24d0: 63 65 20 74 68 69 73 20 66 69 6c 65 20 62 65 69  ce this file bei
24e0: 6e 67 20 65 76 61 6c 75 61 74 65 64 20 61 74 20  ng evaluated at 
24f0: 74 68 65 0d 0a 20 20 20 20 20 20 23 20 20 20 20  the..      #    
2500: 20 20 20 74 6f 70 2d 6c 65 76 65 6c 2e 0d 0a 20     top-level... 
2510: 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 65 76       #..      ev
2520: 61 6c 20 24 74 65 73 74 5f 66 6c 61 67 73 28 2d  al $test_flags(-
2530: 70 6f 73 74 54 65 73 74 29 0d 0a 20 20 20 20 7d  postTest)..    }
2540: 0d 0a 20 20 7d 0d 0a 0d 0a 20 20 23 0d 0a 20 20  ..  }....  #..  
2550: 23 20 4e 4f 54 45 3a 20 44 6f 20 77 65 20 6e 65  # NOTE: Do we ne
2560: 65 64 20 74 6f 20 65 78 69 74 20 6e 6f 77 3f 0d  ed to exit now?.
2570: 0a 20 20 23 0d 0a 20 20 69 66 20 7b 5b 69 73 45  .  #..  if {[isE
2580: 78 69 74 4f 6e 43 6f 6d 70 6c 65 74 65 5d 7d 20  xitOnComplete]} 
2590: 74 68 65 6e 20 7b 0d 0a 20 20 20 20 23 0d 0a 20  then {..    #.. 
25a0: 20 20 20 23 20 4e 4f 54 45 3a 20 45 78 69 74 20     # NOTE: Exit 
25b0: 6e 6f 77 2e 20 20 49 6e 20 45 61 67 6c 65 2c 20  now.  In Eagle, 
25c0: 74 68 69 73 20 77 69 6c 6c 20 6e 6f 74 20 65 78  this will not ex
25d0: 69 74 20 74 68 65 20 65 6e 74 69 72 65 20 70 72  it the entire pr
25e0: 6f 63 65 73 73 2e 0d 0a 20 20 20 20 23 20 20 20  ocess...    #   
25f0: 20 20 20 20 5a 65 72 6f 20 28 30 29 20 77 69 6c      Zero (0) wil
2600: 6c 20 62 65 20 74 68 65 20 65 78 69 74 20 63 6f  l be the exit co
2610: 64 65 20 69 66 20 61 6c 6c 20 74 68 65 20 73 65  de if all the se
2620: 6c 65 63 74 65 64 20 74 65 73 74 73 20 68 61 76  lected tests hav
2630: 65 0d 0a 20 20 20 20 23 20 20 20 20 20 20 20 73  e..    #       s
2640: 75 63 63 65 65 64 65 64 20 6f 72 20 74 68 65 20  ucceeded or the 
2650: 74 65 73 74 20 73 75 63 63 65 73 73 20 74 68 72  test success thr
2660: 65 73 68 6f 6c 64 20 68 61 73 20 62 65 65 6e 20  eshold has been 
2670: 6d 65 74 20 6f 72 0d 0a 20 20 20 20 23 20 20 20  met or..    #   
2680: 20 20 20 20 65 78 63 65 65 64 65 64 3b 20 6f 74      exceeded; ot
2690: 68 65 72 77 69 73 65 2c 20 6f 6e 65 20 28 31 29  herwise, one (1)
26a0: 20 77 69 6c 6c 20 62 65 20 74 68 65 20 65 78 69   will be the exi
26b0: 74 20 63 6f 64 65 2e 0d 0a 20 20 20 20 23 0d 0a  t code...    #..
26c0: 20 20 20 20 65 78 69 74 20 24 65 78 69 74 43 6f      exit $exitCo
26d0: 64 65 0d 0a 20 20 7d 20 65 6c 73 65 20 7b 0d 0a  de..  } else {..
26e0: 20 20 20 20 23 0d 0a 20 20 20 20 23 20 4e 4f 54      #..    # NOT
26f0: 45 3a 20 46 6f 72 20 45 61 67 6c 65 2c 20 65 76  E: For Eagle, ev
2700: 65 6e 20 77 68 65 6e 20 6e 6f 74 20 65 78 69 74  en when not exit
2710: 69 6e 67 2c 20 77 65 20 73 74 69 6c 6c 20 73 65  ing, we still se
2720: 74 20 74 68 65 20 45 78 69 74 43 6f 64 65 0d 0a  t the ExitCode..
2730: 20 20 20 20 23 20 20 20 20 20 20 20 70 72 6f 70      #       prop
2740: 65 72 74 79 20 6f 66 20 74 68 65 20 69 6e 74 65  erty of the inte
2750: 72 70 72 65 74 65 72 2e 0d 0a 20 20 20 20 23 0d  rpreter...    #.
2760: 0a 20 20 20 20 69 66 20 7b 5b 69 73 45 61 67 6c  .    if {[isEagl
2770: 65 5d 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20  e]} then {..    
2780: 20 20 6f 62 6a 65 63 74 20 69 6e 76 6f 6b 65 20    object invoke 
2790: 2d 61 6c 69 61 73 20 49 6e 74 65 72 70 72 65 74  -alias Interpret
27a0: 65 72 2e 47 65 74 41 63 74 69 76 65 20 45 78 69  er.GetActive Exi
27b0: 74 43 6f 64 65 20 24 65 78 69 74 43 6f 64 65 0d  tCode $exitCode.
27c0: 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 75 6e  .    }....    un
27d0: 73 65 74 20 65 78 69 74 43 6f 64 65 0d 0a 20 20  set exitCode..  
27e0: 7d 0d 0a 7d 0d 0a                                }..}..