System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 12f2eccd927864265ffe9947c10858ac464d101d:


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 30 20 62 79 20 4a 6f 65 20 4d  07-2010 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 74 70 75 74 73      #..    tputs
02f0: 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 5b   $test_channel [
0300: 61 70 70 65 6e 64 41 72 67 73 20 22 2d 2d 2d 2d  appendArgs "----
0310: 20 65 6e 64 69 6e 67 20 6d 65 6d 6f 72 79 3a 20   ending memory: 
0320: 22 20 5c 0d 0a 20 20 20 20 20 20 20 20 5b 66 6f  " \..        [fo
0330: 72 6d 61 74 4c 69 73 74 41 73 44 69 63 74 20 5b  rmatListAsDict [
0340: 64 65 62 75 67 20 6d 65 6d 6f 72 79 5d 5d 20 5c  debug memory]] \
0350: 6e 5d 0d 0a 0d 0a 20 20 20 20 23 0d 0a 20 20 20  n]....    #..   
0360: 20 23 20 4e 4f 54 45 3a 20 53 68 6f 77 20 74 68   # NOTE: Show th
0370: 65 20 63 75 72 72 65 6e 74 20 73 74 61 74 65 20  e current state 
0380: 6f 66 20 74 68 65 20 6e 61 74 69 76 65 20 73 74  of the native st
0390: 61 63 6b 2e 0d 0a 20 20 20 20 23 0d 0a 20 20 20  ack...    #..   
03a0: 20 63 61 74 63 68 20 7b 64 65 62 75 67 20 73 74   catch {debug st
03b0: 61 63 6b 20 74 72 75 65 7d 20 73 74 61 63 6b 0d  ack true} stack.
03c0: 0a 0d 0a 20 20 20 20 74 70 75 74 73 20 24 74 65  ...    tputs $te
03d0: 73 74 5f 63 68 61 6e 6e 65 6c 20 5b 61 70 70 65  st_channel [appe
03e0: 6e 64 41 72 67 73 20 22 2d 2d 2d 2d 20 65 6e 64  ndArgs "---- end
03f0: 69 6e 67 20 73 74 61 63 6b 3a 20 22 20 5c 0d 0a  ing stack: " \..
0400: 20 20 20 20 20 20 20 20 5b 66 6f 72 6d 61 74 4c          [formatL
0410: 69 73 74 41 73 44 69 63 74 20 24 73 74 61 63 6b  istAsDict $stack
0420: 5d 20 5c 6e 5d 0d 0a 0d 0a 20 20 20 20 75 6e 73  ] \n]....    uns
0430: 65 74 20 73 74 61 63 6b 0d 0a 20 20 7d 0d 0a 0d  et stack..  }...
0440: 0a 20 20 23 0d 0a 20 20 23 20 4e 4f 54 45 3a 20  .  #..  # NOTE: 
0450: 53 68 6f 77 20 77 68 65 6e 20 74 68 65 20 74 65  Show when the te
0460: 73 74 73 20 61 63 74 75 61 6c 6c 79 20 65 6e 64  sts actually end
0470: 65 64 20 28 6e 6f 77 29 2e 0d 0a 20 20 23 0d 0a  ed (now)...  #..
0480: 20 20 74 70 75 74 73 20 24 74 65 73 74 5f 63 68    tputs $test_ch
0490: 61 6e 6e 65 6c 20 5b 61 70 70 65 6e 64 41 72 67  annel [appendArg
04a0: 73 20 22 2d 2d 2d 2d 20 74 65 73 74 73 20 65 6e  s "---- tests en
04b0: 64 65 64 20 61 74 20 22 20 5c 0d 0a 20 20 20 20  ded at " \..    
04c0: 20 20 5b 63 6c 6f 63 6b 20 66 6f 72 6d 61 74 20    [clock format 
04d0: 5b 63 6c 6f 63 6b 20 73 65 63 6f 6e 64 73 5d 5d  [clock seconds]]
04e0: 20 5c 6e 5d 0d 0a 0d 0a 20 20 69 66 20 7b 5b 69   \n]....  if {[i
04f0: 73 45 61 67 6c 65 5d 7d 20 74 68 65 6e 20 7b 0d  sEagle]} then {.
0500: 0a 20 20 20 20 74 70 75 74 73 20 24 74 65 73 74  .    tputs $test
0510: 5f 63 68 61 6e 6e 65 6c 20 5c 6e 3b 20 23 20 4e  _channel \n; # N
0520: 4f 54 45 3a 20 42 6c 61 6e 6b 20 6c 69 6e 65 2e  OTE: Blank line.
0530: 0d 0a 0d 0a 20 20 20 20 69 66 20 7b 24 65 61 67  ....    if {$eag
0540: 6c 65 5f 74 65 73 74 73 28 70 61 73 73 65 64 29  le_tests(passed)
0550: 20 3e 20 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20   > 0} then {..  
0560: 20 20 20 20 68 6f 73 74 20 72 65 73 75 6c 74 20      host result 
0570: 4f 6b 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22  Ok [appendArgs "
0580: 50 41 53 53 45 44 3a 20 22 20 24 65 61 67 6c 65  PASSED: " $eagle
0590: 5f 74 65 73 74 73 28 70 61 73 73 65 64 29 20 5c  _tests(passed) \
05a0: 6e 5d 0d 0a 20 20 20 20 20 20 74 6c 6f 67 20 5b  n]..      tlog [
05b0: 61 70 70 65 6e 64 41 72 67 73 20 22 50 41 53 53  appendArgs "PASS
05c0: 45 44 3a 20 22 20 24 65 61 67 6c 65 5f 74 65 73  ED: " $eagle_tes
05d0: 74 73 28 70 61 73 73 65 64 29 20 5c 6e 5d 0d 0a  ts(passed) \n]..
05e0: 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 69 66 20      }....    if 
05f0: 7b 24 65 61 67 6c 65 5f 74 65 73 74 73 28 66 61  {$eagle_tests(fa
0600: 69 6c 65 64 29 20 3e 20 30 7d 20 74 68 65 6e 20  iled) > 0} then 
0610: 7b 0d 0a 20 20 20 20 20 20 68 6f 73 74 20 72 65  {..      host re
0620: 73 75 6c 74 20 45 72 72 6f 72 20 5b 61 70 70 65  sult Error [appe
0630: 6e 64 41 72 67 73 20 22 46 41 49 4c 45 44 3a 20  ndArgs "FAILED: 
0640: 22 20 24 65 61 67 6c 65 5f 74 65 73 74 73 28 66  " $eagle_tests(f
0650: 61 69 6c 65 64 29 20 5c 6e 5d 0d 0a 20 20 20 20  ailed) \n]..    
0660: 20 20 74 6c 6f 67 20 5b 61 70 70 65 6e 64 41 72    tlog [appendAr
0670: 67 73 20 22 46 41 49 4c 45 44 3a 20 22 20 24 65  gs "FAILED: " $e
0680: 61 67 6c 65 5f 74 65 73 74 73 28 66 61 69 6c 65  agle_tests(faile
0690: 64 29 20 5c 6e 5d 0d 0a 0d 0a 20 20 20 20 20 20  d) \n]....      
06a0: 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 65 61  if {[llength $ea
06b0: 67 6c 65 5f 74 65 73 74 73 28 66 61 69 6c 65 64  gle_tests(failed
06c0: 4e 61 6d 65 73 29 5d 20 3e 20 30 7d 20 74 68 65  Names)] > 0} the
06d0: 6e 20 7b 0d 0a 20 20 20 20 20 20 20 20 68 6f 73  n {..        hos
06e0: 74 20 72 65 73 75 6c 74 20 45 72 72 6f 72 20 5b  t result Error [
06f0: 61 70 70 65 6e 64 41 72 67 73 20 22 46 41 49 4c  appendArgs "FAIL
0700: 45 44 3a 20 22 20 24 65 61 67 6c 65 5f 74 65 73  ED: " $eagle_tes
0710: 74 73 28 66 61 69 6c 65 64 4e 61 6d 65 73 29 20  ts(failedNames) 
0720: 5c 6e 5d 0d 0a 20 20 20 20 20 20 20 20 74 6c 6f  \n]..        tlo
0730: 67 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22 46  g [appendArgs "F
0740: 41 49 4c 45 44 3a 20 22 20 24 65 61 67 6c 65 5f  AILED: " $eagle_
0750: 74 65 73 74 73 28 66 61 69 6c 65 64 4e 61 6d 65  tests(failedName
0760: 73 29 20 5c 6e 5d 0d 0a 20 20 20 20 20 20 7d 0d  s) \n]..      }.
0770: 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 69 66  .    }....    if
0780: 20 7b 24 65 61 67 6c 65 5f 74 65 73 74 73 28 73   {$eagle_tests(s
0790: 6b 69 70 70 65 64 29 20 3e 20 30 7d 20 74 68 65  kipped) > 0} the
07a0: 6e 20 7b 0d 0a 20 20 20 20 20 20 68 6f 73 74 20  n {..      host 
07b0: 72 65 73 75 6c 74 20 42 72 65 61 6b 20 5b 61 70  result Break [ap
07c0: 70 65 6e 64 41 72 67 73 20 22 53 4b 49 50 50 45  pendArgs "SKIPPE
07d0: 44 3a 20 22 20 24 65 61 67 6c 65 5f 74 65 73 74  D: " $eagle_test
07e0: 73 28 73 6b 69 70 70 65 64 29 20 5c 6e 5d 0d 0a  s(skipped) \n]..
07f0: 20 20 20 20 20 20 74 6c 6f 67 20 5b 61 70 70 65        tlog [appe
0800: 6e 64 41 72 67 73 20 22 53 4b 49 50 50 45 44 3a  ndArgs "SKIPPED:
0810: 20 22 20 24 65 61 67 6c 65 5f 74 65 73 74 73 28   " $eagle_tests(
0820: 73 6b 69 70 70 65 64 29 20 5c 6e 5d 0d 0a 20 20  skipped) \n]..  
0830: 20 20 7d 0d 0a 0d 0a 20 20 20 20 69 66 20 7b 24    }....    if {$
0840: 65 61 67 6c 65 5f 74 65 73 74 73 28 74 6f 74 61  eagle_tests(tota
0850: 6c 29 20 3e 20 30 7d 20 74 68 65 6e 20 7b 0d 0a  l) > 0} then {..
0860: 20 20 20 20 20 20 68 6f 73 74 20 72 65 73 75 6c        host resul
0870: 74 20 52 65 74 75 72 6e 20 5b 61 70 70 65 6e 64  t Return [append
0880: 41 72 67 73 20 22 54 4f 54 41 4c 3a 20 22 20 24  Args "TOTAL: " $
0890: 65 61 67 6c 65 5f 74 65 73 74 73 28 74 6f 74 61  eagle_tests(tota
08a0: 6c 29 20 5c 6e 5d 0d 0a 20 20 20 20 20 20 74 6c  l) \n]..      tl
08b0: 6f 67 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22  og [appendArgs "
08c0: 54 4f 54 41 4c 3a 20 22 20 24 65 61 67 6c 65 5f  TOTAL: " $eagle_
08d0: 74 65 73 74 73 28 74 6f 74 61 6c 29 20 5c 6e 5d  tests(total) \n]
08e0: 0d 0a 0d 0a 20 20 20 20 20 20 23 0d 0a 20 20 20  ....      #..   
08f0: 20 20 20 23 20 48 41 43 4b 3a 20 54 65 6d 70 6f     # HACK: Tempo
0900: 72 61 72 69 6c 79 20 6d 6f 64 69 66 79 20 74 68  rarily modify th
0910: 65 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74  e floating point
0920: 20 70 72 65 63 69 73 69 6f 6e 20 73 6f 20 74 68   precision so th
0930: 61 74 20 74 68 65 0d 0a 20 20 20 20 20 20 23 20  at the..      # 
0940: 20 20 20 20 20 20 70 61 73 73 20 70 65 72 63 65        pass perce
0950: 6e 74 61 67 65 20 64 6f 65 73 20 6e 6f 74 20 65  ntage does not e
0960: 6e 64 20 75 70 20 77 69 74 68 20 65 78 63 65 73  nd up with exces
0970: 73 69 76 65 20 64 65 74 61 69 6c 2e 20 20 49 6e  sive detail.  In
0980: 0d 0a 20 20 20 20 20 20 23 20 20 20 20 20 20 20  ..      #       
0990: 74 68 65 6f 72 79 2c 20 77 65 20 63 6f 75 6c 64  theory, we could
09a0: 20 75 73 65 20 5b 73 74 72 69 6e 67 20 66 6f 72   use [string for
09b0: 6d 61 74 5d 20 68 65 72 65 3b 20 68 6f 77 65 76  mat] here; howev
09c0: 65 72 2c 20 74 68 61 74 0d 0a 20 20 20 20 20 20  er, that..      
09d0: 23 20 20 20 20 20 20 20 77 6f 75 6c 64 20 66 61  #       would fa
09e0: 69 6c 20 75 6e 64 65 72 20 4d 6f 6e 6f 2e 0d 0a  il under Mono...
09f0: 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 69        #..      i
0a00: 66 20 7b 24 74 63 6c 5f 70 72 65 63 69 73 69 6f  f {$tcl_precisio
0a10: 6e 20 21 3d 20 34 7d 20 74 68 65 6e 20 7b 0d 0a  n != 4} then {..
0a20: 20 20 20 20 20 20 20 20 73 65 74 20 74 63 6c 5f          set tcl_
0a30: 70 72 65 63 69 73 69 6f 6e 5f 73 61 76 65 20 24  precision_save $
0a40: 74 63 6c 5f 70 72 65 63 69 73 69 6f 6e 0d 0a 20  tcl_precision.. 
0a50: 20 20 20 20 20 20 20 73 65 74 20 74 63 6c 5f 70         set tcl_p
0a60: 72 65 63 69 73 69 6f 6e 20 34 0d 0a 20 20 20 20  recision 4..    
0a70: 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 69 66 20    }....      if 
0a80: 7b 24 65 61 67 6c 65 5f 74 65 73 74 73 28 73 6b  {$eagle_tests(sk
0a90: 69 70 70 65 64 29 20 3e 20 30 7d 20 74 68 65 6e  ipped) > 0} then
0aa0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 73 65 74 20   {..        set 
0ab0: 70 65 72 63 65 6e 74 20 5b 67 65 74 53 6b 69 70  percent [getSkip
0ac0: 50 65 72 63 65 6e 74 61 67 65 5d 0d 0a 20 20 20  Percentage]..   
0ad0: 20 20 20 20 20 68 6f 73 74 20 72 65 73 75 6c 74       host result
0ae0: 20 42 72 65 61 6b 20 5b 61 70 70 65 6e 64 41 72   Break [appendAr
0af0: 67 73 20 22 53 4b 49 50 20 50 45 52 43 45 4e 54  gs "SKIP PERCENT
0b00: 41 47 45 3a 20 22 20 24 70 65 72 63 65 6e 74 20  AGE: " $percent 
0b10: 25 5c 6e 5d 0d 0a 20 20 20 20 20 20 20 20 74 6c  %\n]..        tl
0b20: 6f 67 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22  og [appendArgs "
0b30: 53 4b 49 50 20 50 45 52 43 45 4e 54 41 47 45 3a  SKIP PERCENTAGE:
0b40: 20 22 20 24 70 65 72 63 65 6e 74 20 25 5c 6e 5d   " $percent %\n]
0b50: 0d 0a 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20  ..      }....   
0b60: 20 20 20 73 65 74 20 70 65 72 63 65 6e 74 20 5b     set percent [
0b70: 67 65 74 50 61 73 73 50 65 72 63 65 6e 74 61 67  getPassPercentag
0b80: 65 5d 0d 0a 20 20 20 20 20 20 68 6f 73 74 20 72  e]..      host r
0b90: 65 73 75 6c 74 20 52 65 74 75 72 6e 20 5b 61 70  esult Return [ap
0ba0: 70 65 6e 64 41 72 67 73 20 22 50 41 53 53 20 50  pendArgs "PASS P
0bb0: 45 52 43 45 4e 54 41 47 45 3a 20 22 20 24 70 65  ERCENTAGE: " $pe
0bc0: 72 63 65 6e 74 20 25 5c 6e 5d 0d 0a 20 20 20 20  rcent %\n]..    
0bd0: 20 20 74 6c 6f 67 20 5b 61 70 70 65 6e 64 41 72    tlog [appendAr
0be0: 67 73 20 22 50 41 53 53 20 50 45 52 43 45 4e 54  gs "PASS PERCENT
0bf0: 41 47 45 3a 20 22 20 24 70 65 72 63 65 6e 74 25  AGE: " $percent%
0c00: 20 5c 6e 5d 0d 0a 0d 0a 20 20 20 20 20 20 23 0d   \n]....      #.
0c10: 0a 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20 52  .      # NOTE: R
0c20: 65 73 74 6f 72 65 20 74 68 65 20 73 61 76 65 64  estore the saved
0c30: 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20   floating point 
0c40: 70 72 65 63 69 73 69 6f 6e 2e 0d 0a 20 20 20 20  precision...    
0c50: 20 20 23 0d 0a 20 20 20 20 20 20 69 66 20 7b 5b    #..      if {[
0c60: 69 6e 66 6f 20 65 78 69 73 74 73 20 74 63 6c 5f  info exists tcl_
0c70: 70 72 65 63 69 73 69 6f 6e 5f 73 61 76 65 5d 7d  precision_save]}
0c80: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 20   then {..       
0c90: 20 73 65 74 20 74 63 6c 5f 70 72 65 63 69 73 69   set tcl_precisi
0ca0: 6f 6e 20 24 74 63 6c 5f 70 72 65 63 69 73 69 6f  on $tcl_precisio
0cb0: 6e 5f 73 61 76 65 0d 0a 20 20 20 20 20 20 20 20  n_save..        
0cc0: 75 6e 73 65 74 20 74 63 6c 5f 70 72 65 63 69 73  unset tcl_precis
0cd0: 69 6f 6e 5f 73 61 76 65 0d 0a 20 20 20 20 20 20  ion_save..      
0ce0: 7d 0d 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d  }..    } else {.
0cf0: 0a 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20  .      #..      
0d00: 23 20 4e 4f 54 45 3a 20 4e 6f 20 74 65 73 74 73  # NOTE: No tests
0d10: 2e 0d 0a 20 20 20 20 20 20 23 0d 0a 20 20 20 20  ...      #..    
0d20: 20 20 73 65 74 20 70 65 72 63 65 6e 74 20 30 0d    set percent 0.
0d30: 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 23 0d  .    }....    #.
0d40: 0a 20 20 20 20 23 20 4e 4f 54 45 3a 20 48 61 73  .    # NOTE: Has
0d50: 20 74 68 65 20 74 65 73 74 20 70 61 73 73 20 74   the test pass t
0d60: 68 72 65 73 68 6f 6c 64 20 62 65 65 6e 20 73 65  hreshold been se
0d70: 74 3f 20 20 49 66 20 73 6f 2c 20 69 73 20 69 74  t?  If so, is it
0d80: 20 73 65 74 20 74 6f 0d 0a 20 20 20 20 23 20 20   set to..    #  
0d90: 20 20 20 20 20 74 68 65 20 64 65 66 61 75 6c 74       the default
0da0: 20 76 61 6c 75 65 3f 0d 0a 20 20 20 20 23 0d 0a   value?..    #..
0db0: 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65      if {![info e
0dc0: 78 69 73 74 73 20 74 65 73 74 5f 74 68 72 65 73  xists test_thres
0dd0: 68 6f 6c 64 5d 20 7c 7c 20 24 74 65 73 74 5f 74  hold] || $test_t
0de0: 68 72 65 73 68 6f 6c 64 20 3d 3d 20 31 30 30 7d  hreshold == 100}
0df0: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 23   then {..      #
0e00: 0d 0a 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20  ..      # NOTE: 
0e10: 54 68 65 20 74 65 73 74 20 70 61 73 73 20 74 68  The test pass th
0e20: 72 65 73 68 6f 6c 64 20 69 73 20 73 65 74 20 74  reshold is set t
0e30: 6f 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 61  o the default va
0e40: 6c 75 65 20 28 31 30 30 25 29 2e 0d 0a 20 20 20  lue (100%)...   
0e50: 20 20 20 23 20 20 20 20 20 20 20 43 68 65 63 6b     #       Check
0e60: 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68   to make sure th
0e70: 61 74 20 61 6c 6c 20 74 65 73 74 73 20 70 61 73  at all tests pas
0e80: 73 20 61 6e 64 20 74 68 65 6e 20 73 65 74 20 74  s and then set t
0e90: 68 65 0d 0a 20 20 20 20 20 20 23 20 20 20 20 20  he..      #     
0ea0: 20 20 65 78 69 74 20 63 6f 64 65 20 74 6f 20 73    exit code to s
0eb0: 75 63 63 65 73 73 3b 20 6f 74 68 65 72 77 69 73  uccess; otherwis
0ec0: 65 2c 20 77 65 20 73 65 74 20 69 74 20 74 6f 20  e, we set it to 
0ed0: 66 61 69 6c 75 72 65 2e 0d 0a 20 20 20 20 20 20  failure...      
0ee0: 23 0d 0a 20 20 20 20 20 20 73 65 74 20 70 61 73  #..      set pas
0ef0: 73 65 64 4f 72 53 6b 69 70 70 65 64 20 5b 65 78  sedOrSkipped [ex
0f00: 70 72 20 7b 24 65 61 67 6c 65 5f 74 65 73 74 73  pr {$eagle_tests
0f10: 28 70 61 73 73 65 64 29 20 2b 20 5c 0d 0a 20 20  (passed) + \..  
0f20: 20 20 20 20 20 20 20 20 24 65 61 67 6c 65 5f 74          $eagle_t
0f30: 65 73 74 73 28 73 6b 69 70 70 65 64 29 7d 5d 0d  ests(skipped)}].
0f40: 0a 0d 0a 20 20 20 20 20 20 69 66 20 7b 24 70 61  ...      if {$pa
0f50: 73 73 65 64 4f 72 53 6b 69 70 70 65 64 20 3d 3d  ssedOrSkipped ==
0f60: 20 24 65 61 67 6c 65 5f 74 65 73 74 73 28 74 6f   $eagle_tests(to
0f70: 74 61 6c 29 7d 20 74 68 65 6e 20 7b 0d 0a 20 20  tal)} then {..  
0f80: 20 20 20 20 20 20 73 65 74 20 65 78 69 74 43 6f        set exitCo
0f90: 64 65 20 53 75 63 63 65 73 73 0d 0a 0d 0a 20 20  de Success....  
0fa0: 20 20 20 20 20 20 68 6f 73 74 20 72 65 73 75 6c        host resul
0fb0: 74 20 4f 6b 20 22 4f 56 45 52 41 4c 4c 20 52 45  t Ok "OVERALL RE
0fc0: 53 55 4c 54 3a 20 53 55 43 43 45 53 53 5c 6e 22  SULT: SUCCESS\n"
0fd0: 0d 0a 20 20 20 20 20 20 20 20 74 6c 6f 67 20 22  ..        tlog "
0fe0: 4f 56 45 52 41 4c 4c 20 52 45 53 55 4c 54 3a 20  OVERALL RESULT: 
0ff0: 53 55 43 43 45 53 53 5c 6e 22 0d 0a 20 20 20 20  SUCCESS\n"..    
1000: 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20    } else {..    
1010: 20 20 20 20 73 65 74 20 65 78 69 74 43 6f 64 65      set exitCode
1020: 20 46 61 69 6c 75 72 65 0d 0a 0d 0a 20 20 20 20   Failure....    
1030: 20 20 20 20 68 6f 73 74 20 72 65 73 75 6c 74 20      host result 
1040: 45 72 72 6f 72 20 22 4f 56 45 52 41 4c 4c 20 52  Error "OVERALL R
1050: 45 53 55 4c 54 3a 20 46 41 49 4c 55 52 45 5c 6e  ESULT: FAILURE\n
1060: 22 0d 0a 20 20 20 20 20 20 20 20 74 6c 6f 67 20  "..        tlog 
1070: 22 4f 56 45 52 41 4c 4c 20 52 45 53 55 4c 54 3a  "OVERALL RESULT:
1080: 20 46 41 49 4c 55 52 45 5c 6e 22 0d 0a 20 20 20   FAILURE\n"..   
1090: 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 75 6e     }....      un
10a0: 73 65 74 20 70 61 73 73 65 64 4f 72 53 6b 69 70  set passedOrSkip
10b0: 70 65 64 0d 0a 20 20 20 20 7d 20 65 6c 73 65 20  ped..    } else 
10c0: 7b 0d 0a 20 20 20 20 20 20 23 0d 0a 20 20 20 20  {..      #..    
10d0: 20 20 23 20 4e 4f 54 45 3a 20 54 68 65 79 20 73    # NOTE: They s
10e0: 70 65 63 69 66 69 65 64 20 61 20 6e 6f 6e 2d 64  pecified a non-d
10f0: 65 66 61 75 6c 74 20 74 65 73 74 20 70 61 73 73  efault test pass
1100: 20 74 68 72 65 73 68 6f 6c 64 2e 20 20 43 68 65   threshold.  Che
1110: 63 6b 20 74 6f 0d 0a 20 20 20 20 20 20 23 20 20  ck to..      #  
1120: 20 20 20 20 20 6d 61 6b 65 20 73 75 72 65 20 74       make sure t
1130: 68 61 74 20 77 65 20 6d 65 65 74 20 6f 72 20 65  hat we meet or e
1140: 78 63 65 65 64 20 74 68 65 20 72 65 71 75 69 72  xceed the requir
1150: 65 6d 65 6e 74 20 61 6e 64 20 74 68 65 6e 0d 0a  ement and then..
1160: 20 20 20 20 20 20 23 20 20 20 20 20 20 20 73 65        #       se
1170: 74 20 74 68 65 20 65 78 69 74 20 63 6f 64 65 20  t the exit code 
1180: 74 6f 20 73 75 63 63 65 73 73 3b 20 6f 74 68 65  to success; othe
1190: 72 77 69 73 65 2c 20 73 65 74 20 69 74 20 74 6f  rwise, set it to
11a0: 20 66 61 69 6c 75 72 65 2e 0d 0a 20 20 20 20 20   failure...     
11b0: 20 23 0d 0a 20 20 20 20 20 20 69 66 20 7b 24 70   #..      if {$p
11c0: 65 72 63 65 6e 74 20 3e 3d 20 24 74 65 73 74 5f  ercent >= $test_
11d0: 74 68 72 65 73 68 6f 6c 64 7d 20 74 68 65 6e 20  threshold} then 
11e0: 7b 0d 0a 20 20 20 20 20 20 20 20 73 65 74 20 65  {..        set e
11f0: 78 69 74 43 6f 64 65 20 53 75 63 63 65 73 73 0d  xitCode Success.
1200: 0a 0d 0a 20 20 20 20 20 20 20 20 68 6f 73 74 20  ...        host 
1210: 72 65 73 75 6c 74 20 4f 6b 20 5b 61 70 70 65 6e  result Ok [appen
1220: 64 41 72 67 73 20 22 4f 56 45 52 41 4c 4c 20 52  dArgs "OVERALL R
1230: 45 53 55 4c 54 3a 20 53 55 43 43 45 53 53 20 28  ESULT: SUCCESS (
1240: 22 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 20  " \..           
1250: 20 24 70 65 72 63 65 6e 74 20 22 25 20 3e 3d 20   $percent "% >= 
1260: 22 20 24 74 65 73 74 5f 74 68 72 65 73 68 6f 6c  " $test_threshol
1270: 64 20 25 29 5c 6e 5d 0d 0a 0d 0a 20 20 20 20 20  d %)\n]....     
1280: 20 20 20 74 6c 6f 67 20 5b 61 70 70 65 6e 64 41     tlog [appendA
1290: 72 67 73 20 22 4f 56 45 52 41 4c 4c 20 52 45 53  rgs "OVERALL RES
12a0: 55 4c 54 3a 20 53 55 43 43 45 53 53 20 28 22 20  ULT: SUCCESS (" 
12b0: 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24  \..            $
12c0: 70 65 72 63 65 6e 74 20 22 25 20 3e 3d 20 22 20  percent "% >= " 
12d0: 24 74 65 73 74 5f 74 68 72 65 73 68 6f 6c 64 20  $test_threshold 
12e0: 25 29 5c 6e 5d 0d 0a 20 20 20 20 20 20 7d 20 65  %)\n]..      } e
12f0: 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 73  lse {..        s
1300: 65 74 20 65 78 69 74 43 6f 64 65 20 46 61 69 6c  et exitCode Fail
1310: 75 72 65 0d 0a 0d 0a 20 20 20 20 20 20 20 20 68  ure....        h
1320: 6f 73 74 20 72 65 73 75 6c 74 20 45 72 72 6f 72  ost result Error
1330: 20 5b 61 70 70 65 6e 64 41 72 67 73 20 5c 0d 0a   [appendArgs \..
1340: 20 20 20 20 20 20 20 20 20 20 20 20 22 4f 56 45              "OVE
1350: 52 41 4c 4c 20 52 45 53 55 4c 54 3a 20 46 41 49  RALL RESULT: FAI
1360: 4c 55 52 45 20 28 22 20 24 70 65 72 63 65 6e 74  LURE (" $percent
1370: 20 22 25 20 3c 20 22 20 24 74 65 73 74 5f 74 68   "% < " $test_th
1380: 72 65 73 68 6f 6c 64 20 25 29 5c 6e 5d 0d 0a 0d  reshold %)\n]...
1390: 0a 20 20 20 20 20 20 20 20 74 6c 6f 67 20 5b 61  .        tlog [a
13a0: 70 70 65 6e 64 41 72 67 73 20 5c 0d 0a 20 20 20  ppendArgs \..   
13b0: 20 20 20 20 20 20 20 20 20 22 4f 56 45 52 41 4c           "OVERAL
13c0: 4c 20 52 45 53 55 4c 54 3a 20 46 41 49 4c 55 52  L RESULT: FAILUR
13d0: 45 20 28 22 20 24 70 65 72 63 65 6e 74 20 22 25  E (" $percent "%
13e0: 20 3c 20 22 20 24 74 65 73 74 5f 74 68 72 65 73   < " $test_thres
13f0: 68 6f 6c 64 20 25 29 5c 6e 5d 0d 0a 20 20 20 20  hold %)\n]..    
1400: 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20    }..    }....  
1410: 20 20 75 6e 73 65 74 20 70 65 72 63 65 6e 74 0d    unset percent.
1420: 0a 0d 0a 20 20 20 20 74 70 75 74 73 20 24 74 65  ...    tputs $te
1430: 73 74 5f 63 68 61 6e 6e 65 6c 20 5c 6e 3b 20 23  st_channel \n; #
1440: 20 4e 4f 54 45 3a 20 42 6c 61 6e 6b 20 6c 69 6e   NOTE: Blank lin
1450: 65 2e 0d 0a 20 20 7d 20 65 6c 73 65 20 7b 0d 0a  e...  } else {..
1460: 20 20 20 20 74 70 75 74 73 20 24 74 65 73 74 5f      tputs $test_
1470: 63 68 61 6e 6e 65 6c 20 5c 6e 3b 20 23 20 4e 4f  channel \n; # NO
1480: 54 45 3a 20 42 6c 61 6e 6b 20 6c 69 6e 65 2e 0d  TE: Blank line..
1490: 0a 0d 0a 20 20 20 20 69 66 20 7b 24 3a 3a 74 63  ...    if {$::tc
14a0: 6c 74 65 73 74 3a 3a 6e 75 6d 54 65 73 74 73 28  ltest::numTests(
14b0: 50 61 73 73 65 64 29 20 3e 20 30 7d 20 74 68 65  Passed) > 0} the
14c0: 6e 20 7b 0d 0a 20 20 20 20 20 20 74 70 75 74 73  n {..      tputs
14d0: 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 5c   $test_channel \
14e0: 0d 0a 20 20 20 20 20 20 20 20 20 20 5b 61 70 70  ..          [app
14f0: 65 6e 64 41 72 67 73 20 22 50 41 53 53 45 44 3a  endArgs "PASSED:
1500: 20 22 20 24 3a 3a 74 63 6c 74 65 73 74 3a 3a 6e   " $::tcltest::n
1510: 75 6d 54 65 73 74 73 28 50 61 73 73 65 64 29 20  umTests(Passed) 
1520: 5c 6e 5d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20  \n]..    }....  
1530: 20 20 69 66 20 7b 24 3a 3a 74 63 6c 74 65 73 74    if {$::tcltest
1540: 3a 3a 6e 75 6d 54 65 73 74 73 28 46 61 69 6c 65  ::numTests(Faile
1550: 64 29 20 3e 20 30 7d 20 74 68 65 6e 20 7b 0d 0a  d) > 0} then {..
1560: 20 20 20 20 20 20 74 70 75 74 73 20 24 74 65 73        tputs $tes
1570: 74 5f 63 68 61 6e 6e 65 6c 20 5c 0d 0a 20 20 20  t_channel \..   
1580: 20 20 20 20 20 20 20 5b 61 70 70 65 6e 64 41 72         [appendAr
1590: 67 73 20 22 46 41 49 4c 45 44 3a 20 22 20 24 3a  gs "FAILED: " $:
15a0: 3a 74 63 6c 74 65 73 74 3a 3a 6e 75 6d 54 65 73  :tcltest::numTes
15b0: 74 73 28 46 61 69 6c 65 64 29 20 5c 6e 5d 0d 0a  ts(Failed) \n]..
15c0: 0d 0a 20 20 20 20 20 20 69 66 20 7b 5b 6c 6c 65  ..      if {[lle
15d0: 6e 67 74 68 20 24 3a 3a 74 63 6c 74 65 73 74 3a  ngth $::tcltest:
15e0: 3a 66 61 69 6c 46 69 6c 65 73 5d 20 3e 20 30 7d  :failFiles] > 0}
15f0: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 20   then {..       
1600: 20 74 70 75 74 73 20 24 74 65 73 74 5f 63 68 61   tputs $test_cha
1610: 6e 6e 65 6c 20 5c 0d 0a 20 20 20 20 20 20 20 20  nnel \..        
1620: 20 20 20 20 5b 61 70 70 65 6e 64 41 72 67 73 20      [appendArgs 
1630: 22 46 41 49 4c 45 44 3a 20 22 20 24 3a 3a 74 63  "FAILED: " $::tc
1640: 6c 74 65 73 74 3a 3a 66 61 69 6c 46 69 6c 65 73  ltest::failFiles
1650: 20 5c 6e 5d 0d 0a 20 20 20 20 20 20 7d 0d 0a 20   \n]..      }.. 
1660: 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 69 66 20 7b     }....    if {
1670: 24 3a 3a 74 63 6c 74 65 73 74 3a 3a 6e 75 6d 54  $::tcltest::numT
1680: 65 73 74 73 28 53 6b 69 70 70 65 64 29 20 3e 20  ests(Skipped) > 
1690: 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20  0} then {..     
16a0: 20 74 70 75 74 73 20 24 74 65 73 74 5f 63 68 61   tputs $test_cha
16b0: 6e 6e 65 6c 20 5c 0d 0a 20 20 20 20 20 20 20 20  nnel \..        
16c0: 20 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22 53    [appendArgs "S
16d0: 4b 49 50 50 45 44 3a 20 22 20 24 3a 3a 74 63 6c  KIPPED: " $::tcl
16e0: 74 65 73 74 3a 3a 6e 75 6d 54 65 73 74 73 28 53  test::numTests(S
16f0: 6b 69 70 70 65 64 29 20 5c 6e 5d 0d 0a 20 20 20  kipped) \n]..   
1700: 20 7d 0d 0a 0d 0a 20 20 20 20 69 66 20 7b 24 3a   }....    if {$:
1710: 3a 74 63 6c 74 65 73 74 3a 3a 6e 75 6d 54 65 73  :tcltest::numTes
1720: 74 73 28 54 6f 74 61 6c 29 20 3e 20 30 7d 20 74  ts(Total) > 0} t
1730: 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 74 70 75  hen {..      tpu
1740: 74 73 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c  ts $test_channel
1750: 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 5b 61   \..          [a
1760: 70 70 65 6e 64 41 72 67 73 20 22 54 4f 54 41 4c  ppendArgs "TOTAL
1770: 3a 20 22 20 24 3a 3a 74 63 6c 74 65 73 74 3a 3a  : " $::tcltest::
1780: 6e 75 6d 54 65 73 74 73 28 54 6f 74 61 6c 29 20  numTests(Total) 
1790: 5c 6e 5d 0d 0a 0d 0a 20 20 20 20 20 20 69 66 20  \n]....      if 
17a0: 7b 24 3a 3a 74 63 6c 74 65 73 74 3a 3a 6e 75 6d  {$::tcltest::num
17b0: 54 65 73 74 73 28 53 6b 69 70 70 65 64 29 20 3e  Tests(Skipped) >
17c0: 20 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20   0} then {..    
17d0: 20 20 20 20 73 65 74 20 70 65 72 63 65 6e 74 20      set percent 
17e0: 5b 67 65 74 53 6b 69 70 50 65 72 63 65 6e 74 61  [getSkipPercenta
17f0: 67 65 5d 0d 0a 20 20 20 20 20 20 20 20 74 70 75  ge]..        tpu
1800: 74 73 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c  ts $test_channel
1810: 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22 53 4b   [appendArgs "SK
1820: 49 50 20 50 45 52 43 45 4e 54 41 47 45 3a 20 22  IP PERCENTAGE: "
1830: 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   \..            
1840: 5b 66 6f 72 6d 61 74 20 22 25 2e 34 66 22 20 24  [format "%.4f" $
1850: 70 65 72 63 65 6e 74 5d 20 25 5c 6e 5d 0d 0a 20  percent] %\n].. 
1860: 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20       }....      
1870: 73 65 74 20 70 65 72 63 65 6e 74 20 5b 67 65 74  set percent [get
1880: 50 61 73 73 50 65 72 63 65 6e 74 61 67 65 5d 0d  PassPercentage].
1890: 0a 20 20 20 20 20 20 74 70 75 74 73 20 24 74 65  .      tputs $te
18a0: 73 74 5f 63 68 61 6e 6e 65 6c 20 5b 61 70 70 65  st_channel [appe
18b0: 6e 64 41 72 67 73 20 22 50 41 53 53 20 50 45 52  ndArgs "PASS PER
18c0: 43 45 4e 54 41 47 45 3a 20 22 20 5c 0d 0a 20 20  CENTAGE: " \..  
18d0: 20 20 20 20 20 20 20 20 5b 66 6f 72 6d 61 74 20          [format 
18e0: 22 25 2e 34 66 22 20 24 70 65 72 63 65 6e 74 5d  "%.4f" $percent]
18f0: 20 25 5c 6e 5d 0d 0a 20 20 20 20 7d 20 65 6c 73   %\n]..    } els
1900: 65 20 7b 0d 0a 20 20 20 20 20 20 23 0d 0a 20 20  e {..      #..  
1910: 20 20 20 20 23 20 4e 4f 54 45 3a 20 4e 6f 20 74      # NOTE: No t
1920: 65 73 74 73 2e 0d 0a 20 20 20 20 20 20 23 0d 0a  ests...      #..
1930: 20 20 20 20 20 20 73 65 74 20 70 65 72 63 65 6e        set percen
1940: 74 20 30 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20  t 0..    }....  
1950: 20 20 23 0d 0a 20 20 20 20 23 20 4e 4f 54 45 3a    #..    # NOTE:
1960: 20 48 61 73 20 74 68 65 20 74 65 73 74 20 70 61   Has the test pa
1970: 73 73 20 74 68 72 65 73 68 6f 6c 64 20 62 65 65  ss threshold bee
1980: 6e 20 73 65 74 3f 20 20 49 66 20 73 6f 2c 20 69  n set?  If so, i
1990: 73 20 69 74 20 73 65 74 20 74 6f 0d 0a 20 20 20  s it set to..   
19a0: 20 23 20 20 20 20 20 20 20 74 68 65 20 64 65 66   #       the def
19b0: 61 75 6c 74 20 76 61 6c 75 65 3f 0d 0a 20 20 20  ault value?..   
19c0: 20 23 0d 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e   #..    if {![in
19d0: 66 6f 20 65 78 69 73 74 73 20 74 65 73 74 5f 74  fo exists test_t
19e0: 68 72 65 73 68 6f 6c 64 5d 20 7c 7c 20 24 74 65  hreshold] || $te
19f0: 73 74 5f 74 68 72 65 73 68 6f 6c 64 20 3d 3d 20  st_threshold == 
1a00: 31 30 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20  100} then {..   
1a10: 20 20 20 23 0d 0a 20 20 20 20 20 20 23 20 4e 4f     #..      # NO
1a20: 54 45 3a 20 54 68 65 20 74 65 73 74 20 70 61 73  TE: The test pas
1a30: 73 20 74 68 72 65 73 68 6f 6c 64 20 69 73 20 73  s threshold is s
1a40: 65 74 20 74 6f 20 74 68 65 20 64 65 66 61 75 6c  et to the defaul
1a50: 74 20 76 61 6c 75 65 20 28 31 30 30 25 29 2e 0d  t value (100%)..
1a60: 0a 20 20 20 20 20 20 23 20 20 20 20 20 20 20 43  .      #       C
1a70: 68 65 63 6b 20 74 6f 20 6d 61 6b 65 20 73 75 72  heck to make sur
1a80: 65 20 74 68 61 74 20 61 6c 6c 20 74 65 73 74 73  e that all tests
1a90: 20 70 61 73 73 20 61 6e 64 20 74 68 65 6e 20 73   pass and then s
1aa0: 65 74 20 74 68 65 0d 0a 20 20 20 20 20 20 23 20  et the..      # 
1ab0: 20 20 20 20 20 20 65 78 69 74 20 63 6f 64 65 20        exit code 
1ac0: 74 6f 20 73 75 63 63 65 73 73 3b 20 6f 74 68 65  to success; othe
1ad0: 72 77 69 73 65 2c 20 77 65 20 73 65 74 20 69 74  rwise, we set it
1ae0: 20 74 6f 20 66 61 69 6c 75 72 65 2e 0d 0a 20 20   to failure...  
1af0: 20 20 20 20 23 0d 0a 20 20 20 20 20 20 73 65 74      #..      set
1b00: 20 70 61 73 73 65 64 4f 72 53 6b 69 70 70 65 64   passedOrSkipped
1b10: 20 5b 65 78 70 72 20 7b 24 3a 3a 74 63 6c 74 65   [expr {$::tclte
1b20: 73 74 3a 3a 6e 75 6d 54 65 73 74 73 28 50 61 73  st::numTests(Pas
1b30: 73 65 64 29 20 2b 20 5c 0d 0a 20 20 20 20 20 20  sed) + \..      
1b40: 20 20 20 20 24 3a 3a 74 63 6c 74 65 73 74 3a 3a      $::tcltest::
1b50: 6e 75 6d 54 65 73 74 73 28 53 6b 69 70 70 65 64  numTests(Skipped
1b60: 29 7d 5d 0d 0a 0d 0a 20 20 20 20 20 20 69 66 20  )}]....      if 
1b70: 7b 24 70 61 73 73 65 64 4f 72 53 6b 69 70 70 65  {$passedOrSkippe
1b80: 64 20 3d 3d 20 24 3a 3a 74 63 6c 74 65 73 74 3a  d == $::tcltest:
1b90: 3a 6e 75 6d 54 65 73 74 73 28 54 6f 74 61 6c 29  :numTests(Total)
1ba0: 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20  } then {..      
1bb0: 20 20 73 65 74 20 65 78 69 74 43 6f 64 65 20 30    set exitCode 0
1bc0: 3b 20 23 20 53 75 63 63 65 73 73 2e 0d 0a 0d 0a  ; # Success.....
1bd0: 20 20 20 20 20 20 20 20 74 70 75 74 73 20 24 74          tputs $t
1be0: 65 73 74 5f 63 68 61 6e 6e 65 6c 20 22 4f 56 45  est_channel "OVE
1bf0: 52 41 4c 4c 20 52 45 53 55 4c 54 3a 20 53 55 43  RALL RESULT: SUC
1c00: 43 45 53 53 5c 6e 22 0d 0a 20 20 20 20 20 20 7d  CESS\n"..      }
1c10: 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 20   else {..       
1c20: 20 73 65 74 20 65 78 69 74 43 6f 64 65 20 31 3b   set exitCode 1;
1c30: 20 23 20 46 61 69 6c 75 72 65 2e 0d 0a 0d 0a 20   # Failure..... 
1c40: 20 20 20 20 20 20 20 74 70 75 74 73 20 24 74 65         tputs $te
1c50: 73 74 5f 63 68 61 6e 6e 65 6c 20 22 4f 56 45 52  st_channel "OVER
1c60: 41 4c 4c 20 52 45 53 55 4c 54 3a 20 46 41 49 4c  ALL RESULT: FAIL
1c70: 55 52 45 5c 6e 22 0d 0a 20 20 20 20 20 20 7d 0d  URE\n"..      }.
1c80: 0a 0d 0a 20 20 20 20 20 20 75 6e 73 65 74 20 70  ...      unset p
1c90: 61 73 73 65 64 4f 72 53 6b 69 70 70 65 64 0d 0a  assedOrSkipped..
1ca0: 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20      } else {..  
1cb0: 20 20 20 20 23 0d 0a 20 20 20 20 20 20 23 20 4e      #..      # N
1cc0: 4f 54 45 3a 20 54 68 65 79 20 73 70 65 63 69 66  OTE: They specif
1cd0: 69 65 64 20 61 20 6e 6f 6e 2d 64 65 66 61 75 6c  ied a non-defaul
1ce0: 74 20 74 65 73 74 20 70 61 73 73 20 74 68 72 65  t test pass thre
1cf0: 73 68 6f 6c 64 2e 20 20 43 68 65 63 6b 20 74 6f  shold.  Check to
1d00: 0d 0a 20 20 20 20 20 20 23 20 20 20 20 20 20 20  ..      #       
1d10: 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 77  make sure that w
1d20: 65 20 6d 65 65 74 20 6f 72 20 65 78 63 65 65 64  e meet or exceed
1d30: 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74   the requirement
1d40: 20 61 6e 64 20 74 68 65 6e 0d 0a 20 20 20 20 20   and then..     
1d50: 20 23 20 20 20 20 20 20 20 73 65 74 20 74 68 65   #       set the
1d60: 20 65 78 69 74 20 63 6f 64 65 20 74 6f 20 73 75   exit code to su
1d70: 63 63 65 73 73 3b 20 6f 74 68 65 72 77 69 73 65  ccess; otherwise
1d80: 2c 20 73 65 74 20 69 74 20 74 6f 20 66 61 69 6c  , set it to fail
1d90: 75 72 65 2e 0d 0a 20 20 20 20 20 20 23 0d 0a 20  ure...      #.. 
1da0: 20 20 20 20 20 69 66 20 7b 24 70 65 72 63 65 6e       if {$percen
1db0: 74 20 3e 3d 20 24 74 65 73 74 5f 74 68 72 65 73  t >= $test_thres
1dc0: 68 6f 6c 64 7d 20 74 68 65 6e 20 7b 0d 0a 20 20  hold} 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: 5b 61 70 70 65 6e 64 41 72 67 73 20 22 4f 56 45  [appendArgs "OVE
1e20: 52 41 4c 4c 20 52 45 53 55 4c 54 3a 20 53 55 43  RALL RESULT: SUC
1e30: 43 45 53 53 20 28 22 20 5c 0d 0a 20 20 20 20 20  CESS (" \..     
1e40: 20 20 20 20 20 20 20 24 70 65 72 63 65 6e 74 20         $percent 
1e50: 22 25 20 3e 3d 20 22 20 24 74 65 73 74 5f 74 68  "% >= " $test_th
1e60: 72 65 73 68 6f 6c 64 20 25 29 5c 6e 5d 0d 0a 20  reshold %)\n].. 
1e70: 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20       } else {.. 
1e80: 20 20 20 20 20 20 20 73 65 74 20 65 78 69 74 43         set exitC
1e90: 6f 64 65 20 31 3b 20 23 20 46 61 69 6c 75 72 65  ode 1; # Failure
1ea0: 2e 0d 0a 0d 0a 20 20 20 20 20 20 20 20 74 70 75  .....        tpu
1eb0: 74 73 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c  ts $test_channel
1ec0: 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22 4f 56   [appendArgs "OV
1ed0: 45 52 41 4c 4c 20 52 45 53 55 4c 54 3a 20 46 41  ERALL RESULT: FA
1ee0: 49 4c 55 52 45 20 28 22 20 5c 0d 0a 20 20 20 20  ILURE (" \..    
1ef0: 20 20 20 20 20 20 20 20 24 70 65 72 63 65 6e 74          $percent
1f00: 20 22 25 20 3c 20 22 20 24 74 65 73 74 5f 74 68   "% < " $test_th
1f10: 72 65 73 68 6f 6c 64 20 25 29 5c 6e 5d 0d 0a 20  reshold %)\n].. 
1f20: 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d       }..    }...
1f30: 0a 20 20 20 20 75 6e 73 65 74 20 70 65 72 63 65  .    unset perce
1f40: 6e 74 0d 0a 0d 0a 20 20 20 20 74 70 75 74 73 20  nt....    tputs 
1f50: 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 5c 6e  $test_channel \n
1f60: 3b 20 23 20 4e 4f 54 45 3a 20 42 6c 61 6e 6b 20  ; # NOTE: Blank 
1f70: 6c 69 6e 65 2e 0d 0a 20 20 7d 0d 0a 0d 0a 20 20  line...  }....  
1f80: 23 0d 0a 20 20 23 20 4e 4f 54 45 3a 20 43 68 65  #..  # NOTE: Che
1f90: 63 6b 20 66 6f 72 20 61 6e 64 20 70 72 6f 63 65  ck for and proce
1fa0: 73 73 20 61 6e 79 20 63 75 73 74 6f 6d 20 74 65  ss any custom te
1fb0: 73 74 20 65 70 69 6c 6f 67 75 65 20 73 63 72 69  st epilogue scri
1fc0: 70 74 20 74 68 61 74 20 6d 61 79 0d 0a 20 20 23  pt that may..  #
1fd0: 20 20 20 20 20 20 20 62 65 20 73 65 74 20 69 6e         be set in
1fe0: 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74   the environment
1ff0: 2e 0d 0a 20 20 23 0d 0a 20 20 73 6f 75 72 63 65  ...  #..  source
2000: 49 66 56 61 6c 69 64 20 65 70 69 6c 6f 67 75 65  IfValid epilogue
2010: 20 5b 67 65 74 45 6e 76 69 72 6f 6e 6d 65 6e 74   [getEnvironment
2020: 56 61 72 69 61 62 6c 65 20 74 65 73 74 45 70 69  Variable testEpi
2030: 6c 6f 67 75 65 5d 0d 0a 0d 0a 20 20 23 0d 0a 20  logue]....  #.. 
2040: 20 23 20 4e 4f 54 45 3a 20 44 6f 20 77 65 20 6e   # NOTE: Do we n
2050: 65 65 64 20 74 6f 20 65 78 69 74 20 6e 6f 77 3f  eed to exit now?
2060: 0d 0a 20 20 23 0d 0a 20 20 69 66 20 7b 5b 69 73  ..  #..  if {[is
2070: 45 78 69 74 4f 6e 43 6f 6d 70 6c 65 74 65 5d 7d  ExitOnComplete]}
2080: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 23 0d 0a   then {..    #..
2090: 20 20 20 20 23 20 4e 4f 54 45 3a 20 45 78 69 74      # NOTE: Exit
20a0: 20 6e 6f 77 2e 20 20 49 6e 20 45 61 67 6c 65 2c   now.  In Eagle,
20b0: 20 74 68 69 73 20 77 69 6c 6c 20 6e 6f 74 20 65   this will not e
20c0: 78 69 74 20 74 68 65 20 65 6e 74 69 72 65 20 70  xit the entire p
20d0: 72 6f 63 65 73 73 2e 0d 0a 20 20 20 20 23 20 20  rocess...    #  
20e0: 20 20 20 20 20 5a 65 72 6f 20 28 30 29 20 77 69       Zero (0) wi
20f0: 6c 6c 20 62 65 20 74 68 65 20 65 78 69 74 20 63  ll be the exit c
2100: 6f 64 65 20 69 66 20 61 6c 6c 20 74 68 65 20 73  ode if all the s
2110: 65 6c 65 63 74 65 64 20 74 65 73 74 73 20 68 61  elected tests ha
2120: 76 65 0d 0a 20 20 20 20 23 20 20 20 20 20 20 20  ve..    #       
2130: 73 75 63 63 65 65 64 65 64 20 6f 72 20 74 68 65  succeeded or the
2140: 20 74 65 73 74 20 73 75 63 63 65 73 73 20 74 68   test success th
2150: 72 65 73 68 6f 6c 64 20 68 61 73 20 62 65 65 6e  reshold has been
2160: 20 6d 65 74 20 6f 72 0d 0a 20 20 20 20 23 20 20   met or..    #  
2170: 20 20 20 20 20 65 78 63 65 65 64 65 64 3b 20 6f       exceeded; o
2180: 74 68 65 72 77 69 73 65 2c 20 6f 6e 65 20 28 31  therwise, one (1
2190: 29 20 77 69 6c 6c 20 62 65 20 74 68 65 20 65 78  ) will be the ex
21a0: 69 74 20 63 6f 64 65 2e 0d 0a 20 20 20 20 23 0d  it code...    #.
21b0: 0a 20 20 20 20 65 78 69 74 20 24 65 78 69 74 43  .    exit $exitC
21c0: 6f 64 65 0d 0a 20 20 7d 20 65 6c 73 65 20 7b 0d  ode..  } else {.
21d0: 0a 20 20 20 20 23 0d 0a 20 20 20 20 23 20 4e 4f  .    #..    # NO
21e0: 54 45 3a 20 46 6f 72 20 45 61 67 6c 65 2c 20 65  TE: For Eagle, e
21f0: 76 65 6e 20 77 68 65 6e 20 6e 6f 74 20 65 78 69  ven when not exi
2200: 74 69 6e 67 2c 20 77 65 20 73 74 69 6c 6c 20 73  ting, we still s
2210: 65 74 20 74 68 65 20 45 78 69 74 43 6f 64 65 0d  et the ExitCode.
2220: 0a 20 20 20 20 23 20 20 20 20 20 20 20 70 72 6f  .    #       pro
2230: 70 65 72 74 79 20 6f 66 20 74 68 65 20 69 6e 74  perty of the int
2240: 65 72 70 72 65 74 65 72 2e 0d 0a 20 20 20 20 23  erpreter...    #
2250: 0d 0a 20 20 20 20 69 66 20 7b 5b 69 73 45 61 67  ..    if {[isEag
2260: 6c 65 5d 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20  le]} then {..   
2270: 20 20 20 6f 62 6a 65 63 74 20 69 6e 76 6f 6b 65     object invoke
2280: 20 2d 61 6c 69 61 73 20 49 6e 74 65 72 70 72 65   -alias Interpre
2290: 74 65 72 2e 47 65 74 41 63 74 69 76 65 20 45 78  ter.GetActive Ex
22a0: 69 74 43 6f 64 65 20 24 65 78 69 74 43 6f 64 65  itCode $exitCode
22b0: 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 75  ..    }....    u
22c0: 6e 73 65 74 20 65 78 69 74 43 6f 64 65 0d 0a 20  nset exitCode.. 
22d0: 20 7d 0d 0a 7d 0d 0a                              }..}..