System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 00824d48694e25e970ffd55764d40bf099f52505:


0000: 40 45 43 48 4f 20 4f 46 46 0d 0a 0d 0a 3a 3a 0d  @ECHO OFF....::.
0010: 0a 3a 3a 20 74 65 73 74 5f 61 6c 6c 2e 62 61 74  .:: test_all.bat
0020: 20 2d 2d 0d 0a 3a 3a 0d 0a 3a 3a 20 4d 75 6c 74   --..::..:: Mult
0030: 69 70 6c 65 78 69 6e 67 20 57 72 61 70 70 65 72  iplexing Wrapper
0040: 20 54 6f 6f 6c 20 66 6f 72 20 55 6e 69 74 20 54   Tool for Unit T
0050: 65 73 74 73 0d 0a 3a 3a 0d 0a 3a 3a 20 57 72 69  ests..::..:: Wri
0060: 74 74 65 6e 20 62 79 20 4a 6f 65 20 4d 69 73 74  tten by Joe Mist
0070: 61 63 68 6b 69 6e 2e 0d 0a 3a 3a 20 52 65 6c 65  achkin...:: Rele
0080: 61 73 65 64 20 74 6f 20 74 68 65 20 70 75 62 6c  ased to the publ
0090: 69 63 20 64 6f 6d 61 69 6e 2c 20 75 73 65 20 61  ic domain, use a
00a0: 74 20 79 6f 75 72 20 6f 77 6e 20 72 69 73 6b 21  t your own risk!
00b0: 0d 0a 3a 3a 0d 0a 0d 0a 53 45 54 4c 4f 43 41 4c  ..::....SETLOCAL
00c0: 0d 0a 0d 0a 3a 72 65 64 6f 0d 0a 0d 0a 52 45 4d  ....:redo....REM
00d0: 20 53 45 54 20 5f 5f 45 43 48 4f 3d 45 43 48 4f   SET __ECHO=ECHO
00e0: 0d 0a 52 45 4d 20 53 45 54 20 5f 5f 45 43 48 4f  ..REM SET __ECHO
00f0: 32 3d 45 43 48 4f 0d 0a 52 45 4d 20 53 45 54 20  2=ECHO..REM SET 
0100: 5f 5f 45 43 48 4f 33 3d 45 43 48 4f 0d 0a 49 46  __ECHO3=ECHO..IF
0110: 20 4e 4f 54 20 44 45 46 49 4e 45 44 20 5f 41 45   NOT DEFINED _AE
0120: 43 48 4f 20 28 53 45 54 20 5f 41 45 43 48 4f 3d  CHO (SET _AECHO=
0130: 52 45 4d 29 0d 0a 49 46 20 4e 4f 54 20 44 45 46  REM)..IF NOT DEF
0140: 49 4e 45 44 20 5f 43 45 43 48 4f 20 28 53 45 54  INED _CECHO (SET
0150: 20 5f 43 45 43 48 4f 3d 52 45 4d 29 0d 0a 49 46   _CECHO=REM)..IF
0160: 20 4e 4f 54 20 44 45 46 49 4e 45 44 20 5f 56 45   NOT DEFINED _VE
0170: 43 48 4f 20 28 53 45 54 20 5f 56 45 43 48 4f 3d  CHO (SET _VECHO=
0180: 52 45 4d 29 0d 0a 0d 0a 25 5f 41 45 43 48 4f 25  REM)....%_AECHO%
0190: 20 52 75 6e 6e 69 6e 67 20 25 30 20 25 2a 0d 0a   Running %0 %*..
01a0: 0d 0a 53 45 54 20 44 55 4d 4d 59 32 3d 25 31 0d  ..SET DUMMY2=%1.
01b0: 0a 0d 0a 49 46 20 44 45 46 49 4e 45 44 20 44 55  ...IF DEFINED DU
01c0: 4d 4d 59 32 20 28 0d 0a 20 20 47 4f 54 4f 20 75  MMY2 (..  GOTO u
01d0: 73 61 67 65 0d 0a 29 0d 0a 0d 0a 52 45 4d 20 53  sage..)....REM S
01e0: 45 54 20 44 46 4c 41 47 53 3d 2f 4c 0d 0a 0d 0a  ET DFLAGS=/L....
01f0: 25 5f 56 45 43 48 4f 25 20 44 46 6c 61 67 73 20  %_VECHO% DFlags 
0200: 3d 20 27 25 44 46 4c 41 47 53 25 27 0d 0a 0d 0a  = '%DFLAGS%'....
0210: 53 45 54 20 46 46 4c 41 47 53 3d 2f 56 20 2f 46  SET FFLAGS=/V /F
0220: 20 2f 47 20 2f 48 20 2f 49 20 2f 52 20 2f 59 20   /G /H /I /R /Y 
0230: 2f 5a 0d 0a 0d 0a 25 5f 56 45 43 48 4f 25 20 46  /Z....%_VECHO% F
0240: 46 6c 61 67 73 20 3d 20 27 25 46 46 4c 41 47 53  Flags = '%FFLAGS
0250: 25 27 0d 0a 0d 0a 53 45 54 20 52 4f 4f 54 3d 25  %'....SET ROOT=%
0260: 7e 64 70 30 5c 2e 2e 0d 0a 53 45 54 20 52 4f 4f  ~dp0\....SET ROO
0270: 54 3d 25 52 4f 4f 54 3a 5c 5c 3d 5c 25 0d 0a 0d  T=%ROOT:\\=\%...
0280: 0a 25 5f 56 45 43 48 4f 25 20 52 6f 6f 74 20 3d  .%_VECHO% Root =
0290: 20 27 25 52 4f 4f 54 25 27 0d 0a 0d 0a 53 45 54   '%ROOT%'....SET
02a0: 20 54 4f 4f 4c 53 3d 25 7e 64 70 30 0d 0a 53 45   TOOLS=%~dp0..SE
02b0: 54 20 54 4f 4f 4c 53 3d 25 54 4f 4f 4c 53 3a 7e  T TOOLS=%TOOLS:~
02c0: 30 2c 2d 31 25 0d 0a 0d 0a 25 5f 56 45 43 48 4f  0,-1%....%_VECHO
02d0: 25 20 54 6f 6f 6c 73 20 3d 20 27 25 54 4f 4f 4c  % Tools = '%TOOL
02e0: 53 25 27 0d 0a 0d 0a 43 41 4c 4c 20 3a 66 6e 5f  S%'....CALL :fn_
02f0: 52 65 73 65 74 45 72 72 6f 72 4c 65 76 65 6c 0d  ResetErrorLevel.
0300: 0a 0d 0a 25 5f 5f 45 43 48 4f 33 25 20 43 41 4c  ...%__ECHO3% CAL
0310: 4c 20 22 25 54 4f 4f 4c 53 25 5c 76 73 53 70 2e  L "%TOOLS%\vsSp.
0320: 62 61 74 22 0d 0a 0d 0a 49 46 20 45 52 52 4f 52  bat"....IF ERROR
0330: 4c 45 56 45 4c 20 31 20 28 0d 0a 20 20 45 43 48  LEVEL 1 (..  ECH
0340: 4f 20 43 6f 75 6c 64 20 6e 6f 74 20 64 65 74 65  O Could not dete
0350: 63 74 20 56 69 73 75 61 6c 20 53 74 75 64 69 6f  ct Visual Studio
0360: 2e 0d 0a 20 20 47 4f 54 4f 20 65 72 72 6f 72 73  ...  GOTO errors
0370: 0d 0a 29 0d 0a 0d 0a 25 5f 5f 45 43 48 4f 33 25  ..)....%__ECHO3%
0380: 20 43 41 4c 4c 20 22 25 54 4f 4f 4c 53 25 5c 73   CALL "%TOOLS%\s
0390: 65 74 5f 63 6f 6d 6d 6f 6e 2e 62 61 74 22 0d 0a  et_common.bat"..
03a0: 0d 0a 49 46 20 45 52 52 4f 52 4c 45 56 45 4c 20  ..IF ERRORLEVEL 
03b0: 31 20 28 0d 0a 20 20 45 43 48 4f 20 43 6f 75 6c  1 (..  ECHO Coul
03c0: 64 20 6e 6f 74 20 73 65 74 20 63 6f 6d 6d 6f 6e  d not set common
03d0: 20 76 61 72 69 61 62 6c 65 73 2e 0d 0a 20 20 47   variables...  G
03e0: 4f 54 4f 20 65 72 72 6f 72 73 0d 0a 29 0d 0a 0d  OTO errors..)...
03f0: 0a 49 46 20 4e 4f 54 20 44 45 46 49 4e 45 44 20  .IF NOT DEFINED 
0400: 54 45 53 54 5f 43 4f 4e 46 49 47 55 52 41 54 49  TEST_CONFIGURATI
0410: 4f 4e 53 20 28 0d 0a 20 20 53 45 54 20 54 45 53  ONS (..  SET TES
0420: 54 5f 43 4f 4e 46 49 47 55 52 41 54 49 4f 4e 53  T_CONFIGURATIONS
0430: 3d 52 65 6c 65 61 73 65 0d 0a 29 0d 0a 0d 0a 25  =Release..)....%
0440: 5f 56 45 43 48 4f 25 20 54 65 73 74 43 6f 6e 66  _VECHO% TestConf
0450: 69 67 75 72 61 74 69 6f 6e 73 20 3d 20 27 25 54  igurations = '%T
0460: 45 53 54 5f 43 4f 4e 46 49 47 55 52 41 54 49 4f  EST_CONFIGURATIO
0470: 4e 53 25 27 0d 0a 0d 0a 49 46 20 44 45 46 49 4e  NS%'....IF DEFIN
0480: 45 44 20 50 4c 41 54 46 4f 52 4d 20 28 0d 0a 20  ED PLATFORM (.. 
0490: 20 25 5f 41 45 43 48 4f 25 20 53 6b 69 70 70 69   %_AECHO% Skippi
04a0: 6e 67 20 70 6c 61 74 66 6f 72 6d 20 64 65 74 65  ng platform dete
04b0: 63 74 69 6f 6e 2c 20 61 6c 72 65 61 64 79 20 73  ction, already s
04c0: 65 74 2e 2e 2e 0d 0a 20 20 47 4f 54 4f 20 73 6b  et.....  GOTO sk
04d0: 69 70 5f 64 65 74 65 63 74 50 6c 61 74 66 6f 72  ip_detectPlatfor
04e0: 6d 0d 0a 29 0d 0a 0d 0a 49 46 20 2f 49 20 22 25  m..)....IF /I "%
04f0: 50 52 4f 43 45 53 53 4f 52 5f 41 52 43 48 49 54  PROCESSOR_ARCHIT
0500: 45 43 54 55 52 45 25 22 20 3d 3d 20 22 78 38 36  ECTURE%" == "x86
0510: 22 20 28 0d 0a 20 20 53 45 54 20 50 4c 41 54 46  " (..  SET PLATF
0520: 4f 52 4d 3d 57 69 6e 33 32 0d 0a 29 0d 0a 0d 0a  ORM=Win32..)....
0530: 49 46 20 2f 49 20 22 25 50 52 4f 43 45 53 53 4f  IF /I "%PROCESSO
0540: 52 5f 41 52 43 48 49 54 45 43 54 55 52 45 25 22  R_ARCHITECTURE%"
0550: 20 3d 3d 20 22 41 4d 44 36 34 22 20 28 0d 0a 20   == "AMD64" (.. 
0560: 20 53 45 54 20 50 4c 41 54 46 4f 52 4d 3d 78 36   SET PLATFORM=x6
0570: 34 0d 0a 29 0d 0a 0d 0a 3a 73 6b 69 70 5f 64 65  4..)....:skip_de
0580: 74 65 63 74 50 6c 61 74 66 6f 72 6d 0d 0a 0d 0a  tectPlatform....
0590: 49 46 20 4e 4f 54 20 44 45 46 49 4e 45 44 20 50  IF NOT DEFINED P
05a0: 4c 41 54 46 4f 52 4d 20 28 0d 0a 20 20 45 43 48  LATFORM (..  ECH
05b0: 4f 20 55 6e 73 75 70 70 6f 72 74 65 64 20 70 6c  O Unsupported pl
05c0: 61 74 66 6f 72 6d 2e 0d 0a 20 20 47 4f 54 4f 20  atform...  GOTO 
05d0: 65 72 72 6f 72 73 0d 0a 29 0d 0a 0d 0a 25 5f 56  errors..)....%_V
05e0: 45 43 48 4f 25 20 50 6c 61 74 66 6f 72 6d 20 3d  ECHO% Platform =
05f0: 20 27 25 50 4c 41 54 46 4f 52 4d 25 27 0d 0a 0d   '%PLATFORM%'...
0600: 0a 49 46 20 4e 4f 54 20 44 45 46 49 4e 45 44 20  .IF NOT DEFINED 
0610: 59 45 41 52 53 20 28 0d 0a 20 20 53 45 54 20 59  YEARS (..  SET Y
0620: 45 41 52 53 3d 32 30 30 38 0d 0a 29 0d 0a 0d 0a  EARS=2008..)....
0630: 25 5f 56 45 43 48 4f 25 20 59 65 61 72 73 20 3d  %_VECHO% Years =
0640: 20 27 25 59 45 41 52 53 25 27 0d 0a 25 5f 56 45   '%YEARS%'..%_VE
0650: 43 48 4f 25 20 50 72 65 41 72 67 73 20 3d 20 27  CHO% PreArgs = '
0660: 25 50 52 45 41 52 47 53 25 27 0d 0a 0d 0a 49 46  %PREARGS%'....IF
0670: 20 4e 4f 54 20 44 45 46 49 4e 45 44 20 54 45 53   NOT DEFINED TES
0680: 54 5f 46 49 4c 45 20 28 0d 0a 20 20 53 45 54 20  T_FILE (..  SET 
0690: 54 45 53 54 5f 46 49 4c 45 3d 54 65 73 74 73 5c  TEST_FILE=Tests\
06a0: 61 6c 6c 2e 65 61 67 6c 65 0d 0a 29 0d 0a 0d 0a  all.eagle..)....
06b0: 25 5f 56 45 43 48 4f 25 20 54 65 73 74 46 69 6c  %_VECHO% TestFil
06c0: 65 20 3d 20 27 25 54 45 53 54 5f 46 49 4c 45 25  e = '%TEST_FILE%
06d0: 27 0d 0a 25 5f 56 45 43 48 4f 25 20 50 6f 73 74  '..%_VECHO% Post
06e0: 41 72 67 73 20 3d 20 27 25 50 4f 53 54 41 52 47  Args = '%POSTARG
06f0: 53 25 27 0d 0a 0d 0a 49 46 20 4e 4f 54 20 44 45  S%'....IF NOT DE
0700: 46 49 4e 45 44 20 33 32 42 49 54 4f 4e 4c 59 20  FINED 32BITONLY 
0710: 28 0d 0a 20 20 53 45 54 20 45 41 47 4c 45 53 48  (..  SET EAGLESH
0720: 45 4c 4c 3d 45 61 67 6c 65 53 68 65 6c 6c 2e 65  ELL=EagleShell.e
0730: 78 65 0d 0a 29 20 45 4c 53 45 20 28 0d 0a 20 20  xe..) ELSE (..  
0740: 53 45 54 20 45 41 47 4c 45 53 48 45 4c 4c 3d 45  SET EAGLESHELL=E
0750: 61 67 6c 65 53 68 65 6c 6c 33 32 2e 65 78 65 0d  agleShell32.exe.
0760: 0a 29 0d 0a 0d 0a 25 5f 56 45 43 48 4f 25 20 45  .)....%_VECHO% E
0770: 61 67 6c 65 53 68 65 6c 6c 20 3d 20 27 25 45 41  agleShell = '%EA
0780: 47 4c 45 53 48 45 4c 4c 25 27 0d 0a 0d 0a 52 45  GLESHELL%'....RE
0790: 4d 0d 0a 52 45 4d 20 4e 4f 54 45 3a 20 53 65 74  M..REM NOTE: Set
07a0: 20 61 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20   an environment 
07b0: 76 61 72 69 61 62 6c 65 20 74 68 61 74 20 63 61  variable that ca
07c0: 6e 20 62 65 20 75 73 65 64 20 62 79 20 74 68 65  n be used by the
07d0: 20 74 65 73 74 20 73 75 69 74 65 20 74 6f 0d 0a   test suite to..
07e0: 52 45 4d 20 20 20 20 20 20 20 64 65 74 65 72 6d  REM       determ
07f0: 69 6e 65 20 74 68 61 74 20 74 65 73 74 69 6e 67  ine that testing
0800: 20 69 73 20 62 65 69 6e 67 20 70 65 72 66 6f 72   is being perfor
0810: 6d 65 64 20 69 6e 20 62 61 74 63 68 20 6d 6f 64  med in batch mod
0820: 65 2e 0d 0a 52 45 4d 0d 0a 52 45 4d 20 48 41 43  e...REM..REM HAC
0830: 4b 3a 20 49 66 20 74 68 65 20 53 4b 49 50 4d 41  K: If the SKIPMA
0840: 49 4e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76  IN environment v
0850: 61 72 69 61 62 6c 65 20 69 73 20 73 65 74 2c 20  ariable is set, 
0860: 63 6f 6d 70 6c 65 74 65 6c 79 20 73 6b 69 70 20  completely skip 
0870: 74 68 65 0d 0a 52 45 4d 20 20 20 20 20 20 20 6d  the..REM       m
0880: 61 69 6e 20 6c 6f 6f 70 2e 20 20 54 68 69 73 20  ain loop.  This 
0890: 61 6c 6c 6f 77 73 20 63 61 6c 6c 65 72 73 20 74  allows callers t
08a0: 6f 20 73 6b 69 70 20 36 34 2d 62 69 74 20 74 65  o skip 64-bit te
08b0: 73 74 69 6e 67 20 61 6e 64 20 70 72 6f 63 65 65  sting and procee
08c0: 64 0d 0a 52 45 4d 20 20 20 20 20 20 20 64 69 72  d..REM       dir
08d0: 65 63 74 6c 79 20 74 6f 20 33 32 2d 62 69 74 20  ectly to 32-bit 
08e0: 74 65 73 74 69 6e 67 2e 0d 0a 52 45 4d 0d 0a 49  testing...REM..I
08f0: 46 20 4e 4f 54 20 44 45 46 49 4e 45 44 20 53 4b  F NOT DEFINED SK
0900: 49 50 4d 41 49 4e 20 28 0d 0a 20 20 25 5f 5f 45  IPMAIN (..  %__E
0910: 43 48 4f 32 25 20 50 55 53 48 44 20 22 25 52 4f  CHO2% PUSHD "%RO
0920: 4f 54 25 22 0d 0a 0d 0a 20 20 49 46 20 45 52 52  OT%"....  IF ERR
0930: 4f 52 4c 45 56 45 4c 20 31 20 28 0d 0a 20 20 20  ORLEVEL 1 (..   
0940: 20 45 43 48 4f 20 43 6f 75 6c 64 20 6e 6f 74 20   ECHO Could not 
0950: 63 68 61 6e 67 65 20 64 69 72 65 63 74 6f 72 79  change directory
0960: 20 74 6f 20 22 25 52 4f 4f 54 25 22 2e 0d 0a 20   to "%ROOT%"... 
0970: 20 20 20 47 4f 54 4f 20 65 72 72 6f 72 73 0d 0a     GOTO errors..
0980: 20 20 29 0d 0a 0d 0a 20 20 53 45 54 20 54 45 53    )....  SET TES
0990: 54 5f 41 4c 4c 3d 31 0d 0a 0d 0a 20 20 46 4f 52  T_ALL=1....  FOR
09a0: 20 25 25 43 20 49 4e 20 28 25 54 45 53 54 5f 43   %%C IN (%TEST_C
09b0: 4f 4e 46 49 47 55 52 41 54 49 4f 4e 53 25 29 20  ONFIGURATIONS%) 
09c0: 44 4f 20 28 0d 0a 20 20 20 20 46 4f 52 20 25 25  DO (..    FOR %%
09d0: 59 20 49 4e 20 28 25 59 45 41 52 53 25 29 20 44  Y IN (%YEARS%) D
09e0: 4f 20 28 0d 0a 20 20 20 20 20 20 49 46 20 45 58  O (..      IF EX
09f0: 49 53 54 20 22 62 69 6e 5c 25 25 59 5c 25 25 43  IST "bin\%%Y\%%C
0a00: 5c 62 69 6e 22 20 28 0d 0a 20 20 20 20 20 20 20  \bin" (..       
0a10: 20 49 46 20 44 45 46 49 4e 45 44 20 33 32 42 49   IF DEFINED 32BI
0a20: 54 4f 4e 4c 59 20 28 0d 0a 20 20 20 20 20 20 20  TONLY (..       
0a30: 20 20 20 25 5f 5f 45 43 48 4f 25 20 44 45 4c 20     %__ECHO% DEL 
0a40: 2f 51 20 22 62 69 6e 5c 25 25 59 5c 25 25 43 5c  /Q "bin\%%Y\%%C\
0a50: 62 69 6e 5c 53 51 4c 69 74 65 2e 49 6e 74 65 72  bin\SQLite.Inter
0a60: 6f 70 2e 2a 22 0d 0a 0d 0a 20 20 20 20 20 20 20  op.*"....       
0a70: 20 20 20 49 46 20 45 52 52 4f 52 4c 45 56 45 4c     IF ERRORLEVEL
0a80: 20 31 20 28 0d 0a 20 20 20 20 20 20 20 20 20 20   1 (..          
0a90: 20 20 45 43 48 4f 20 46 61 69 6c 65 64 20 74 6f    ECHO Failed to
0aa0: 20 64 65 6c 65 74 65 20 22 62 69 6e 5c 25 25 59   delete "bin\%%Y
0ab0: 5c 25 25 43 5c 62 69 6e 5c 53 51 4c 69 74 65 2e  \%%C\bin\SQLite.
0ac0: 49 6e 74 65 72 6f 70 2e 2a 22 2e 0d 0a 20 20 20  Interop.*"...   
0ad0: 20 20 20 20 20 20 20 20 20 47 4f 54 4f 20 65 72           GOTO er
0ae0: 72 6f 72 73 0d 0a 20 20 20 20 20 20 20 20 20 20  rors..          
0af0: 29 0d 0a 20 20 20 20 20 20 20 20 29 0d 0a 0d 0a  )..        )....
0b00: 20 20 20 20 20 20 20 20 49 46 20 4e 4f 54 20 44          IF NOT D
0b10: 45 46 49 4e 45 44 20 4e 4f 4d 41 4e 41 47 45 44  EFINED NOMANAGED
0b20: 4f 4e 4c 59 20 28 0d 0a 20 20 20 20 20 20 20 20  ONLY (..        
0b30: 20 20 25 5f 5f 45 43 48 4f 25 20 22 45 78 74 65    %__ECHO% "Exte
0b40: 72 6e 61 6c 73 5c 45 61 67 6c 65 5c 62 69 6e 5c  rnals\Eagle\bin\
0b50: 25 45 41 47 4c 45 53 48 45 4c 4c 25 22 20 25 50  %EAGLESHELL%" %P
0b60: 52 45 41 52 47 53 25 20 2d 61 6e 79 49 6e 69 74  REARGS% -anyInit
0b70: 69 61 6c 69 7a 65 20 22 73 65 74 20 74 65 73 74  ialize "set test
0b80: 5f 79 65 61 72 20 7b 25 25 59 7d 3b 20 73 65 74  _year {%%Y}; set
0b90: 20 74 65 73 74 5f 63 6f 6e 66 69 67 75 72 61 74   test_configurat
0ba0: 69 6f 6e 20 7b 25 25 43 7d 22 20 2d 66 69 6c 65  ion {%%C}" -file
0bb0: 20 22 25 54 45 53 54 5f 46 49 4c 45 25 22 20 25   "%TEST_FILE%" %
0bc0: 50 4f 53 54 41 52 47 53 25 0d 0a 0d 0a 20 20 20  POSTARGS%....   
0bd0: 20 20 20 20 20 20 20 49 46 20 45 52 52 4f 52 4c         IF ERRORL
0be0: 45 56 45 4c 20 31 20 28 0d 0a 20 20 20 20 20 20  EVEL 1 (..      
0bf0: 20 20 20 20 20 20 45 43 48 4f 20 54 65 73 74 69        ECHO Testi
0c00: 6e 67 20 6f 66 20 22 25 25 59 2f 25 25 43 22 20  ng of "%%Y/%%C" 
0c10: 6d 61 6e 61 67 65 64 2d 6f 6e 6c 79 20 61 73 73  managed-only ass
0c20: 65 6d 62 6c 79 20 66 61 69 6c 65 64 2e 0d 0a 20  embly failed... 
0c30: 20 20 20 20 20 20 20 20 20 20 20 47 4f 54 4f 20             GOTO 
0c40: 65 72 72 6f 72 73 0d 0a 20 20 20 20 20 20 20 20  errors..        
0c50: 20 20 29 0d 0a 20 20 20 20 20 20 20 20 29 0d 0a    )..        )..
0c60: 0d 0a 20 20 20 20 20 20 20 20 49 46 20 45 58 49  ..        IF EXI
0c70: 53 54 20 22 62 69 6e 5c 25 25 59 5c 25 50 4c 41  ST "bin\%%Y\%PLA
0c80: 54 46 4f 52 4d 25 5c 25 25 43 22 20 28 0d 0a 20  TFORM%\%%C" (.. 
0c90: 20 20 20 20 20 20 20 20 20 49 46 20 4e 4f 54 20           IF NOT 
0ca0: 44 45 46 49 4e 45 44 20 4e 4f 4d 49 58 45 44 4d  DEFINED NOMIXEDM
0cb0: 4f 44 45 20 28 0d 0a 20 20 20 20 20 20 20 20 20  ODE (..         
0cc0: 20 20 20 49 46 20 4e 4f 54 20 44 45 46 49 4e 45     IF NOT DEFINE
0cd0: 44 20 4e 4f 58 43 4f 50 59 20 28 0d 0a 20 20 20  D NOXCOPY (..   
0ce0: 20 20 20 20 20 20 20 20 20 20 20 43 41 4c 4c 20             CALL 
0cf0: 3a 66 6e 5f 43 68 65 63 6b 46 6f 72 4c 69 6e 71  :fn_CheckForLinq
0d00: 20 25 25 59 0d 0a 0d 0a 20 20 20 20 20 20 20 20   %%Y....        
0d10: 20 20 20 20 20 20 25 5f 5f 45 43 48 4f 25 20 58        %__ECHO% X
0d20: 43 4f 50 59 20 22 62 69 6e 5c 25 25 59 5c 25 25  COPY "bin\%%Y\%%
0d30: 43 5c 62 69 6e 5c 74 65 73 74 2e 2a 22 20 22 62  C\bin\test.*" "b
0d40: 69 6e 5c 25 25 59 5c 25 50 4c 41 54 46 4f 52 4d  in\%%Y\%PLATFORM
0d50: 25 5c 25 25 43 22 20 25 46 46 4c 41 47 53 25 20  %\%%C" %FFLAGS% 
0d60: 25 44 46 4c 41 47 53 25 0d 0a 0d 0a 20 20 20 20  %DFLAGS%....    
0d70: 20 20 20 20 20 20 20 20 20 20 49 46 20 45 52 52            IF ERR
0d80: 4f 52 4c 45 56 45 4c 20 31 20 28 0d 0a 20 20 20  ORLEVEL 1 (..   
0d90: 20 20 20 20 20 20 20 20 20 20 20 20 20 45 43 48               ECH
0da0: 4f 20 46 61 69 6c 65 64 20 74 6f 20 63 6f 70 79  O Failed to copy
0db0: 20 22 62 69 6e 5c 25 25 59 5c 25 25 43 5c 62 69   "bin\%%Y\%%C\bi
0dc0: 6e 5c 74 65 73 74 2e 2a 22 20 74 6f 20 22 62 69  n\test.*" to "bi
0dd0: 6e 5c 25 25 59 5c 25 50 4c 41 54 46 4f 52 4d 25  n\%%Y\%PLATFORM%
0de0: 5c 25 25 43 22 2e 0d 0a 20 20 20 20 20 20 20 20  \%%C"...        
0df0: 20 20 20 20 20 20 20 20 47 4f 54 4f 20 65 72 72          GOTO err
0e00: 6f 72 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ors..           
0e10: 20 20 20 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20     )....        
0e20: 20 20 20 20 20 20 49 46 20 44 45 46 49 4e 45 44        IF DEFINED
0e30: 20 48 41 56 45 5f 4c 49 4e 51 20 28 0d 0a 20 20   HAVE_LINQ (..  
0e40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 25 5f                %_
0e50: 5f 45 43 48 4f 25 20 58 43 4f 50 59 20 22 62 69  _ECHO% XCOPY "bi
0e60: 6e 5c 25 25 59 5c 25 25 43 5c 62 69 6e 5c 53 79  n\%%Y\%%C\bin\Sy
0e70: 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65  stem.Data.SQLite
0e80: 2e 4c 69 6e 71 2e 2a 22 20 22 62 69 6e 5c 25 25  .Linq.*" "bin\%%
0e90: 59 5c 25 50 4c 41 54 46 4f 52 4d 25 5c 25 25 43  Y\%PLATFORM%\%%C
0ea0: 22 20 25 46 46 4c 41 47 53 25 20 25 44 46 4c 41  " %FFLAGS% %DFLA
0eb0: 47 53 25 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20  GS%....         
0ec0: 20 20 20 20 20 20 20 49 46 20 45 52 52 4f 52 4c         IF ERRORL
0ed0: 45 56 45 4c 20 31 20 28 0d 0a 20 20 20 20 20 20  EVEL 1 (..      
0ee0: 20 20 20 20 20 20 20 20 20 20 20 20 45 43 48 4f              ECHO
0ef0: 20 46 61 69 6c 65 64 20 74 6f 20 63 6f 70 79 20   Failed to copy 
0f00: 22 62 69 6e 5c 25 25 59 5c 25 25 43 5c 62 69 6e  "bin\%%Y\%%C\bin
0f10: 5c 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c  \System.Data.SQL
0f20: 69 74 65 2e 4c 69 6e 71 2e 2a 22 20 74 6f 20 22  ite.Linq.*" to "
0f30: 62 69 6e 5c 25 25 59 5c 25 50 4c 41 54 46 4f 52  bin\%%Y\%PLATFOR
0f40: 4d 25 5c 25 25 43 22 2e 0d 0a 20 20 20 20 20 20  M%\%%C"...      
0f50: 20 20 20 20 20 20 20 20 20 20 20 20 47 4f 54 4f              GOTO
0f60: 20 65 72 72 6f 72 73 0d 0a 20 20 20 20 20 20 20   errors..       
0f70: 20 20 20 20 20 20 20 20 20 29 0d 0a 0d 0a 20 20           )....  
0f80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 25 5f                %_
0f90: 5f 45 43 48 4f 25 20 58 43 4f 50 59 20 22 62 69  _ECHO% XCOPY "bi
0fa0: 6e 5c 25 25 59 5c 25 25 43 5c 62 69 6e 5c 74 65  n\%%Y\%%C\bin\te
0fb0: 73 74 6c 69 6e 71 2e 2a 22 20 22 62 69 6e 5c 25  stlinq.*" "bin\%
0fc0: 25 59 5c 25 50 4c 41 54 46 4f 52 4d 25 5c 25 25  %Y\%PLATFORM%\%%
0fd0: 43 22 20 25 46 46 4c 41 47 53 25 20 25 44 46 4c  C" %FFLAGS% %DFL
0fe0: 41 47 53 25 0d 0a 0d 0a 20 20 20 20 20 20 20 20  AGS%....        
0ff0: 20 20 20 20 20 20 20 20 49 46 20 45 52 52 4f 52          IF ERROR
1000: 4c 45 56 45 4c 20 31 20 28 0d 0a 20 20 20 20 20  LEVEL 1 (..     
1010: 20 20 20 20 20 20 20 20 20 20 20 20 20 45 43 48               ECH
1020: 4f 20 46 61 69 6c 65 64 20 74 6f 20 63 6f 70 79  O Failed to copy
1030: 20 22 62 69 6e 5c 25 25 59 5c 25 25 43 5c 62 69   "bin\%%Y\%%C\bi
1040: 6e 5c 74 65 73 74 6c 69 6e 71 2e 2a 22 20 74 6f  n\testlinq.*" to
1050: 20 22 62 69 6e 5c 25 25 59 5c 25 50 4c 41 54 46   "bin\%%Y\%PLATF
1060: 4f 52 4d 25 5c 25 25 43 22 2e 0d 0a 20 20 20 20  ORM%\%%C"...    
1070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 4f                GO
1080: 54 4f 20 65 72 72 6f 72 73 0d 0a 20 20 20 20 20  TO errors..     
1090: 20 20 20 20 20 20 20 20 20 20 20 29 0d 0a 0d 0a             )....
10a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10b0: 25 5f 5f 45 43 48 4f 25 20 58 43 4f 50 59 20 22  %__ECHO% XCOPY "
10c0: 62 69 6e 5c 25 25 59 5c 25 25 43 5c 62 69 6e 5c  bin\%%Y\%%C\bin\
10d0: 6e 6f 72 74 68 77 69 6e 64 45 46 2e 64 62 22 20  northwindEF.db" 
10e0: 22 62 69 6e 5c 25 25 59 5c 25 50 4c 41 54 46 4f  "bin\%%Y\%PLATFO
10f0: 52 4d 25 5c 25 25 43 22 20 25 46 46 4c 41 47 53  RM%\%%C" %FFLAGS
1100: 25 20 25 44 46 4c 41 47 53 25 0d 0a 0d 0a 20 20  % %DFLAGS%....  
1110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 46                IF
1120: 20 45 52 52 4f 52 4c 45 56 45 4c 20 31 20 28 0d   ERRORLEVEL 1 (.
1130: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1140: 20 20 20 45 43 48 4f 20 46 61 69 6c 65 64 20 74     ECHO Failed t
1150: 6f 20 63 6f 70 79 20 22 62 69 6e 5c 25 25 59 5c  o copy "bin\%%Y\
1160: 25 25 43 5c 62 69 6e 5c 6e 6f 72 74 68 77 69 6e  %%C\bin\northwin
1170: 64 45 46 2e 64 62 22 20 74 6f 20 22 62 69 6e 5c  dEF.db" to "bin\
1180: 25 25 59 5c 25 50 4c 41 54 46 4f 52 4d 25 5c 25  %%Y\%PLATFORM%\%
1190: 25 43 22 2e 0d 0a 20 20 20 20 20 20 20 20 20 20  %C"...          
11a0: 20 20 20 20 20 20 20 20 47 4f 54 4f 20 65 72 72          GOTO err
11b0: 6f 72 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ors..           
11c0: 20 20 20 20 20 29 0d 0a 20 20 20 20 20 20 20 20       )..        
11d0: 20 20 20 20 20 20 29 0d 0a 0d 0a 20 20 20 20 20        )....     
11e0: 20 20 20 20 20 20 20 20 20 49 46 20 44 45 46 49           IF DEFI
11f0: 4e 45 44 20 48 41 56 45 5f 45 46 36 20 28 0d 0a  NED HAVE_EF6 (..
1200: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1210: 25 5f 5f 45 43 48 4f 25 20 58 43 4f 50 59 20 22  %__ECHO% XCOPY "
1220: 62 69 6e 5c 25 25 59 5c 25 25 43 5c 62 69 6e 5c  bin\%%Y\%%C\bin\
1230: 45 6e 74 69 74 79 46 72 61 6d 65 77 6f 72 6b 2e  EntityFramework.
1240: 2a 22 20 22 62 69 6e 5c 25 25 59 5c 25 50 4c 41  *" "bin\%%Y\%PLA
1250: 54 46 4f 52 4d 25 5c 25 25 43 22 20 25 46 46 4c  TFORM%\%%C" %FFL
1260: 41 47 53 25 20 25 44 46 4c 41 47 53 25 0d 0a 0d  AGS% %DFLAGS%...
1270: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1280: 20 49 46 20 45 52 52 4f 52 4c 45 56 45 4c 20 31   IF ERRORLEVEL 1
1290: 20 28 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   (..            
12a0: 20 20 20 20 20 20 45 43 48 4f 20 46 61 69 6c 65        ECHO Faile
12b0: 64 20 74 6f 20 63 6f 70 79 20 22 62 69 6e 5c 25  d to copy "bin\%
12c0: 25 59 5c 25 25 43 5c 62 69 6e 5c 45 6e 74 69 74  %Y\%%C\bin\Entit
12d0: 79 46 72 61 6d 65 77 6f 72 6b 2e 2a 22 20 74 6f  yFramework.*" to
12e0: 20 22 62 69 6e 5c 25 25 59 5c 25 50 4c 41 54 46   "bin\%%Y\%PLATF
12f0: 4f 52 4d 25 5c 25 25 43 22 2e 0d 0a 20 20 20 20  ORM%\%%C"...    
1300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 4f                GO
1310: 54 4f 20 65 72 72 6f 72 73 0d 0a 20 20 20 20 20  TO errors..     
1320: 20 20 20 20 20 20 20 20 20 20 20 29 0d 0a 0d 0a             )....
1330: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1340: 25 5f 5f 45 43 48 4f 25 20 58 43 4f 50 59 20 22  %__ECHO% XCOPY "
1350: 62 69 6e 5c 25 25 59 5c 25 25 43 5c 62 69 6e 5c  bin\%%Y\%%C\bin\
1360: 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69  System.Data.SQLi
1370: 74 65 2e 45 46 36 2e 2a 22 20 22 62 69 6e 5c 25  te.EF6.*" "bin\%
1380: 25 59 5c 25 50 4c 41 54 46 4f 52 4d 25 5c 25 25  %Y\%PLATFORM%\%%
1390: 43 22 20 25 46 46 4c 41 47 53 25 20 25 44 46 4c  C" %FFLAGS% %DFL
13a0: 41 47 53 25 0d 0a 0d 0a 20 20 20 20 20 20 20 20  AGS%....        
13b0: 20 20 20 20 20 20 20 20 49 46 20 45 52 52 4f 52          IF ERROR
13c0: 4c 45 56 45 4c 20 31 20 28 0d 0a 20 20 20 20 20  LEVEL 1 (..     
13d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 45 43 48               ECH
13e0: 4f 20 46 61 69 6c 65 64 20 74 6f 20 63 6f 70 79  O Failed to copy
13f0: 20 22 62 69 6e 5c 25 25 59 5c 25 25 43 5c 62 69   "bin\%%Y\%%C\bi
1400: 6e 5c 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51  n\System.Data.SQ
1410: 4c 69 74 65 2e 45 46 36 2e 2a 22 20 74 6f 20 22  Lite.EF6.*" to "
1420: 62 69 6e 5c 25 25 59 5c 25 50 4c 41 54 46 4f 52  bin\%%Y\%PLATFOR
1430: 4d 25 5c 25 25 43 22 2e 0d 0a 20 20 20 20 20 20  M%\%%C"...      
1440: 20 20 20 20 20 20 20 20 20 20 20 20 47 4f 54 4f              GOTO
1450: 20 65 72 72 6f 72 73 0d 0a 20 20 20 20 20 20 20   errors..       
1460: 20 20 20 20 20 20 20 20 20 29 0d 0a 0d 0a 20 20           )....  
1470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 25 5f                %_
1480: 5f 45 43 48 4f 25 20 58 43 4f 50 59 20 22 62 69  _ECHO% XCOPY "bi
1490: 6e 5c 25 25 59 5c 25 25 43 5c 62 69 6e 5c 74 65  n\%%Y\%%C\bin\te
14a0: 73 74 65 66 36 2e 2a 22 20 22 62 69 6e 5c 25 25  stef6.*" "bin\%%
14b0: 59 5c 25 50 4c 41 54 46 4f 52 4d 25 5c 25 25 43  Y\%PLATFORM%\%%C
14c0: 22 20 25 46 46 4c 41 47 53 25 20 25 44 46 4c 41  " %FFLAGS% %DFLA
14d0: 47 53 25 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20  GS%....         
14e0: 20 20 20 20 20 20 20 49 46 20 45 52 52 4f 52 4c         IF ERRORL
14f0: 45 56 45 4c 20 31 20 28 0d 0a 20 20 20 20 20 20  EVEL 1 (..      
1500: 20 20 20 20 20 20 20 20 20 20 20 20 45 43 48 4f              ECHO
1510: 20 46 61 69 6c 65 64 20 74 6f 20 63 6f 70 79 20   Failed to copy 
1520: 22 62 69 6e 5c 25 25 59 5c 25 25 43 5c 62 69 6e  "bin\%%Y\%%C\bin
1530: 5c 74 65 73 74 65 66 36 2e 2a 22 20 74 6f 20 22  \testef6.*" to "
1540: 62 69 6e 5c 25 25 59 5c 25 50 4c 41 54 46 4f 52  bin\%%Y\%PLATFOR
1550: 4d 25 5c 25 25 43 22 2e 0d 0a 20 20 20 20 20 20  M%\%%C"...      
1560: 20 20 20 20 20 20 20 20 20 20 20 20 47 4f 54 4f              GOTO
1570: 20 65 72 72 6f 72 73 0d 0a 20 20 20 20 20 20 20   errors..       
1580: 20 20 20 20 20 20 20 20 20 29 0d 0a 20 20 20 20           )..    
1590: 20 20 20 20 20 20 20 20 20 20 29 0d 0a 0d 0a 20            ).... 
15a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 25 5f 5f               %__
15b0: 45 43 48 4f 25 20 58 43 4f 50 59 20 22 62 69 6e  ECHO% XCOPY "bin
15c0: 5c 25 25 59 5c 25 25 43 5c 62 69 6e 5c 53 51 4c  \%%Y\%%C\bin\SQL
15d0: 69 74 65 2e 44 65 73 69 67 6e 65 72 2e 2a 22 20  ite.Designer.*" 
15e0: 22 62 69 6e 5c 25 25 59 5c 25 50 4c 41 54 46 4f  "bin\%%Y\%PLATFO
15f0: 52 4d 25 5c 25 25 43 22 20 25 46 46 4c 41 47 53  RM%\%%C" %FFLAGS
1600: 25 20 25 44 46 4c 41 47 53 25 0d 0a 0d 0a 20 20  % %DFLAGS%....  
1610: 20 20 20 20 20 20 20 20 20 20 20 20 49 46 20 45              IF E
1620: 52 52 4f 52 4c 45 56 45 4c 20 31 20 28 0d 0a 20  RRORLEVEL 1 (.. 
1630: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45                 E
1640: 43 48 4f 20 46 61 69 6c 65 64 20 74 6f 20 63 6f  CHO Failed to co
1650: 70 79 20 22 62 69 6e 5c 25 25 59 5c 25 25 43 5c  py "bin\%%Y\%%C\
1660: 62 69 6e 5c 53 51 4c 69 74 65 2e 44 65 73 69 67  bin\SQLite.Desig
1670: 6e 65 72 2e 2a 22 20 74 6f 20 22 62 69 6e 5c 25  ner.*" to "bin\%
1680: 25 59 5c 25 50 4c 41 54 46 4f 52 4d 25 5c 25 25  %Y\%PLATFORM%\%%
1690: 43 22 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20  C"...           
16a0: 20 20 20 20 20 47 4f 54 4f 20 65 72 72 6f 72 73       GOTO errors
16b0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
16c0: 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  )....           
16d0: 20 20 20 25 5f 5f 45 43 48 4f 25 20 58 43 4f 50     %__ECHO% XCOP
16e0: 59 20 22 62 69 6e 5c 25 25 59 5c 25 25 43 5c 62  Y "bin\%%Y\%%C\b
16f0: 69 6e 5c 49 6e 73 74 61 6c 6c 65 72 2e 2a 22 20  in\Installer.*" 
1700: 22 62 69 6e 5c 25 25 59 5c 25 50 4c 41 54 46 4f  "bin\%%Y\%PLATFO
1710: 52 4d 25 5c 25 25 43 22 20 25 46 46 4c 41 47 53  RM%\%%C" %FFLAGS
1720: 25 20 25 44 46 4c 41 47 53 25 0d 0a 0d 0a 20 20  % %DFLAGS%....  
1730: 20 20 20 20 20 20 20 20 20 20 20 20 49 46 20 45              IF E
1740: 52 52 4f 52 4c 45 56 45 4c 20 31 20 28 0d 0a 20  RRORLEVEL 1 (.. 
1750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45                 E
1760: 43 48 4f 20 46 61 69 6c 65 64 20 74 6f 20 63 6f  CHO Failed to co
1770: 70 79 20 22 62 69 6e 5c 25 25 59 5c 25 25 43 5c  py "bin\%%Y\%%C\
1780: 62 69 6e 5c 49 6e 73 74 61 6c 6c 65 72 2e 2a 22  bin\Installer.*"
1790: 20 74 6f 20 22 62 69 6e 5c 25 25 59 5c 25 50 4c   to "bin\%%Y\%PL
17a0: 41 54 46 4f 52 4d 25 5c 25 25 43 22 2e 0d 0a 20  ATFORM%\%%C"... 
17b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47                 G
17c0: 4f 54 4f 20 65 72 72 6f 72 73 0d 0a 20 20 20 20  OTO errors..    
17d0: 20 20 20 20 20 20 20 20 20 20 29 0d 0a 20 20 20            )..   
17e0: 20 20 20 20 20 20 20 20 20 29 0d 0a 0d 0a 20 20           )....  
17f0: 20 20 20 20 20 20 20 20 20 20 25 5f 5f 45 43 48            %__ECH
1800: 4f 25 20 22 45 78 74 65 72 6e 61 6c 73 5c 45 61  O% "Externals\Ea
1810: 67 6c 65 5c 62 69 6e 5c 25 45 41 47 4c 45 53 48  gle\bin\%EAGLESH
1820: 45 4c 4c 25 22 20 25 50 52 45 41 52 47 53 25 20  ELL%" %PREARGS% 
1830: 2d 70 72 65 49 6e 69 74 69 61 6c 69 7a 65 20 22  -preInitialize "
1840: 73 65 74 20 74 65 73 74 5f 79 65 61 72 20 7b 25  set test_year {%
1850: 25 59 7d 3b 20 73 65 74 20 74 65 73 74 5f 63 6f  %Y}; set test_co
1860: 6e 66 69 67 75 72 61 74 69 6f 6e 20 7b 25 25 43  nfiguration {%%C
1870: 7d 22 20 2d 69 6e 69 74 69 61 6c 69 7a 65 20 2d  }" -initialize -
1880: 72 75 6e 74 69 6d 65 4f 70 74 69 6f 6e 20 6e 61  runtimeOption na
1890: 74 69 76 65 20 2d 66 69 6c 65 20 22 25 54 45 53  tive -file "%TES
18a0: 54 5f 46 49 4c 45 25 22 20 25 50 4f 53 54 41 52  T_FILE%" %POSTAR
18b0: 47 53 25 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20  GS%....         
18c0: 20 20 20 49 46 20 45 52 52 4f 52 4c 45 56 45 4c     IF ERRORLEVEL
18d0: 20 31 20 28 0d 0a 20 20 20 20 20 20 20 20 20 20   1 (..          
18e0: 20 20 20 20 45 43 48 4f 20 54 65 73 74 69 6e 67      ECHO Testing
18f0: 20 6f 66 20 22 25 25 59 2f 25 25 43 22 20 6d 69   of "%%Y/%%C" mi
1900: 78 65 64 2d 6d 6f 64 65 20 61 73 73 65 6d 62 6c  xed-mode assembl
1910: 79 20 66 61 69 6c 65 64 2e 0d 0a 20 20 20 20 20  y failed...     
1920: 20 20 20 20 20 20 20 20 20 47 4f 54 4f 20 65 72           GOTO er
1930: 72 6f 72 73 0d 0a 20 20 20 20 20 20 20 20 20 20  rors..          
1940: 20 20 29 0d 0a 20 20 20 20 20 20 20 20 20 20 29    )..          )
1950: 0d 0a 20 20 20 20 20 20 20 20 29 20 45 4c 53 45  ..        ) ELSE
1960: 20 28 0d 0a 20 20 20 20 20 20 20 20 20 20 25 5f   (..          %_
1970: 41 45 43 48 4f 25 20 4e 61 74 69 76 65 20 64 69  AECHO% Native di
1980: 72 65 63 74 6f 72 79 20 22 62 69 6e 5c 25 25 59  rectory "bin\%%Y
1990: 5c 25 50 4c 41 54 46 4f 52 4d 25 5c 25 25 43 22  \%PLATFORM%\%%C"
19a0: 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 73 6b 69 70   not found, skip
19b0: 70 65 64 2e 0d 0a 20 20 20 20 20 20 20 20 29 0d  ped...        ).
19c0: 0a 20 20 20 20 20 20 29 20 45 4c 53 45 20 28 0d  .      ) ELSE (.
19d0: 0a 20 20 20 20 20 20 20 20 25 5f 41 45 43 48 4f  .        %_AECHO
19e0: 25 20 4d 61 6e 61 67 65 64 20 64 69 72 65 63 74  % Managed direct
19f0: 6f 72 79 20 22 62 69 6e 5c 25 25 59 5c 25 25 43  ory "bin\%%Y\%%C
1a00: 5c 62 69 6e 22 20 6e 6f 74 20 66 6f 75 6e 64 2c  \bin" not found,
1a10: 20 73 6b 69 70 70 65 64 2e 0d 0a 20 20 20 20 20   skipped...     
1a20: 20 29 0d 0a 20 20 20 20 29 0d 0a 20 20 29 0d 0a   )..    )..  )..
1a30: 0d 0a 20 20 25 5f 5f 45 43 48 4f 32 25 20 50 4f  ..  %__ECHO2% PO
1a40: 50 44 0d 0a 0d 0a 20 20 49 46 20 45 52 52 4f 52  PD....  IF ERROR
1a50: 4c 45 56 45 4c 20 31 20 28 0d 0a 20 20 20 20 45  LEVEL 1 (..    E
1a60: 43 48 4f 20 43 6f 75 6c 64 20 6e 6f 74 20 72 65  CHO Could not re
1a70: 73 74 6f 72 65 20 64 69 72 65 63 74 6f 72 79 2e  store directory.
1a80: 0d 0a 20 20 20 20 47 4f 54 4f 20 65 72 72 6f 72  ..    GOTO error
1a90: 73 0d 0a 20 20 29 0d 0a 29 0d 0a 0d 0a 52 45 4d  s..  )..)....REM
1aa0: 0d 0a 52 45 4d 20 4e 4f 54 45 3a 20 49 66 20 74  ..REM NOTE: If t
1ab0: 68 69 73 20 69 73 20 61 20 36 34 2d 62 69 74 20  his is a 64-bit 
1ac0: 6d 61 63 68 69 6e 65 20 61 6e 64 20 77 65 20 68  machine and we h
1ad0: 61 76 65 20 6e 6f 74 20 61 6c 72 65 61 64 79 20  ave not already 
1ae0: 72 75 6e 20 74 68 65 20 33 32 2d 62 69 74 0d 0a  run the 32-bit..
1af0: 52 45 4d 20 20 20 20 20 20 20 74 65 73 74 73 2c  REM       tests,
1b00: 20 64 6f 20 73 6f 20 6e 6f 77 2c 20 75 6e 6c 65   do so now, unle
1b10: 73 73 20 77 65 20 61 72 65 20 66 6f 72 62 69 64  ss we are forbid
1b20: 64 65 6e 20 66 72 6f 6d 20 64 6f 69 6e 67 20 73  den from doing s
1b30: 6f 2e 0d 0a 52 45 4d 0d 0a 49 46 20 4e 4f 54 20  o...REM..IF NOT 
1b40: 44 45 46 49 4e 45 44 20 53 4b 49 50 33 32 42 49  DEFINED SKIP32BI
1b50: 54 4f 4e 4c 59 20 28 0d 0a 20 20 49 46 20 4e 4f  TONLY (..  IF NO
1b60: 54 20 44 45 46 49 4e 45 44 20 33 32 42 49 54 4f  T DEFINED 32BITO
1b70: 4e 4c 59 20 28 0d 0a 20 20 20 20 49 46 20 2f 49  NLY (..    IF /I
1b80: 20 4e 4f 54 20 22 25 50 52 4f 43 45 53 53 4f 52   NOT "%PROCESSOR
1b90: 5f 41 52 43 48 49 54 45 43 54 55 52 45 25 22 20  _ARCHITECTURE%" 
1ba0: 3d 3d 20 22 78 38 36 22 20 28 0d 0a 20 20 20 20  == "x86" (..    
1bb0: 20 20 52 45 4d 0d 0a 20 20 20 20 20 20 52 45 4d    REM..      REM
1bc0: 20 48 41 43 4b 3a 20 41 6c 77 61 79 73 20 75 6e   HACK: Always un
1bd0: 73 65 74 20 74 68 65 20 53 4b 49 50 4d 41 49 4e  set the SKIPMAIN
1be0: 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72   environment var
1bf0: 69 61 62 6c 65 20 73 6f 20 74 68 65 20 70 72 69  iable so the pri
1c00: 6d 61 72 79 0d 0a 20 20 20 20 20 20 52 45 4d 20  mary..      REM 
1c10: 20 20 20 20 20 20 6c 6f 6f 70 20 77 69 6c 6c 20        loop will 
1c20: 72 75 6e 20 77 68 65 6e 20 6f 6e 6c 79 20 74 68  run when only th
1c30: 65 20 33 32 2d 62 69 74 20 62 69 6e 61 72 69 65  e 32-bit binarie
1c40: 73 20 61 72 65 20 62 65 69 6e 67 20 74 65 73 74  s are being test
1c50: 65 64 2e 0d 0a 20 20 20 20 20 20 52 45 4d 0d 0a  ed...      REM..
1c60: 20 20 20 20 20 20 43 41 4c 4c 20 3a 66 6e 5f 55        CALL :fn_U
1c70: 6e 73 65 74 56 61 72 69 61 62 6c 65 20 53 4b 49  nsetVariable SKI
1c80: 50 4d 41 49 4e 0d 0a 0d 0a 20 20 20 20 20 20 53  PMAIN....      S
1c90: 45 54 20 50 4c 41 54 46 4f 52 4d 3d 57 69 6e 33  ET PLATFORM=Win3
1ca0: 32 0d 0a 20 20 20 20 20 20 53 45 54 20 33 32 42  2..      SET 32B
1cb0: 49 54 4f 4e 4c 59 3d 31 0d 0a 20 20 20 20 20 20  ITONLY=1..      
1cc0: 47 4f 54 4f 20 72 65 64 6f 0d 0a 20 20 20 20 29  GOTO redo..    )
1cd0: 0d 0a 20 20 29 0d 0a 29 0d 0a 0d 0a 47 4f 54 4f  ..  )..)....GOTO
1ce0: 20 6e 6f 5f 65 72 72 6f 72 73 0d 0a 0d 0a 3a 66   no_errors....:f
1cf0: 6e 5f 43 68 65 63 6b 46 6f 72 4c 69 6e 71 0d 0a  n_CheckForLinq..
1d00: 20 20 43 41 4c 4c 20 3a 66 6e 5f 55 6e 73 65 74    CALL :fn_Unset
1d10: 56 61 72 69 61 62 6c 65 20 48 41 56 45 5f 4c 49  Variable HAVE_LI
1d20: 4e 51 0d 0a 20 20 43 41 4c 4c 20 3a 66 6e 5f 55  NQ..  CALL :fn_U
1d30: 6e 73 65 74 56 61 72 69 61 62 6c 65 20 48 41 56  nsetVariable HAV
1d40: 45 5f 45 46 36 0d 0a 20 20 49 46 20 2f 49 20 22  E_EF6..  IF /I "
1d50: 25 31 22 20 3d 3d 20 22 32 30 30 38 22 20 28 0d  %1" == "2008" (.
1d60: 0a 20 20 20 20 53 45 54 20 48 41 56 45 5f 4c 49  .    SET HAVE_LI
1d70: 4e 51 3d 31 0d 0a 20 20 29 0d 0a 20 20 49 46 20  NQ=1..  )..  IF 
1d80: 2f 49 20 22 25 31 22 20 3d 3d 20 22 32 30 31 30  /I "%1" == "2010
1d90: 22 20 28 0d 0a 20 20 20 20 53 45 54 20 48 41 56  " (..    SET HAV
1da0: 45 5f 4c 49 4e 51 3d 31 0d 0a 20 20 20 20 53 45  E_LINQ=1..    SE
1db0: 54 20 48 41 56 45 5f 45 46 36 3d 31 0d 0a 20 20  T HAVE_EF6=1..  
1dc0: 29 0d 0a 20 20 49 46 20 2f 49 20 22 25 31 22 20  )..  IF /I "%1" 
1dd0: 3d 3d 20 22 32 30 31 32 22 20 28 0d 0a 20 20 20  == "2012" (..   
1de0: 20 53 45 54 20 48 41 56 45 5f 4c 49 4e 51 3d 31   SET HAVE_LINQ=1
1df0: 0d 0a 20 20 20 20 53 45 54 20 48 41 56 45 5f 45  ..    SET HAVE_E
1e00: 46 36 3d 31 0d 0a 20 20 29 0d 0a 20 20 49 46 20  F6=1..  )..  IF 
1e10: 2f 49 20 22 25 31 22 20 3d 3d 20 22 32 30 31 33  /I "%1" == "2013
1e20: 22 20 28 0d 0a 20 20 20 20 53 45 54 20 48 41 56  " (..    SET HAV
1e30: 45 5f 4c 49 4e 51 3d 31 0d 0a 20 20 20 20 53 45  E_LINQ=1..    SE
1e40: 54 20 48 41 56 45 5f 45 46 36 3d 31 0d 0a 20 20  T HAVE_EF6=1..  
1e50: 29 0d 0a 20 20 47 4f 54 4f 20 3a 45 4f 46 0d 0a  )..  GOTO :EOF..
1e60: 0d 0a 3a 66 6e 5f 55 6e 73 65 74 56 61 72 69 61  ..:fn_UnsetVaria
1e70: 62 6c 65 0d 0a 20 20 49 46 20 4e 4f 54 20 22 25  ble..  IF NOT "%
1e80: 31 22 20 3d 3d 20 22 22 20 28 0d 0a 20 20 20 20  1" == "" (..    
1e90: 53 45 54 20 25 31 3d 0d 0a 20 20 20 20 43 41 4c  SET %1=..    CAL
1ea0: 4c 20 3a 66 6e 5f 52 65 73 65 74 45 72 72 6f 72  L :fn_ResetError
1eb0: 4c 65 76 65 6c 0d 0a 20 20 29 0d 0a 20 20 47 4f  Level..  )..  GO
1ec0: 54 4f 20 3a 45 4f 46 0d 0a 0d 0a 3a 66 6e 5f 52  TO :EOF....:fn_R
1ed0: 65 73 65 74 45 72 72 6f 72 4c 65 76 65 6c 0d 0a  esetErrorLevel..
1ee0: 20 20 56 45 52 49 46 59 20 3e 20 4e 55 4c 0d 0a    VERIFY > NUL..
1ef0: 20 20 47 4f 54 4f 20 3a 45 4f 46 0d 0a 0d 0a 3a    GOTO :EOF....:
1f00: 66 6e 5f 53 65 74 45 72 72 6f 72 4c 65 76 65 6c  fn_SetErrorLevel
1f10: 0d 0a 20 20 56 45 52 49 46 59 20 4d 41 59 42 45  ..  VERIFY MAYBE
1f20: 20 32 3e 20 4e 55 4c 0d 0a 20 20 47 4f 54 4f 20   2> NUL..  GOTO 
1f30: 3a 45 4f 46 0d 0a 0d 0a 3a 75 73 61 67 65 0d 0a  :EOF....:usage..
1f40: 20 20 45 43 48 4f 2e 0d 0a 20 20 45 43 48 4f 20    ECHO...  ECHO 
1f50: 55 73 61 67 65 3a 20 25 7e 6e 78 30 0d 0a 20 20  Usage: %~nx0..  
1f60: 47 4f 54 4f 20 65 72 72 6f 72 73 0d 0a 0d 0a 3a  GOTO errors....:
1f70: 65 72 72 6f 72 73 0d 0a 20 20 43 41 4c 4c 20 3a  errors..  CALL :
1f80: 66 6e 5f 53 65 74 45 72 72 6f 72 4c 65 76 65 6c  fn_SetErrorLevel
1f90: 0d 0a 20 20 45 4e 44 4c 4f 43 41 4c 0d 0a 20 20  ..  ENDLOCAL..  
1fa0: 45 43 48 4f 2e 0d 0a 20 20 45 43 48 4f 20 54 65  ECHO...  ECHO Te
1fb0: 73 74 20 66 61 69 6c 75 72 65 2c 20 65 72 72 6f  st failure, erro
1fc0: 72 73 20 77 65 72 65 20 65 6e 63 6f 75 6e 74 65  rs were encounte
1fd0: 72 65 64 2e 0d 0a 20 20 47 4f 54 4f 20 65 6e 64  red...  GOTO end
1fe0: 5f 6f 66 5f 66 69 6c 65 0d 0a 0d 0a 3a 6e 6f 5f  _of_file....:no_
1ff0: 65 72 72 6f 72 73 0d 0a 20 20 43 41 4c 4c 20 3a  errors..  CALL :
2000: 66 6e 5f 52 65 73 65 74 45 72 72 6f 72 4c 65 76  fn_ResetErrorLev
2010: 65 6c 0d 0a 20 20 45 4e 44 4c 4f 43 41 4c 0d 0a  el..  ENDLOCAL..
2020: 20 20 45 43 48 4f 2e 0d 0a 20 20 45 43 48 4f 20    ECHO...  ECHO 
2030: 54 65 73 74 20 73 75 63 63 65 73 73 2c 20 6e 6f  Test success, no
2040: 20 65 72 72 6f 72 73 20 77 65 72 65 20 65 6e 63   errors were enc
2050: 6f 75 6e 74 65 72 65 64 2e 0d 0a 20 20 47 4f 54  ountered...  GOT
2060: 4f 20 65 6e 64 5f 6f 66 5f 66 69 6c 65 0d 0a 0d  O end_of_file...
2070: 0a 3a 65 6e 64 5f 6f 66 5f 66 69 6c 65 0d 0a 25  .:end_of_file..%
2080: 5f 5f 45 43 48 4f 25 20 45 58 49 54 20 2f 42 20  __ECHO% EXIT /B 
2090: 25 45 52 52 4f 52 4c 45 56 45 4c 25 0d 0a        %ERRORLEVEL%..