System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact faf5bbcccd1abcf40ed87c89fdda96c6610fb901:


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 76 65 6e 64 6f 72 2e 65 61 67  .#..# vendor.eag
0060: 6c 65 20 2d 2d 0d 0a 23 0d 0a 23 20 45 78 74 65  le --..#..# Exte
0070: 6e 73 69 62 6c 65 20 41 64 61 70 74 61 62 6c 65  nsible Adaptable
0080: 20 47 65 6e 65 72 61 6c 69 7a 65 64 20 4c 6f 67   Generalized Log
0090: 69 63 20 45 6e 67 69 6e 65 20 28 45 61 67 6c 65  ic Engine (Eagle
00a0: 29 0d 0a 23 20 56 65 6e 64 6f 72 20 49 6e 69 74  )..# Vendor Init
00b0: 69 61 6c 69 7a 61 74 69 6f 6e 20 46 69 6c 65 0d  ialization File.
00c0: 0a 23 0d 0a 23 20 43 6f 70 79 72 69 67 68 74 20  .#..# Copyright 
00d0: 28 63 29 20 32 30 30 37 2d 32 30 31 32 20 62 79  (c) 2007-2012 by
00e0: 20 4a 6f 65 20 4d 69 73 74 61 63 68 6b 69 6e 2e   Joe Mistachkin.
00f0: 20 20 41 6c 6c 20 72 69 67 68 74 73 20 72 65 73    All rights res
0100: 65 72 76 65 64 2e 0d 0a 23 0d 0a 23 20 53 65 65  erved...#..# See
0110: 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e   the file "licen
0120: 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e  se.terms" for in
0130: 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61  formation on usa
0140: 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 69 62  ge and redistrib
0150: 75 74 69 6f 6e 20 6f 66 0d 0a 23 20 74 68 69 73  ution of..# this
0160: 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61   file, and for a
0170: 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41   DISCLAIMER OF A
0180: 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0d 0a  LL WARRANTIES...
0190: 23 0d 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24  #..# RCS: @(#) $
01a0: 49 64 3a 20 24 0d 0a 23 0d 0a 23 23 23 23 23 23  Id: $..#..######
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 23 23 23 23 23 23 0d 0a 0d 0a 23 0d 0a  #########....#..
0200: 23 20 53 54 55 42 3a 20 54 68 69 73 20 73 63 72  # STUB: This scr
0210: 69 70 74 20 66 69 6c 65 20 69 73 20 61 20 70 6c  ipt file is a pl
0220: 61 63 65 68 6f 6c 64 65 72 2e 20 20 54 68 69 73  aceholder.  This
0230: 20 66 69 6c 65 2c 20 77 68 65 6e 20 70 72 65 73   file, when pres
0240: 65 6e 74 2c 20 69 73 20 61 6c 77 61 79 73 0d 0a  ent, is always..
0250: 23 20 20 20 20 20 20 20 65 76 61 6c 75 61 74 65  #       evaluate
0260: 64 20 77 68 65 6e 20 61 6e 20 69 6e 74 65 72 70  d when an interp
0270: 72 65 74 65 72 20 69 73 20 69 6e 69 74 69 61 6c  reter is initial
0280: 69 7a 65 64 2e 20 20 56 65 6e 64 6f 72 73 20 64  ized.  Vendors d
0290: 69 73 74 72 69 62 75 74 69 6e 67 0d 0a 23 20 20  istributing..#  
02a0: 20 20 20 20 20 45 61 67 6c 65 20 63 61 6e 20 70       Eagle can p
02b0: 6c 61 63 65 20 63 75 73 74 6f 6d 20 61 70 70 6c  lace custom appl
02c0: 69 63 61 74 69 6f 6e 2d 73 70 65 63 69 66 69 63  ication-specific
02d0: 2c 20 69 6e 74 65 72 70 72 65 74 65 72 2d 73 70  , interpreter-sp
02e0: 65 63 69 66 69 63 0d 0a 23 20 20 20 20 20 20 20  ecific..#       
02f0: 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 61  initialization a
0300: 6e 64 2f 6f 72 20 63 75 73 74 6f 6d 69 7a 61 74  nd/or customizat
0310: 69 6f 6e 73 20 69 6e 20 68 65 72 65 2e 20 20 41  ions in here.  A
0320: 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 74 68 69  dditionally, thi
0330: 73 20 66 69 6c 65 0d 0a 23 20 20 20 20 20 20 20  s file..#       
0340: 6d 61 79 20 63 6f 6e 74 61 69 6e 20 70 65 72 2d  may contain per-
0350: 69 6e 74 65 72 70 72 65 74 65 72 20 63 75 73 74  interpreter cust
0360: 6f 6d 69 7a 61 74 69 6f 6e 73 20 72 65 71 75 69  omizations requi
0370: 72 65 64 20 77 68 65 6e 20 70 6f 72 74 69 6e 67  red when porting
0380: 20 74 6f 0d 0a 23 20 20 20 20 20 20 20 6e 65 77   to..#       new
0390: 20 70 6c 61 74 66 6f 72 6d 73 2c 20 6f 70 65 72   platforms, oper
03a0: 61 74 69 6e 67 20 73 79 73 74 65 6d 73 2c 20 65  ating systems, e
03b0: 74 63 2e 0d 0a 23 0d 0a 0c 0d 0a 23 23 23 23 23  tc...#.....#####
03c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
03d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
03e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
03f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0400: 23 23 23 23 23 23 23 23 23 23 0d 0a 23 23 23 23  ##########..####
0410: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0420: 23 23 23 23 23 23 23 23 23 23 20 42 45 47 49 4e  ########## BEGIN
0430: 20 56 45 4e 44 4f 52 20 43 4f 44 45 20 23 23 23   VENDOR CODE ###
0440: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0450: 23 23 23 23 23 23 23 23 23 23 23 0d 0a 23 23 23  ###########..###
0460: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0470: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0480: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0490: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
04a0: 23 23 23 23 23 23 23 23 23 23 23 23 0d 0a 23 0d  ############..#.
04b0: 0a 23 20 4e 4f 54 45 3a 20 55 73 65 20 6f 75 72  .# NOTE: Use our
04c0: 20 6f 77 6e 20 6e 61 6d 65 73 70 61 63 65 20 68   own namespace h
04d0: 65 72 65 20 62 65 63 61 75 73 65 20 65 76 65 6e  ere because even
04e0: 20 74 68 6f 75 67 68 20 77 65 20 64 6f 20 6e 6f   though we do no
04f0: 74 20 64 69 72 65 63 74 6c 79 0d 0a 23 20 20 20  t directly..#   
0500: 20 20 20 20 73 75 70 70 6f 72 74 20 6e 61 6d 65      support name
0510: 73 70 61 63 65 73 20 6f 75 72 73 65 6c 76 65 73  spaces ourselves
0520: 2c 20 77 65 20 64 6f 20 6e 6f 74 20 77 61 6e 74  , we do not want
0530: 20 74 6f 20 70 6f 6c 6c 75 74 65 20 74 68 65 20   to pollute the 
0540: 67 6c 6f 62 61 6c 0d 0a 23 20 20 20 20 20 20 20  global..#       
0550: 6e 61 6d 65 73 70 61 63 65 20 69 66 20 74 68 69  namespace if thi
0560: 73 20 73 63 72 69 70 74 20 61 63 74 75 61 6c 6c  s script actuall
0570: 79 20 65 6e 64 73 20 75 70 20 62 65 69 6e 67 20  y ends up being 
0580: 65 76 61 6c 75 61 74 65 64 20 69 6e 20 54 63 6c  evaluated in Tcl
0590: 2e 0d 0a 23 0d 0a 6e 61 6d 65 73 70 61 63 65 20  ...#..namespace 
05a0: 65 76 61 6c 20 3a 3a 45 61 67 6c 65 20 7b 0d 0a  eval ::Eagle {..
05b0: 20 20 69 66 20 7b 5b 69 73 45 61 67 6c 65 5d 7d    if {[isEagle]}
05c0: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 70 72 6f   then {..    pro
05d0: 63 20 63 68 65 63 6b 46 6f 72 54 65 73 74 4f 76  c checkForTestOv
05e0: 65 72 72 69 64 65 73 20 7b 20 63 68 61 6e 6e 65  errides { channe
05f0: 6c 20 76 61 72 4e 61 6d 65 73 20 71 75 69 65 74  l varNames quiet
0600: 20 7d 20 7b 0d 0a 20 20 20 20 20 20 73 65 74 20   } {..      set 
0610: 72 65 73 75 6c 74 20 30 0d 0a 0d 0a 20 20 20 20  result 0....    
0620: 20 20 66 6f 72 65 61 63 68 20 76 61 72 4e 61 6d    foreach varNam
0630: 65 20 24 76 61 72 4e 61 6d 65 73 20 7b 0d 0a 20  e $varNames {.. 
0640: 20 20 20 20 20 20 20 69 66 20 7b 21 5b 75 70 6c         if {![upl
0650: 65 76 65 6c 20 31 20 5b 6c 69 73 74 20 69 6e 66  evel 1 [list inf
0660: 6f 20 65 78 69 73 74 73 20 24 76 61 72 4e 61 6d  o exists $varNam
0670: 65 5d 5d 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20  e]]} then {..   
0680: 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 0d         continue.
0690: 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20  .        }....  
06a0: 20 20 20 20 20 20 69 6e 63 72 20 72 65 73 75 6c        incr resul
06b0: 74 0d 0a 0d 0a 20 20 20 20 20 20 20 20 69 66 20  t....        if 
06c0: 7b 21 24 71 75 69 65 74 7d 20 74 68 65 6e 20 7b  {!$quiet} then {
06d0: 0d 0a 20 20 20 20 20 20 20 20 20 20 63 61 74 63  ..          catc
06e0: 68 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  h {..           
06f0: 20 74 71 70 75 74 73 20 24 63 68 61 6e 6e 65 6c   tqputs $channel
0700: 20 5b 61 70 70 65 6e 64 41 72 67 73 20 5c 0d 0a   [appendArgs \..
0710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0720: 22 2d 2d 2d 2d 20 66 6f 75 6e 64 20 76 65 6e 64  "---- found vend
0730: 6f 72 2d 73 70 65 63 69 66 69 63 20 74 65 73 74  or-specific test
0740: 20 6f 76 65 72 72 69 64 65 20 5c 22 22 20 24 76   override \"" $v
0750: 61 72 4e 61 6d 65 20 5c 0d 0a 20 20 20 20 20 20  arName \..      
0760: 20 20 20 20 20 20 20 20 20 20 22 5c 22 20 77 69            "\" wi
0770: 74 68 20 76 61 6c 75 65 20 5c 22 22 20 5b 75 70  th value \"" [up
0780: 6c 65 76 65 6c 20 31 20 5b 6c 69 73 74 20 73 65  level 1 [list se
0790: 74 20 24 76 61 72 4e 61 6d 65 5d 5d 20 5c 22 5c  t $varName]] \"\
07a0: 6e 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 7d 0d  n]..          }.
07b0: 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20  .        }..    
07c0: 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 23 0d 0a    }....      #..
07d0: 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20 4b 65        # NOTE: Ke
07e0: 65 70 20 74 72 61 63 6b 20 6f 66 20 74 68 65 20  ep track of the 
07f0: 6c 69 73 74 20 6f 66 20 74 65 73 74 20 6f 76 65  list of test ove
0800: 72 72 69 64 65 20 76 61 72 69 61 62 6c 65 73 2c  rride variables,
0810: 20 66 6f 72 20 6c 61 74 65 72 0d 0a 20 20 20 20   for later..    
0820: 20 20 23 20 20 20 20 20 20 20 75 73 65 20 62 79    #       use by
0830: 20 74 68 65 20 74 65 73 74 20 73 75 69 74 65 2e   the test suite.
0840: 20 20 54 68 69 73 20 6e 65 65 64 73 20 74 6f 20    This needs to 
0850: 62 65 20 64 6f 6e 65 20 61 66 74 65 72 20 74 68  be done after th
0860: 65 20 6c 6f 6f 70 0d 0a 20 20 20 20 20 20 23 20  e loop..      # 
0870: 20 20 20 20 20 20 61 62 6f 76 65 20 62 65 63 61        above beca
0880: 75 73 65 20 74 68 65 20 76 61 72 69 61 62 6c 65  use the variable
0890: 20 75 73 65 64 20 74 6f 20 6b 65 65 70 20 74 72   used to keep tr
08a0: 61 63 6b 20 69 73 20 6c 69 73 74 65 64 20 77 69  ack is listed wi
08b0: 74 68 0d 0a 20 20 20 20 20 20 23 20 20 20 20 20  th..      #     
08c0: 20 20 74 68 65 20 6f 74 68 65 72 20 70 6f 73 73    the other poss
08d0: 69 62 6c 65 20 74 65 73 74 20 6f 76 65 72 72 69  ible test overri
08e0: 64 65 20 76 61 72 69 61 62 6c 65 73 2e 0d 0a 20  de variables... 
08f0: 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 69 66       #..      if
0900: 20 7b 21 5b 75 70 6c 65 76 65 6c 20 31 20 5b 6c   {![uplevel 1 [l
0910: 69 73 74 20 69 6e 66 6f 20 65 78 69 73 74 73 20  ist info exists 
0920: 74 65 73 74 5f 6f 76 65 72 72 69 64 65 73 5d 5d  test_overrides]]
0930: 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20  } then {..      
0940: 20 20 75 70 6c 65 76 65 6c 20 31 20 5b 6c 69 73    uplevel 1 [lis
0950: 74 20 73 65 74 20 74 65 73 74 5f 6f 76 65 72 72  t set test_overr
0960: 69 64 65 73 20 24 76 61 72 4e 61 6d 65 73 5d 0d  ides $varNames].
0970: 0a 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20  .      }....    
0980: 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74    return $result
0990: 0d 0a 20 20 20 20 7d 0d 0a 0c 0d 0a 20 20 20 20  ..    }.....    
09a0: 70 72 6f 63 20 61 64 64 54 65 73 74 53 75 69 74  proc addTestSuit
09b0: 65 54 6f 41 75 74 6f 50 61 74 68 20 7b 20 63 68  eToAutoPath { ch
09c0: 61 6e 6e 65 6c 20 76 61 72 4e 61 6d 65 20 71 75  annel varName qu
09d0: 69 65 74 20 7d 20 7b 0d 0a 20 20 20 20 20 20 23  iet } {..      #
09e0: 0d 0a 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20  ..      # NOTE: 
09f0: 53 74 61 72 74 20 77 69 74 68 20 74 68 65 20 64  Start with the d
0a00: 69 72 65 63 74 6f 72 79 20 63 6f 6e 74 61 69 6e  irectory contain
0a10: 69 6e 67 20 74 68 69 73 20 66 69 6c 65 2e 0d 0a  ing this file...
0a20: 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 73        #..      s
0a30: 65 74 20 64 69 72 20 5b 66 69 6c 65 20 6e 6f 72  et dir [file nor
0a40: 6d 61 6c 69 7a 65 20 5b 66 69 6c 65 20 64 69 72  malize [file dir
0a50: 6e 61 6d 65 20 5b 69 6e 66 6f 20 73 63 72 69 70  name [info scrip
0a60: 74 5d 5d 5d 0d 0a 0d 0a 20 20 20 20 20 20 23 0d  t]]]....      #.
0a70: 0a 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20 4b  .      # NOTE: K
0a80: 65 65 70 20 67 6f 69 6e 67 20 75 6e 74 69 6c 20  eep going until 
0a90: 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 6e 61  the directory na
0aa0: 6d 65 20 69 73 20 65 6d 70 74 79 20 4f 52 20 69  me is empty OR i
0ab0: 73 20 61 63 74 75 61 6c 6c 79 20 74 68 65 0d 0a  s actually the..
0ac0: 20 20 20 20 20 20 23 20 20 20 20 20 20 20 72 6f        #       ro
0ad0: 6f 74 20 6f 66 20 74 68 65 20 61 73 73 6f 63 69  ot of the associ
0ae0: 61 74 65 64 20 76 6f 6c 75 6d 65 2e 0d 0a 20 20  ated volume...  
0af0: 20 20 20 20 23 0d 0a 20 20 20 20 20 20 77 68 69      #..      whi
0b00: 6c 65 20 7b 5b 73 74 72 69 6e 67 20 6c 65 6e 67  le {[string leng
0b10: 74 68 20 24 64 69 72 5d 20 3e 20 30 20 26 26 20  th $dir] > 0 && 
0b20: 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 5b 6c 73  \..          [ls
0b30: 65 61 72 63 68 20 2d 65 78 61 63 74 20 2d 6e 6f  earch -exact -no
0b40: 63 61 73 65 20 2d 2d 20 5b 66 69 6c 65 20 76 6f  case -- [file vo
0b50: 6c 75 6d 65 73 5d 20 24 64 69 72 5d 20 3d 3d 20  lumes] $dir] == 
0b60: 2d 31 7d 20 7b 0d 0a 20 20 20 20 20 20 20 20 23  -1} {..        #
0b70: 0d 0a 20 20 20 20 20 20 20 20 23 20 4e 4f 54 45  ..        # NOTE
0b80: 3a 20 44 6f 65 73 20 74 68 69 73 20 64 69 72 65  : Does this dire
0b90: 63 74 6f 72 79 20 68 61 76 65 20 74 68 65 20 6e  ctory have the n
0ba0: 65 63 65 73 73 61 72 79 20 73 75 62 2d 64 69 72  ecessary sub-dir
0bb0: 65 63 74 6f 72 79 20 74 68 61 74 0d 0a 20 20 20  ectory that..   
0bc0: 20 20 20 20 20 23 20 20 20 20 20 20 20 63 6f 6e       #       con
0bd0: 74 61 69 6e 73 20 61 20 70 61 63 6b 61 67 65 20  tains a package 
0be0: 69 6e 64 65 78 20 66 69 6c 65 3f 0d 0a 20 20 20  index file?..   
0bf0: 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 20 20       #..        
0c00: 69 66 20 7b 5b 66 69 6c 65 20 65 78 69 73 74 73  if {[file exists
0c10: 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72   [file join $dir
0c20: 20 54 65 73 74 73 5d 5d 20 26 26 20 5c 0d 0a 20   Tests]] && \.. 
0c30: 20 20 20 20 20 20 20 20 20 20 20 5b 66 69 6c 65             [file
0c40: 20 69 73 64 69 72 65 63 74 6f 72 79 20 5b 66 69   isdirectory [fi
0c50: 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 54 65 73  le join $dir Tes
0c60: 74 73 5d 5d 20 26 26 20 5c 0d 0a 20 20 20 20 20  ts]] && \..     
0c70: 20 20 20 20 20 20 20 5b 66 69 6c 65 20 65 78 69         [file exi
0c80: 73 74 73 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24  sts [file join $
0c90: 64 69 72 20 54 65 73 74 73 20 70 6b 67 49 6e 64  dir Tests pkgInd
0ca0: 65 78 2e 65 61 67 6c 65 5d 5d 20 26 26 20 5c 0d  ex.eagle]] && \.
0cb0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 5b 66 69  .            [fi
0cc0: 6c 65 20 69 73 66 69 6c 65 20 5b 66 69 6c 65 20  le isfile [file 
0cd0: 6a 6f 69 6e 20 24 64 69 72 20 54 65 73 74 73 20  join $dir Tests 
0ce0: 70 6b 67 49 6e 64 65 78 2e 65 61 67 6c 65 5d 5d  pkgIndex.eagle]]
0cf0: 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20  } then {..      
0d00: 20 20 20 20 23 0d 0a 20 20 20 20 20 20 20 20 20      #..         
0d10: 20 23 20 4e 4f 54 45 3a 20 49 66 20 72 65 71 75   # NOTE: If requ
0d20: 65 73 74 65 64 2c 20 67 69 76 65 20 6f 75 72 20  ested, give our 
0d30: 63 61 6c 6c 65 72 20 61 63 63 65 73 73 20 74 6f  caller access to
0d40: 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65   the name of the
0d50: 0d 0a 20 20 20 20 20 20 20 20 20 20 23 20 20 20  ..          #   
0d60: 20 20 20 20 64 69 72 65 63 74 6f 72 79 20 77 65      directory we
0d70: 20 6a 75 73 74 20 66 6f 75 6e 64 2e 0d 0a 20 20   just found...  
0d80: 20 20 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20          #..     
0d90: 20 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67       if {[string
0da0: 20 6c 65 6e 67 74 68 20 24 76 61 72 4e 61 6d 65   length $varName
0db0: 5d 20 3e 20 30 7d 20 74 68 65 6e 20 7b 0d 0a 20  ] > 0} then {.. 
0dc0: 20 20 20 20 20 20 20 20 20 20 20 75 70 76 61 72             upvar
0dd0: 20 31 20 24 76 61 72 4e 61 6d 65 20 64 69 72 32   1 $varName dir2
0de0: 0d 0a 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d  ..          }...
0df0: 0a 20 20 20 20 20 20 20 20 20 20 23 0d 0a 20 20  .          #..  
0e00: 20 20 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20          # NOTE: 
0e10: 4f 6b 2c 20 73 68 6f 77 20 74 68 65 20 64 69 72  Ok, show the dir
0e20: 65 63 74 6f 72 79 20 77 65 20 66 6f 75 6e 64 2e  ectory we found.
0e30: 0d 0a 20 20 20 20 20 20 20 20 20 20 23 0d 0a 20  ..          #.. 
0e40: 20 20 20 20 20 20 20 20 20 73 65 74 20 64 69 72           set dir
0e50: 32 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69  2 [file join $di
0e60: 72 20 54 65 73 74 73 5d 0d 0a 0d 0a 20 20 20 20  r Tests]....    
0e70: 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 20        #..       
0e80: 20 20 20 23 20 4e 4f 54 45 3a 20 57 65 20 66 6f     # NOTE: We fo
0e90: 75 6e 64 20 74 68 65 20 6e 65 63 65 73 73 61 72  und the necessar
0ea0: 79 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 61  y directory to a
0eb0: 64 64 20 74 6f 20 74 68 65 20 61 75 74 6f 2d 70  dd to the auto-p
0ec0: 61 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  ath;..          
0ed0: 23 20 20 20 20 20 20 20 48 6f 77 65 76 65 72 2c  #       However,
0ee0: 20 77 65 20 63 61 6e 6e 6f 74 20 73 69 6d 70 6c   we cannot simpl
0ef0: 79 20 61 64 64 20 69 74 20 74 6f 20 74 68 65 20  y add it to the 
0f00: 61 75 74 6f 2d 70 61 74 68 20 64 69 72 65 63 74  auto-path direct
0f10: 6c 79 0d 0a 20 20 20 20 20 20 20 20 20 20 23 20  ly..          # 
0f20: 20 20 20 20 20 20 62 65 63 61 75 73 65 20 74 68        because th
0f30: 65 20 61 75 74 6f 2d 70 61 74 68 20 69 73 20 64  e auto-path is d
0f40: 79 6e 61 6d 69 63 61 6c 6c 79 20 63 6f 6e 73 74  ynamically const
0f50: 72 75 63 74 65 64 20 61 66 74 65 72 20 74 68 69  ructed after thi
0f60: 73 0d 0a 20 20 20 20 20 20 20 20 20 20 23 20 20  s..          #  
0f70: 20 20 20 20 20 73 63 72 69 70 74 20 69 73 20 65       script is e
0f80: 76 61 6c 75 61 74 65 64 3b 20 74 68 65 72 65 66  valuated; theref
0f90: 6f 72 65 2c 20 73 65 74 20 74 68 65 20 45 61 67  ore, set the Eag
0fa0: 6c 65 20 6c 69 62 72 61 72 79 20 70 61 74 68 0d  le library path.
0fb0: 0a 20 20 20 20 20 20 20 20 20 20 23 20 20 20 20  .          #    
0fc0: 20 20 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76     environment v
0fd0: 61 72 69 61 62 6c 65 20 61 6e 64 20 66 6f 72 63  ariable and forc
0fe0: 65 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74  e the appropriat
0ff0: 65 20 69 6e 74 65 72 6e 61 6c 20 70 61 74 68 0d  e internal path.
1000: 0a 20 20 20 20 20 20 20 20 20 20 23 20 20 20 20  .          #    
1010: 20 20 20 6c 69 73 74 20 74 6f 20 62 65 20 72 65     list to be re
1020: 66 72 65 73 68 65 64 2e 0d 0a 20 20 20 20 20 20  freshed...      
1030: 20 20 20 20 23 0d 0a 20 20 20 20 20 20 20 20 20      #..         
1040: 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73   if {![info exis
1050: 74 73 20 3a 3a 65 6e 76 28 45 41 47 4c 45 4c 49  ts ::env(EAGLELI
1060: 42 50 41 54 48 29 5d 20 7c 7c 20 5c 0d 0a 20 20  BPATH)] || \..  
1070: 20 20 20 20 20 20 20 20 20 20 20 20 5b 6c 73 65              [lse
1080: 61 72 63 68 20 2d 65 78 61 63 74 20 24 3a 3a 65  arch -exact $::e
1090: 6e 76 28 45 41 47 4c 45 4c 49 42 50 41 54 48 29  nv(EAGLELIBPATH)
10a0: 20 24 64 69 72 32 5d 20 3d 3d 20 2d 31 7d 20 74   $dir2] == -1} t
10b0: 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 20 20 20  hen {..         
10c0: 20 20 20 23 0d 0a 20 20 20 20 20 20 20 20 20 20     #..          
10d0: 20 20 23 20 4e 4f 54 45 3a 20 49 66 20 77 65 20    # NOTE: If we 
10e0: 68 61 76 65 20 4e 4f 54 20 62 65 65 6e 20 69 6e  have NOT been in
10f0: 73 74 72 75 63 74 65 64 20 74 6f 20 62 65 20 71  structed to be q
1100: 75 69 65 74 2c 20 72 65 70 6f 72 74 20 6e 6f 77  uiet, report now
1110: 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23  ...            #
1120: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66  ..            if
1130: 20 7b 21 24 71 75 69 65 74 7d 20 74 68 65 6e 20   {!$quiet} then 
1140: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  {..             
1150: 20 63 61 74 63 68 20 7b 0d 0a 20 20 20 20 20 20   catch {..      
1160: 20 20 20 20 20 20 20 20 20 20 74 71 70 75 74 73            tqputs
1170: 20 24 63 68 61 6e 6e 65 6c 20 5b 61 70 70 65 6e   $channel [appen
1180: 64 41 72 67 73 20 5c 0d 0a 20 20 20 20 20 20 20  dArgs \..       
1190: 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d               "--
11a0: 2d 2d 20 66 6f 75 6e 64 20 76 65 6e 64 6f 72 2d  -- found vendor-
11b0: 73 70 65 63 69 66 69 63 20 74 65 73 74 20 70 61  specific test pa
11c0: 63 6b 61 67 65 20 64 69 72 65 63 74 6f 72 79 20  ckage directory 
11d0: 5c 22 22 20 5c 0d 0a 20 20 20 20 20 20 20 20 20  \"" \..         
11e0: 20 20 20 20 20 20 20 20 20 20 20 24 64 69 72 32             $dir2
11f0: 20 22 5c 22 2c 20 61 64 64 69 6e 67 2e 2e 2e 5c   "\", adding...\
1200: 6e 22 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  n"]..           
1210: 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20     }..          
1220: 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20    }....         
1230: 20 20 20 23 0d 0a 20 20 20 20 20 20 20 20 20 20     #..          
1240: 20 20 23 20 4e 4f 54 45 3a 20 41 70 70 65 6e 64    # NOTE: Append
1250: 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74   the directory t
1260: 6f 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 20  o the necessary 
1270: 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69  environment vari
1280: 61 62 6c 65 0d 0a 20 20 20 20 20 20 20 20 20 20  able..          
1290: 20 20 23 20 20 20 20 20 20 20 73 6f 20 74 68 61    #       so tha
12a0: 74 20 69 74 20 77 69 6c 6c 20 67 65 74 20 70 69  t it will get pi
12b0: 63 6b 65 64 20 75 70 20 77 68 65 6e 20 45 61 67  cked up when Eag
12c0: 6c 65 20 61 63 74 75 61 6c 6c 79 20 72 65 62 75  le actually rebu
12d0: 69 6c 64 73 0d 0a 20 20 20 20 20 20 20 20 20 20  ilds..          
12e0: 20 20 23 20 20 20 20 20 20 20 74 68 65 20 61 75    #       the au
12f0: 74 6f 2d 70 61 74 68 20 6c 69 73 74 20 28 62 65  to-path list (be
1300: 6c 6f 77 29 2e 0d 0a 20 20 20 20 20 20 20 20 20  low)...         
1310: 20 20 20 23 0d 0a 20 20 20 20 20 20 20 20 20 20     #..          
1320: 20 20 6c 61 70 70 65 6e 64 20 3a 3a 65 6e 76 28    lappend ::env(
1330: 45 41 47 4c 45 4c 49 42 50 41 54 48 29 20 24 64  EAGLELIBPATH) $d
1340: 69 72 32 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20  ir2....         
1350: 20 20 20 23 0d 0a 20 20 20 20 20 20 20 20 20 20     #..          
1360: 20 20 23 20 4e 4f 54 45 3a 20 46 6f 72 63 65 20    # NOTE: Force 
1370: 45 61 67 6c 65 20 74 6f 20 72 65 62 75 69 6c 64  Eagle to rebuild
1380: 20 74 68 65 20 61 75 74 6f 2d 70 61 74 68 20 6c   the auto-path l
1390: 69 73 74 20 66 6f 72 20 74 68 65 20 63 75 72 72  ist for the curr
13a0: 65 6e 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ent..           
13b0: 20 23 20 20 20 20 20 20 20 69 6e 74 65 72 70 72   #       interpr
13c0: 65 74 65 72 20 72 69 67 68 74 20 6e 6f 77 2e 0d  eter right now..
13d0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 0d 0a  .            #..
13e0: 20 20 20 20 20 20 20 20 20 20 20 20 6f 62 6a 65              obje
13f0: 63 74 20 69 6e 76 6f 6b 65 20 55 74 69 6c 69 74  ct invoke Utilit
1400: 79 20 52 65 66 72 65 73 68 41 75 74 6f 50 61 74  y RefreshAutoPat
1410: 68 4c 69 73 74 20 74 72 75 65 0d 0a 20 20 20 20  hList true..    
1420: 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20        }....     
1430: 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 20 20       #..        
1440: 20 20 23 20 4e 4f 54 45 3a 20 57 65 20 61 72 65    # NOTE: We are
1450: 20 64 6f 6e 65 2c 20 72 65 74 75 72 6e 20 73 75   done, return su
1460: 63 63 65 73 73 2e 0d 0a 20 20 20 20 20 20 20 20  ccess...        
1470: 20 20 23 0d 0a 20 20 20 20 20 20 20 20 20 20 72    #..          r
1480: 65 74 75 72 6e 20 74 72 75 65 0d 0a 20 20 20 20  eturn true..    
1490: 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20      }....       
14a0: 20 23 0d 0a 20 20 20 20 20 20 20 20 23 20 4e 4f   #..        # NO
14b0: 54 45 3a 20 4b 65 65 70 20 67 6f 69 6e 67 20 75  TE: Keep going u
14c0: 70 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20  p the directory 
14d0: 74 72 65 65 2e 2e 2e 0d 0a 20 20 20 20 20 20 20  tree.....       
14e0: 20 23 0d 0a 20 20 20 20 20 20 20 20 73 65 74 20   #..        set 
14f0: 64 69 72 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d  dir [file dirnam
1500: 65 20 24 64 69 72 5d 0d 0a 20 20 20 20 20 20 7d  e $dir]..      }
1510: 0d 0a 0d 0a 20 20 20 20 20 20 23 0d 0a 20 20 20  ....      #..   
1520: 20 20 20 23 20 4e 4f 54 45 3a 20 49 66 20 77 65     # NOTE: If we
1530: 20 68 61 76 65 20 4e 4f 54 20 62 65 65 6e 20 69   have NOT been i
1540: 6e 73 74 72 75 63 74 65 64 20 74 6f 20 62 65 20  nstructed to be 
1550: 71 75 69 65 74 2c 20 72 65 70 6f 72 74 20 6e 6f  quiet, report no
1560: 77 2e 0d 0a 20 20 20 20 20 20 23 0d 0a 20 20 20  w...      #..   
1570: 20 20 20 69 66 20 7b 21 24 71 75 69 65 74 7d 20     if {!$quiet} 
1580: 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 20 20  then {..        
1590: 63 61 74 63 68 20 7b 0d 0a 20 20 20 20 20 20 20  catch {..       
15a0: 20 20 20 74 71 70 75 74 73 20 24 63 68 61 6e 6e     tqputs $chann
15b0: 65 6c 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20  el \..          
15c0: 20 20 20 20 22 2d 2d 2d 2d 20 63 6f 75 6c 64 20      "---- could 
15d0: 6e 6f 74 20 66 69 6e 64 20 76 65 6e 64 6f 72 2d  not find vendor-
15e0: 73 70 65 63 69 66 69 63 20 74 65 73 74 20 70 61  specific test pa
15f0: 63 6b 61 67 65 20 64 69 72 65 63 74 6f 72 79 5c  ckage directory\
1600: 6e 22 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20  n"..        }.. 
1610: 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20       }....      
1620: 23 0d 0a 20 20 20 20 20 20 23 20 4e 4f 54 45 3a  #..      # NOTE:
1630: 20 44 69 72 65 63 74 6f 72 79 20 6e 6f 74 20 66   Directory not f
1640: 6f 75 6e 64 2c 20 72 65 74 75 72 6e 20 66 61 69  ound, return fai
1650: 6c 75 72 65 2e 0d 0a 20 20 20 20 20 20 23 0d 0a  lure...      #..
1660: 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c        return fal
1670: 73 65 0d 0a 20 20 20 20 7d 0d 0a 0c 0d 0a 20 20  se..    }.....  
1680: 20 20 70 72 6f 63 20 73 65 74 75 70 49 6e 74 65    proc setupInte
1690: 72 70 72 65 74 65 72 54 65 73 74 50 61 74 68 20  rpreterTestPath 
16a0: 7b 20 63 68 61 6e 6e 65 6c 20 64 69 72 20 71 75  { channel dir qu
16b0: 69 65 74 20 7d 20 7b 0d 0a 20 20 20 20 20 20 73  iet } {..      s
16c0: 65 74 20 74 65 73 74 50 61 74 68 20 5b 6f 62 6a  et testPath [obj
16d0: 65 63 74 20 69 6e 76 6f 6b 65 20 2d 66 6c 61 67  ect invoke -flag
16e0: 73 20 2b 4e 6f 6e 50 75 62 6c 69 63 20 49 6e 74  s +NonPublic Int
16f0: 65 72 70 72 65 74 65 72 2e 47 65 74 41 63 74 69  erpreter.GetActi
1700: 76 65 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20  ve \..          
1710: 54 65 73 74 50 61 74 68 5d 0d 0a 0d 0a 20 20 20  TestPath]....   
1720: 20 20 20 69 66 20 7b 24 64 69 72 20 6e 65 20 24     if {$dir ne $
1730: 74 65 73 74 50 61 74 68 7d 20 74 68 65 6e 20 7b  testPath} then {
1740: 0d 0a 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74  ..        object
1750: 20 69 6e 76 6f 6b 65 20 2d 66 6c 61 67 73 20 2b   invoke -flags +
1760: 4e 6f 6e 50 75 62 6c 69 63 20 49 6e 74 65 72 70  NonPublic Interp
1770: 72 65 74 65 72 2e 47 65 74 41 63 74 69 76 65 20  reter.GetActive 
1780: 54 65 73 74 50 61 74 68 20 24 64 69 72 0d 0a 0d  TestPath $dir...
1790: 0a 20 20 20 20 20 20 20 20 69 66 20 7b 21 24 71  .        if {!$q
17a0: 75 69 65 74 7d 20 74 68 65 6e 20 7b 0d 0a 20 20  uiet} then {..  
17b0: 20 20 20 20 20 20 20 20 63 61 74 63 68 20 7b 0d          catch {.
17c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 71 70  .            tqp
17d0: 75 74 73 20 24 63 68 61 6e 6e 65 6c 20 5b 61 70  uts $channel [ap
17e0: 70 65 6e 64 41 72 67 73 20 5c 0d 0a 20 20 20 20  pendArgs \..    
17f0: 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 2d              "---
1800: 2d 20 73 65 74 20 69 6e 74 65 72 70 72 65 74 65  - set interprete
1810: 72 20 74 65 73 74 20 70 61 74 68 20 74 6f 20 5c  r test path to \
1820: 22 22 20 24 64 69 72 20 5c 22 5c 6e 5d 0d 0a 20  "" $dir \"\n].. 
1830: 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20           }..    
1840: 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 7d 0d 0a      }..      }..
1850: 20 20 20 20 7d 0d 0a 0c 0d 0a 20 20 20 20 23 0d      }.....    #.
1860: 0a 20 20 20 20 23 20 4e 4f 54 45 3a 20 43 68 65  .    # NOTE: Che
1870: 63 6b 20 66 6f 72 20 61 6e 79 20 6f 76 65 72 72  ck for any overr
1880: 69 64 64 65 6e 20 73 65 74 74 69 6e 67 73 20 74  idden settings t
1890: 68 61 74 20 6d 61 79 20 68 61 76 65 20 62 65 65  hat may have bee
18a0: 6e 20 73 70 65 63 69 66 69 65 64 20 76 69 61 0d  n specified via.
18b0: 0a 20 20 20 20 23 20 20 20 20 20 20 20 74 68 65  .    #       the
18c0: 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 2c 20 65   command line, e
18d0: 74 63 2e 0d 0a 20 20 20 20 23 0d 0a 20 20 20 20  tc...    #..    
18e0: 63 68 65 63 6b 46 6f 72 54 65 73 74 4f 76 65 72  checkForTestOver
18f0: 72 69 64 65 73 20 73 74 64 6f 75 74 20 5b 65 78  rides stdout [ex
1900: 70 72 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73  pr {[info exists
1910: 20 74 65 73 74 5f 6f 76 65 72 72 69 64 65 73 5d   test_overrides]
1920: 20 3f 20 5c 0d 0a 20 20 20 20 20 20 20 20 24 74   ? \..        $t
1930: 65 73 74 5f 6f 76 65 72 72 69 64 65 73 20 3a 20  est_overrides : 
1940: 5b 6c 69 73 74 20 62 69 6e 61 72 79 5f 64 69 72  [list binary_dir
1950: 65 63 74 6f 72 79 20 62 75 69 6c 64 5f 62 61 73  ectory build_bas
1960: 65 5f 64 69 72 65 63 74 6f 72 79 20 5c 0d 0a 20  e_directory \.. 
1970: 20 20 20 20 20 20 20 62 75 69 6c 64 5f 64 69 72         build_dir
1980: 65 63 74 6f 72 79 20 63 6f 6d 6d 6f 6e 5f 64 69  ectory common_di
1990: 72 65 63 74 6f 72 79 20 63 6f 6e 6e 65 63 74 69  rectory connecti
19a0: 6f 6e 5f 66 6c 61 67 73 20 64 61 74 61 62 61 73  on_flags databas
19b0: 65 5f 64 69 72 65 63 74 6f 72 79 20 5c 0d 0a 20  e_directory \.. 
19c0: 20 20 20 20 20 20 20 64 61 74 65 74 69 6d 65 5f         datetime_
19d0: 66 6f 72 6d 61 74 20 73 63 72 61 74 63 68 5f 64  format scratch_d
19e0: 69 72 65 63 74 6f 72 79 20 74 65 6d 70 6f 72 61  irectory tempora
19f0: 72 79 5f 64 69 72 65 63 74 6f 72 79 20 5c 0d 0a  ry_directory \..
1a00: 20 20 20 20 20 20 20 20 74 65 73 74 5f 63 6f 6e          test_con
1a10: 66 69 67 75 72 61 74 69 6f 6e 20 74 65 73 74 5f  figuration test_
1a20: 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 74  configurations t
1a30: 65 73 74 5f 63 6f 6e 73 74 72 61 69 6e 74 73 20  est_constraints 
1a40: 5c 0d 0a 20 20 20 20 20 20 20 20 74 65 73 74 5f  \..        test_
1a50: 6d 61 63 68 69 6e 65 20 74 65 73 74 5f 6f 76 65  machine test_ove
1a60: 72 72 69 64 65 73 20 74 65 73 74 5f 70 6c 61 74  rrides test_plat
1a70: 66 6f 72 6d 20 74 65 73 74 5f 73 75 69 74 65 20  form test_suite 
1a80: 74 65 73 74 5f 79 65 61 72 20 5c 0d 0a 20 20 20  test_year \..   
1a90: 20 20 20 20 20 74 65 73 74 5f 79 65 61 72 73 20       test_years 
1aa0: 74 65 73 74 5f 79 65 61 72 5f 63 6c 72 5f 76 32  test_year_clr_v2
1ab0: 20 74 65 73 74 5f 79 65 61 72 5f 63 6c 72 5f 76   test_year_clr_v
1ac0: 34 20 76 65 6e 64 6f 72 5f 64 69 72 65 63 74 6f  4 vendor_directo
1ad0: 72 79 5d 7d 5d 20 66 61 6c 73 65 0d 0a 0d 0a 20  ry]}] false.... 
1ae0: 20 20 20 23 0d 0a 20 20 20 20 23 20 4e 4f 54 45     #..    # NOTE
1af0: 3a 20 53 65 74 20 74 68 65 20 6e 61 6d 65 20 6f  : Set the name o
1b00: 66 20 74 68 65 20 72 75 6e 6e 69 6e 67 20 74 65  f the running te
1b10: 73 74 20 73 75 69 74 65 2c 20 69 66 20 6e 65 63  st suite, if nec
1b20: 65 73 73 61 72 79 2e 0d 0a 20 20 20 20 23 0d 0a  essary...    #..
1b30: 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65      if {![info e
1b40: 78 69 73 74 73 20 74 65 73 74 5f 73 75 69 74 65  xists test_suite
1b50: 5d 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20  ]} then {..     
1b60: 20 73 65 74 20 74 65 73 74 5f 73 75 69 74 65 20   set test_suite 
1b70: 22 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c  "System.Data.SQL
1b80: 69 74 65 20 54 65 73 74 20 53 75 69 74 65 20 66  ite Test Suite f
1b90: 6f 72 20 45 61 67 6c 65 22 0d 0a 20 20 20 20 7d  or Eagle"..    }
1ba0: 0d 0a 0d 0a 20 20 20 20 23 0d 0a 20 20 20 20 23  ....    #..    #
1bb0: 20 4e 4f 54 45 3a 20 54 68 69 73 20 76 61 72 69   NOTE: This vari
1bc0: 61 62 6c 65 20 77 69 6c 6c 20 63 6f 6e 74 61 69  able will contai
1bd0: 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68  n the name of th
1be0: 65 20 64 69 72 65 63 74 6f 72 79 20 63 6f 6e 74  e directory cont
1bf0: 61 69 6e 69 6e 67 20 74 68 65 0d 0a 20 20 20 20  aining the..    
1c00: 23 20 20 20 20 20 20 20 76 65 6e 64 6f 72 2d 73  #       vendor-s
1c10: 70 65 63 69 66 69 63 20 74 65 73 74 69 6e 67 20  pecific testing 
1c20: 69 6e 66 72 61 73 74 72 75 63 74 75 72 65 2e 20  infrastructure. 
1c30: 20 49 66 20 74 68 65 20 76 61 72 69 61 62 6c 65   If the variable
1c40: 20 64 6f 65 73 20 6e 6f 74 0d 0a 20 20 20 20 23   does not..    #
1c50: 20 20 20 20 20 20 20 61 6c 72 65 61 64 79 20 65         already e
1c60: 78 69 73 74 2c 20 63 72 65 61 74 65 20 69 74 3b  xist, create it;
1c70: 20 6f 74 68 65 72 77 69 73 65 2c 20 69 74 20 68   otherwise, it h
1c80: 61 73 20 62 65 65 6e 20 6f 76 65 72 72 69 64 64  as been overridd
1c90: 65 6e 20 61 6e 64 20 74 68 65 0d 0a 20 20 20 20  en and the..    
1ca0: 23 20 20 20 20 20 20 20 65 78 69 73 74 69 6e 67  #       existing
1cb0: 20 76 61 6c 75 65 20 73 68 6f 75 6c 64 20 62 65   value should be
1cc0: 20 6c 65 66 74 20 69 6e 74 61 63 74 2e 0d 0a 20   left intact... 
1cd0: 20 20 20 23 0d 0a 20 20 20 20 73 65 74 20 68 61     #..    set ha
1ce0: 76 65 5f 76 65 6e 64 6f 72 5f 64 69 72 65 63 74  ve_vendor_direct
1cf0: 6f 72 79 20 5b 69 6e 66 6f 20 65 78 69 73 74 73  ory [info exists
1d00: 20 76 65 6e 64 6f 72 5f 64 69 72 65 63 74 6f 72   vendor_director
1d10: 79 5d 0d 0a 0d 0a 20 20 20 20 69 66 20 7b 21 24  y]....    if {!$
1d20: 68 61 76 65 5f 76 65 6e 64 6f 72 5f 64 69 72 65  have_vendor_dire
1d30: 63 74 6f 72 79 7d 20 74 68 65 6e 20 7b 0d 0a 20  ctory} then {.. 
1d40: 20 20 20 20 20 73 65 74 20 76 65 6e 64 6f 72 5f       set vendor_
1d50: 64 69 72 65 63 74 6f 72 79 20 22 22 0d 0a 20 20  directory ""..  
1d60: 20 20 7d 0d 0a 0d 0a 20 20 20 20 23 0d 0a 20 20    }....    #..  
1d70: 20 20 23 20 4e 4f 54 45 3a 20 54 68 69 73 20 70    # NOTE: This p
1d80: 72 6f 63 65 64 75 72 65 20 77 69 6c 6c 20 61 74  rocedure will at
1d90: 74 65 6d 70 74 20 74 6f 20 66 69 6e 64 20 74 68  tempt to find th
1da0: 65 20 76 65 6e 64 6f 72 2d 73 70 65 63 69 66 69  e vendor-specifi
1db0: 63 20 74 65 73 74 69 6e 67 0d 0a 20 20 20 20 23  c testing..    #
1dc0: 20 20 20 20 20 20 20 69 6e 66 72 61 73 74 72 75         infrastru
1dd0: 63 74 75 72 65 20 64 69 72 65 63 74 6f 72 79 20  cture directory 
1de0: 61 6e 64 20 61 64 64 20 69 74 20 74 6f 20 74 68  and add it to th
1df0: 65 20 61 75 74 6f 2d 70 61 74 68 20 66 6f 72 20  e auto-path for 
1e00: 74 68 65 0d 0a 20 20 20 20 23 20 20 20 20 20 20  the..    #      
1e10: 20 63 75 72 72 65 6e 74 20 69 6e 74 65 72 70 72   current interpr
1e20: 65 74 65 72 2e 20 20 4e 6f 72 6d 61 6c 6c 79 2c  eter.  Normally,
1e30: 20 74 68 69 73 20 77 69 6c 6c 20 61 6c 73 6f 20   this will also 
1e40: 73 65 74 20 74 68 65 20 76 61 72 69 61 62 6c 65  set the variable
1e50: 0d 0a 20 20 20 20 23 20 20 20 20 20 20 20 63 72  ..    #       cr
1e60: 65 61 74 65 64 20 61 62 6f 76 65 20 74 6f 20 70  eated above to p
1e70: 6f 69 6e 74 20 74 6f 20 74 68 65 20 64 69 72 65  oint to the dire
1e80: 63 74 6f 72 79 20 61 64 64 65 64 20 74 6f 20 74  ctory added to t
1e90: 68 65 20 61 75 74 6f 2d 70 61 74 68 3b 0d 0a 20  he auto-path;.. 
1ea0: 20 20 20 23 20 20 20 20 20 20 20 68 6f 77 65 76     #       howev
1eb0: 65 72 2c 20 74 68 69 73 20 77 69 6c 6c 20 6e 6f  er, this will no
1ec0: 74 20 62 65 20 64 6f 6e 65 20 69 66 20 74 68 65  t be done if the
1ed0: 20 76 61 72 69 61 62 6c 65 20 77 61 73 20 6e 6f   variable was no
1ee0: 74 20 63 72 65 61 74 65 64 0d 0a 20 20 20 20 23  t created..    #
1ef0: 20 20 20 20 20 20 20 62 79 20 75 73 2e 0d 0a 20         by us... 
1f00: 20 20 20 23 0d 0a 20 20 20 20 61 64 64 54 65 73     #..    addTes
1f10: 74 53 75 69 74 65 54 6f 41 75 74 6f 50 61 74 68  tSuiteToAutoPath
1f20: 20 73 74 64 6f 75 74 20 5b 65 78 70 72 20 7b 24   stdout [expr {$
1f30: 68 61 76 65 5f 76 65 6e 64 6f 72 5f 64 69 72 65  have_vendor_dire
1f40: 63 74 6f 72 79 20 3f 20 22 22 20 3a 20 5c 0d 0a  ctory ? "" : \..
1f50: 20 20 20 20 20 20 20 20 22 76 65 6e 64 6f 72 5f          "vendor_
1f60: 64 69 72 65 63 74 6f 72 79 22 7d 5d 20 66 61 6c  directory"}] fal
1f70: 73 65 0d 0a 0d 0a 20 20 20 20 75 6e 73 65 74 20  se....    unset 
1f80: 68 61 76 65 5f 76 65 6e 64 6f 72 5f 64 69 72 65  have_vendor_dire
1f90: 63 74 6f 72 79 0d 0a 0d 0a 20 20 20 20 23 0d 0a  ctory....    #..
1fa0: 20 20 20 20 23 20 4e 4f 54 45 3a 20 49 66 20 77      # NOTE: If w
1fb0: 65 20 61 63 74 75 61 6c 6c 79 20 66 6f 75 6e 64  e actually found
1fc0: 20 61 20 76 65 6e 64 6f 72 2d 73 70 65 63 69 66   a vendor-specif
1fd0: 69 63 20 74 65 73 74 69 6e 67 20 69 6e 66 72 61  ic testing infra
1fe0: 73 74 72 75 63 74 75 72 65 0d 0a 20 20 20 20 23  structure..    #
1ff0: 20 20 20 20 20 20 20 64 69 72 65 63 74 6f 72 79         directory
2000: 20 74 68 65 6e 20 6d 6f 64 69 66 79 20 74 68 65   then modify the
2010: 20 54 65 73 74 50 61 74 68 20 70 72 6f 70 65 72   TestPath proper
2020: 74 79 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e  ty of the curren
2030: 74 0d 0a 20 20 20 20 23 20 20 20 20 20 20 20 69  t..    #       i
2040: 6e 74 65 72 70 72 65 74 65 72 20 74 6f 20 70 6f  nterpreter to po
2050: 69 6e 74 20 64 69 72 65 63 74 6c 79 20 74 6f 20  int directly to 
2060: 69 74 2e 0d 0a 20 20 20 20 23 0d 0a 20 20 20 20  it...    #..    
2070: 69 66 20 7b 5b 73 74 72 69 6e 67 20 6c 65 6e 67  if {[string leng
2080: 74 68 20 24 76 65 6e 64 6f 72 5f 64 69 72 65 63  th $vendor_direc
2090: 74 6f 72 79 5d 20 3e 20 30 7d 20 74 68 65 6e 20  tory] > 0} then 
20a0: 7b 0d 0a 20 20 20 20 20 20 73 65 74 75 70 49 6e  {..      setupIn
20b0: 74 65 72 70 72 65 74 65 72 54 65 73 74 50 61 74  terpreterTestPat
20c0: 68 20 73 74 64 6f 75 74 20 24 76 65 6e 64 6f 72  h stdout $vendor
20d0: 5f 64 69 72 65 63 74 6f 72 79 20 66 61 6c 73 65  _directory false
20e0: 0d 0a 20 20 20 20 7d 0d 0a 20 20 7d 0d 0a 7d 0d  ..    }..  }..}.
20f0: 0a 0c 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23  ....############
2100: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2110: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2120: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2130: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2140: 23 23 23 0d 0a 23 23 23 23 23 23 23 23 23 23 23  ###..###########
2150: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2160: 23 23 23 23 20 45 4e 44 20 56 45 4e 44 4f 52 20  #### END VENDOR 
2170: 43 4f 44 45 20 23 23 23 23 23 23 23 23 23 23 23  CODE ###########
2180: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2190: 23 23 23 23 0d 0a 23 23 23 23 23 23 23 23 23 23  ####..##########
21a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
21b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
21c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
21d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
21e0: 23 23 23 23 23 0d 0a                             #####..