System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 61c63847a5e1f5cf416be87e1bb8414ee4cb19ff:


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 74 6b 74 2d 30 30 66 38 36 66  .#..# tkt-00f86f
0060: 39 37 33 39 2e 65 61 67 6c 65 20 2d 2d 0d 0a 23  9739.eagle --..#
0070: 0d 0a 23 20 57 72 69 74 74 65 6e 20 62 79 20 4a  ..# Written by J
0080: 6f 65 20 4d 69 73 74 61 63 68 6b 69 6e 2e 0d 0a  oe Mistachkin...
0090: 23 20 52 65 6c 65 61 73 65 64 20 74 6f 20 74 68  # Released to th
00a0: 65 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2c  e public domain,
00b0: 20 75 73 65 20 61 74 20 79 6f 75 72 20 6f 77 6e   use at your own
00c0: 20 72 69 73 6b 21 0d 0a 23 0d 0a 23 23 23 23 23   risk!..#..#####
00d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
00e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
00f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0100: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0110: 23 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 70 61  ##########....pa
0120: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 45 61  ckage require Ea
0130: 67 6c 65 0d 0a 70 61 63 6b 61 67 65 20 72 65 71  gle..package req
0140: 75 69 72 65 20 45 61 67 6c 65 2e 4c 69 62 72 61  uire Eagle.Libra
0150: 72 79 0d 0a 70 61 63 6b 61 67 65 20 72 65 71 75  ry..package requ
0160: 69 72 65 20 45 61 67 6c 65 2e 54 65 73 74 0d 0a  ire Eagle.Test..
0170: 0d 0a 72 75 6e 54 65 73 74 50 72 6f 6c 6f 67 75  ..runTestPrologu
0180: 65 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23  e....###########
0190: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01a0: 23 23 23 23 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 0d 0a 0d 0a 70 61 63 6b 61 67 65 20  ####....package 
01e0: 72 65 71 75 69 72 65 20 53 79 73 74 65 6d 2e 44  require System.D
01f0: 61 74 61 2e 53 51 4c 69 74 65 2e 54 65 73 74 0d  ata.SQLite.Test.
0200: 0a 72 75 6e 53 51 4c 69 74 65 54 65 73 74 50 72  .runSQLiteTestPr
0210: 6f 6c 6f 67 75 65 0d 0a 0d 0a 23 23 23 23 23 23  ologue....######
0220: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0230: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0240: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0250: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0260: 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 23 0d 0a  #########....#..
0270: 23 20 4e 4f 54 45 3a 20 53 65 74 75 70 20 74 68  # NOTE: Setup th
0280: 65 20 76 61 72 69 61 62 6c 65 73 20 74 68 61 74  e variables that
0290: 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 76 61   refer to the va
02a0: 72 69 6f 75 73 20 6e 6f 6e 2d 64 61 74 61 20 66  rious non-data f
02b0: 69 6c 65 73 20 72 65 71 75 69 72 65 64 0d 0a 23  iles required..#
02c0: 20 20 20 20 20 20 20 62 79 20 74 68 65 20 74 65         by the te
02d0: 73 74 73 20 69 6e 20 74 68 69 73 20 66 69 6c 65  sts in this file
02e0: 2e 0d 0a 23 0d 0a 73 65 74 20 65 6e 74 69 74 79  ...#..set entity
02f0: 46 72 61 6d 65 77 6f 72 6b 44 6c 6c 46 69 6c 65  FrameworkDllFile
0300: 20 5b 67 65 74 42 75 69 6c 64 46 69 6c 65 4e 61   [getBuildFileNa
0310: 6d 65 20 45 6e 74 69 74 79 46 72 61 6d 65 77 6f  me EntityFramewo
0320: 72 6b 2e 64 6c 6c 5d 0d 0a 73 65 74 20 73 79 73  rk.dll]..set sys
0330: 74 65 6d 44 61 74 61 53 51 4c 69 74 65 44 6c 6c  temDataSQLiteDll
0340: 46 69 6c 65 20 5b 67 65 74 42 75 69 6c 64 46 69  File [getBuildFi
0350: 6c 65 4e 61 6d 65 20 53 79 73 74 65 6d 2e 44 61  leName System.Da
0360: 74 61 2e 53 51 4c 69 74 65 2e 64 6c 6c 5d 0d 0a  ta.SQLite.dll]..
0370: 73 65 74 20 73 79 73 74 65 6d 44 61 74 61 53 51  set systemDataSQ
0380: 4c 69 74 65 4c 69 6e 71 44 6c 6c 46 69 6c 65 20  LiteLinqDllFile 
0390: 5b 67 65 74 42 75 69 6c 64 46 69 6c 65 4e 61 6d  [getBuildFileNam
03a0: 65 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51  e System.Data.SQ
03b0: 4c 69 74 65 2e 4c 69 6e 71 2e 64 6c 6c 5d 0d 0a  Lite.Linq.dll]..
03c0: 73 65 74 20 73 79 73 74 65 6d 44 61 74 61 53 51  set systemDataSQ
03d0: 4c 69 74 65 45 66 36 44 6c 6c 46 69 6c 65 20 5b  LiteEf6DllFile [
03e0: 67 65 74 42 75 69 6c 64 46 69 6c 65 4e 61 6d 65  getBuildFileName
03f0: 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c   System.Data.SQL
0400: 69 74 65 2e 45 46 36 2e 64 6c 6c 5d 0d 0a 73 65  ite.EF6.dll]..se
0410: 74 20 74 65 73 74 4c 69 6e 71 45 78 65 46 69 6c  t testLinqExeFil
0420: 65 20 5b 67 65 74 42 75 69 6c 64 46 69 6c 65 4e  e [getBuildFileN
0430: 61 6d 65 20 74 65 73 74 6c 69 6e 71 2e 65 78 65  ame testlinq.exe
0440: 5d 0d 0a 73 65 74 20 74 65 73 74 45 66 36 45 78  ]..set testEf6Ex
0450: 65 46 69 6c 65 20 5b 67 65 74 42 75 69 6c 64 46  eFile [getBuildF
0460: 69 6c 65 4e 61 6d 65 20 74 65 73 74 65 66 36 2e  ileName testef6.
0470: 65 78 65 5d 0d 0a 0d 0a 23 0d 0a 23 20 4e 4f 54  exe]....#..# NOT
0480: 45 3a 20 53 65 74 75 70 20 74 68 65 20 76 61 72  E: Setup the var
0490: 69 61 62 6c 65 73 20 74 68 61 74 20 72 65 66 65  iables that refe
04a0: 72 20 74 6f 20 74 68 65 20 76 61 72 69 6f 75 73  r to the various
04b0: 20 64 61 74 61 20 66 69 6c 65 73 20 72 65 71 75   data files requ
04c0: 69 72 65 64 20 62 79 0d 0a 23 20 20 20 20 20 20  ired by..#      
04d0: 20 74 68 65 20 74 65 73 74 73 20 69 6e 20 74 68   the tests in th
04e0: 69 73 20 66 69 6c 65 2e 0d 0a 23 0d 0a 73 65 74  is file...#..set
04f0: 20 6e 6f 72 74 68 77 69 6e 64 45 66 44 62 46 69   northwindEfDbFi
0500: 6c 65 20 5b 66 69 6c 65 20 6e 61 74 69 76 65 6e  le [file nativen
0510: 61 6d 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 5c  ame [file join \
0520: 0d 0a 20 20 20 20 5b 66 69 6c 65 20 64 69 72 6e  ..    [file dirn
0530: 61 6d 65 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d  ame [file dirnam
0540: 65 20 5b 67 65 74 53 51 4c 69 74 65 54 65 73 74  e [getSQLiteTest
0550: 44 61 74 61 50 61 74 68 5d 5d 5d 20 74 65 73 74  DataPath]]] test
0560: 6c 69 6e 71 20 5c 0d 0a 20 20 20 20 6e 6f 72 74  linq \..    nort
0570: 68 77 69 6e 64 45 46 2e 64 62 5d 5d 0d 0a 0d 0a  hwindEF.db]]....
0580: 23 0d 0a 23 20 4e 4f 54 45 3a 20 53 65 74 75 70  #..# NOTE: Setup
0590: 20 74 68 65 20 74 65 73 74 20 63 6f 6e 73 74 72   the test constr
05a0: 61 69 6e 74 73 20 73 70 65 63 69 66 69 63 20 74  aints specific t
05b0: 6f 20 74 68 65 20 74 65 73 74 73 20 69 6e 20 74  o the tests in t
05c0: 68 69 73 20 66 69 6c 65 2e 0d 0a 23 0d 0a 69 66  his file...#..if
05d0: 20 7b 21 5b 68 61 76 65 43 6f 6e 73 74 72 61 69   {![haveConstrai
05e0: 6e 74 20 5b 61 70 70 65 6e 64 41 72 67 73 20 66  nt [appendArgs f
05f0: 69 6c 65 5f 20 5c 0d 0a 20 20 20 20 5b 66 69 6c  ile_ \..    [fil
0600: 65 20 74 61 69 6c 20 24 65 6e 74 69 74 79 46 72  e tail $entityFr
0610: 61 6d 65 77 6f 72 6b 44 6c 6c 46 69 6c 65 5d 5d  ameworkDllFile]]
0620: 5d 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 63 68 65  ]} then {..  che
0630: 63 6b 46 6f 72 46 69 6c 65 20 24 74 65 73 74 5f  ckForFile $test_
0640: 63 68 61 6e 6e 65 6c 20 24 65 6e 74 69 74 79 46  channel $entityF
0650: 72 61 6d 65 77 6f 72 6b 44 6c 6c 46 69 6c 65 0d  rameworkDllFile.
0660: 0a 7d 0d 0a 0d 0a 69 66 20 7b 21 5b 68 61 76 65  .}....if {![have
0670: 43 6f 6e 73 74 72 61 69 6e 74 20 5b 61 70 70 65  Constraint [appe
0680: 6e 64 41 72 67 73 20 66 69 6c 65 5f 20 5c 0d 0a  ndArgs file_ \..
0690: 20 20 20 20 5b 66 69 6c 65 20 74 61 69 6c 20 24      [file tail $
06a0: 73 79 73 74 65 6d 44 61 74 61 53 51 4c 69 74 65  systemDataSQLite
06b0: 44 6c 6c 46 69 6c 65 5d 5d 5d 7d 20 74 68 65 6e  DllFile]]]} then
06c0: 20 7b 0d 0a 20 20 63 68 65 63 6b 46 6f 72 46 69   {..  checkForFi
06d0: 6c 65 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c  le $test_channel
06e0: 20 24 73 79 73 74 65 6d 44 61 74 61 53 51 4c 69   $systemDataSQLi
06f0: 74 65 44 6c 6c 46 69 6c 65 0d 0a 7d 0d 0a 0d 0a  teDllFile..}....
0700: 69 66 20 7b 21 5b 68 61 76 65 43 6f 6e 73 74 72  if {![haveConstr
0710: 61 69 6e 74 20 5b 61 70 70 65 6e 64 41 72 67 73  aint [appendArgs
0720: 20 66 69 6c 65 5f 20 5c 0d 0a 20 20 20 20 5b 66   file_ \..    [f
0730: 69 6c 65 20 74 61 69 6c 20 24 73 79 73 74 65 6d  ile tail $system
0740: 44 61 74 61 53 51 4c 69 74 65 4c 69 6e 71 44 6c  DataSQLiteLinqDl
0750: 6c 46 69 6c 65 5d 5d 5d 7d 20 74 68 65 6e 20 7b  lFile]]]} then {
0760: 0d 0a 20 20 63 68 65 63 6b 46 6f 72 46 69 6c 65  ..  checkForFile
0770: 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 24   $test_channel $
0780: 73 79 73 74 65 6d 44 61 74 61 53 51 4c 69 74 65  systemDataSQLite
0790: 4c 69 6e 71 44 6c 6c 46 69 6c 65 0d 0a 7d 0d 0a  LinqDllFile..}..
07a0: 0d 0a 69 66 20 7b 21 5b 68 61 76 65 43 6f 6e 73  ..if {![haveCons
07b0: 74 72 61 69 6e 74 20 5b 61 70 70 65 6e 64 41 72  traint [appendAr
07c0: 67 73 20 66 69 6c 65 5f 20 5c 0d 0a 20 20 20 20  gs file_ \..    
07d0: 5b 66 69 6c 65 20 74 61 69 6c 20 24 73 79 73 74  [file tail $syst
07e0: 65 6d 44 61 74 61 53 51 4c 69 74 65 45 66 36 44  emDataSQLiteEf6D
07f0: 6c 6c 46 69 6c 65 5d 5d 5d 7d 20 74 68 65 6e 20  llFile]]]} then 
0800: 7b 0d 0a 20 20 63 68 65 63 6b 46 6f 72 46 69 6c  {..  checkForFil
0810: 65 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20  e $test_channel 
0820: 24 73 79 73 74 65 6d 44 61 74 61 53 51 4c 69 74  $systemDataSQLit
0830: 65 45 66 36 44 6c 6c 46 69 6c 65 0d 0a 7d 0d 0a  eEf6DllFile..}..
0840: 0d 0a 69 66 20 7b 21 5b 68 61 76 65 43 6f 6e 73  ..if {![haveCons
0850: 74 72 61 69 6e 74 20 5b 61 70 70 65 6e 64 41 72  traint [appendAr
0860: 67 73 20 66 69 6c 65 5f 20 5b 66 69 6c 65 20 74  gs file_ [file t
0870: 61 69 6c 20 24 74 65 73 74 4c 69 6e 71 45 78 65  ail $testLinqExe
0880: 46 69 6c 65 5d 5d 5d 7d 20 74 68 65 6e 20 7b 0d  File]]]} then {.
0890: 0a 20 20 63 68 65 63 6b 46 6f 72 46 69 6c 65 20  .  checkForFile 
08a0: 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 24 74  $test_channel $t
08b0: 65 73 74 4c 69 6e 71 45 78 65 46 69 6c 65 20 74  estLinqExeFile t
08c0: 65 73 74 6c 69 6e 71 2e 65 78 65 0d 0a 7d 0d 0a  estlinq.exe..}..
08d0: 0d 0a 69 66 20 7b 21 5b 68 61 76 65 43 6f 6e 73  ..if {![haveCons
08e0: 74 72 61 69 6e 74 20 5b 61 70 70 65 6e 64 41 72  traint [appendAr
08f0: 67 73 20 66 69 6c 65 5f 20 5b 66 69 6c 65 20 74  gs file_ [file t
0900: 61 69 6c 20 24 74 65 73 74 45 66 36 45 78 65 46  ail $testEf6ExeF
0910: 69 6c 65 5d 5d 5d 7d 20 74 68 65 6e 20 7b 0d 0a  ile]]]} then {..
0920: 20 20 63 68 65 63 6b 46 6f 72 46 69 6c 65 20 24    checkForFile $
0930: 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 24 74 65  test_channel $te
0940: 73 74 45 66 36 45 78 65 46 69 6c 65 20 74 65 73  stEf6ExeFile tes
0950: 74 65 66 36 2e 65 78 65 0d 0a 7d 0d 0a 0d 0a 69  tef6.exe..}....i
0960: 66 20 7b 21 5b 68 61 76 65 43 6f 6e 73 74 72 61  f {![haveConstra
0970: 69 6e 74 20 5b 61 70 70 65 6e 64 41 72 67 73 20  int [appendArgs 
0980: 66 69 6c 65 5f 20 5b 66 69 6c 65 20 74 61 69 6c  file_ [file tail
0990: 20 24 6e 6f 72 74 68 77 69 6e 64 45 66 44 62 46   $northwindEfDbF
09a0: 69 6c 65 5d 5d 5d 7d 20 74 68 65 6e 20 7b 0d 0a  ile]]]} then {..
09b0: 20 20 63 68 65 63 6b 46 6f 72 46 69 6c 65 20 24    checkForFile $
09c0: 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 24 6e 6f  test_channel $no
09d0: 72 74 68 77 69 6e 64 45 66 44 62 46 69 6c 65 0d  rthwindEfDbFile.
09e0: 0a 7d 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23  .}....##########
09f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0a00: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0a10: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0a20: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0a30: 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 54 65 73 74  #####....runTest
0a40: 20 7b 74 65 73 74 20 74 6b 74 2d 30 30 66 38 36   {test tkt-00f86
0a50: 66 39 37 33 39 2d 31 2e 31 20 7b 4c 49 4e 51 20  f9739-1.1 {LINQ 
0a60: 77 69 74 68 20 53 74 61 72 74 73 57 69 74 68 7d  with StartsWith}
0a70: 20 2d 62 6f 64 79 20 7b 0d 0a 20 20 23 0d 0a 20   -body {..  #.. 
0a80: 20 23 20 4e 4f 54 45 3a 20 52 65 2d 63 6f 70 79   # NOTE: Re-copy
0a90: 20 74 68 65 20 72 65 66 65 72 65 6e 63 65 20 64   the reference d
0aa0: 61 74 61 62 61 73 65 20 66 69 6c 65 20 75 73 65  atabase file use
0ab0: 64 20 66 6f 72 20 74 68 69 73 20 75 6e 69 74 20  d for this unit 
0ac0: 74 65 73 74 20 74 6f 20 74 68 65 0d 0a 20 20 23  test to the..  #
0ad0: 20 20 20 20 20 20 20 62 75 69 6c 64 20 64 69 72         build dir
0ae0: 65 63 74 6f 72 79 20 69 6e 20 63 61 73 65 20 69  ectory in case i
0af0: 74 20 68 61 73 20 62 65 65 6e 20 63 68 61 6e 67  t has been chang
0b00: 65 64 20 62 79 20 61 20 70 72 65 76 69 6f 75 73  ed by a previous
0b10: 20 74 65 73 74 20 72 75 6e 2e 0d 0a 20 20 23 0d   test run...  #.
0b20: 0a 20 20 66 69 6c 65 20 63 6f 70 79 20 2d 66 6f  .  file copy -fo
0b30: 72 63 65 20 24 6e 6f 72 74 68 77 69 6e 64 45 66  rce $northwindEf
0b40: 44 62 46 69 6c 65 20 5c 0d 0a 20 20 20 20 20 20  DbFile \..      
0b50: 5b 66 69 6c 65 20 6a 6f 69 6e 20 5b 67 65 74 42  [file join [getB
0b60: 75 69 6c 64 44 69 72 65 63 74 6f 72 79 5d 20 5b  uildDirectory] [
0b70: 66 69 6c 65 20 74 61 69 6c 20 24 6e 6f 72 74 68  file tail $north
0b80: 77 69 6e 64 45 66 44 62 46 69 6c 65 5d 5d 0d 0a  windEfDbFile]]..
0b90: 0d 0a 20 20 73 65 74 20 72 65 73 75 6c 74 20 5b  ..  set result [
0ba0: 6c 69 73 74 5d 0d 0a 0d 0a 20 20 66 6f 72 65 61  list]....  forea
0bb0: 63 68 20 76 61 6c 75 65 20 5b 6c 69 73 74 20 22  ch value [list "
0bc0: 22 20 61 20 62 20 7a 20 31 2b 31 20 64 6f 6e 20  " a b z 1+1 don 
0bd0: 6e 6f 74 74 68 65 72 65 5d 20 7b 0d 0a 20 20 20  notthere] {..   
0be0: 20 73 65 74 20 6f 75 74 70 75 74 20 22 22 0d 0a   set output ""..
0bf0: 0d 0a 20 20 20 20 73 65 74 20 63 6f 64 65 20 5b  ..    set code [
0c00: 63 61 74 63 68 20 7b 0d 0a 20 20 20 20 20 20 74  catch {..      t
0c10: 65 73 74 43 6c 72 45 78 65 63 20 24 74 65 73 74  estClrExec $test
0c20: 4c 69 6e 71 45 78 65 46 69 6c 65 20 5b 6c 69 73  LinqExeFile [lis
0c30: 74 20 2d 65 76 65 6e 74 66 6c 61 67 73 20 57 61  t -eventflags Wa
0c40: 69 74 20 2d 64 69 72 65 63 74 6f 72 79 20 5c 0d  it -directory \.
0c50: 0a 20 20 20 20 20 20 20 20 20 20 5b 66 69 6c 65  .          [file
0c60: 20 64 69 72 6e 61 6d 65 20 24 74 65 73 74 4c 69   dirname $testLi
0c70: 6e 71 45 78 65 46 69 6c 65 5d 20 2d 6e 6f 63 61  nqExeFile] -noca
0c80: 72 72 69 61 67 65 72 65 74 75 72 6e 73 20 2d 73  rriagereturns -s
0c90: 74 64 6f 75 74 20 6f 75 74 70 75 74 20 5c 0d 0a  tdout output \..
0ca0: 20 20 20 20 20 20 20 20 20 20 2d 73 75 63 63 65            -succe
0cb0: 73 73 20 30 5d 20 2d 73 74 61 72 74 73 57 69 74  ss 0] -startsWit
0cc0: 68 20 24 76 61 6c 75 65 0d 0a 20 20 20 20 7d 20  h $value..    } 
0cd0: 65 72 72 6f 72 5d 0d 0a 0d 0a 20 20 20 20 74 6c  error]....    tl
0ce0: 6f 67 20 22 2d 2d 2d 2d 20 42 45 47 49 4e 20 53  og "---- BEGIN S
0cf0: 54 44 4f 55 54 20 4f 55 54 50 55 54 5c 6e 22 0d  TDOUT OUTPUT\n".
0d00: 0a 20 20 20 20 74 6c 6f 67 20 24 6f 75 74 70 75  .    tlog $outpu
0d10: 74 0d 0a 20 20 20 20 74 6c 6f 67 20 22 5c 6e 2d  t..    tlog "\n-
0d20: 2d 2d 2d 20 45 4e 44 20 53 54 44 4f 55 54 20 4f  --- END STDOUT O
0d30: 55 54 50 55 54 5c 6e 22 0d 0a 0d 0a 20 20 20 20  UTPUT\n"....    
0d40: 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 24  lappend result $
0d50: 63 6f 64 65 0d 0a 0d 0a 20 20 20 20 69 66 20 7b  code....    if {
0d60: 24 63 6f 64 65 20 3d 3d 20 30 7d 20 74 68 65 6e  $code == 0} then
0d70: 20 7b 0d 0a 20 20 20 20 20 20 6c 61 70 70 65 6e   {..      lappen
0d80: 64 20 72 65 73 75 6c 74 20 5b 73 74 72 69 6e 67  d result [string
0d90: 20 74 72 69 6d 20 24 6f 75 74 70 75 74 5d 0d 0a   trim $output]..
0da0: 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20      } else {..  
0db0: 20 20 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75      lappend resu
0dc0: 6c 74 20 5b 73 74 72 69 6e 67 20 74 72 69 6d 20  lt [string trim 
0dd0: 24 65 72 72 6f 72 5d 0d 0a 20 20 20 20 7d 0d 0a  $error]..    }..
0de0: 20 20 7d 0d 0a 0d 0a 20 20 73 65 74 20 72 65 73    }....  set res
0df0: 75 6c 74 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70 20  ult..} -cleanup 
0e00: 7b 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f  {..  unset -noco
0e10: 6d 70 6c 61 69 6e 20 63 6f 64 65 20 6f 75 74 70  mplain code outp
0e20: 75 74 20 65 72 72 6f 72 20 72 65 73 75 6c 74 20  ut error result 
0e30: 76 61 6c 75 65 0d 0a 7d 20 2d 63 6f 6e 73 74 72  value..} -constr
0e40: 61 69 6e 74 73 20 5c 0d 0a 7b 65 61 67 6c 65 20  aints \..{eagle 
0e50: 6d 6f 6e 6f 54 6f 44 6f 20 64 65 66 69 6e 65 43  monoToDo defineC
0e60: 6f 6e 73 74 61 6e 74 2e 53 79 73 74 65 6d 2e 44  onstant.System.D
0e70: 61 74 61 2e 53 51 4c 69 74 65 2e 55 53 45 5f 49  ata.SQLite.USE_I
0e80: 4e 54 45 52 4f 50 5f 44 4c 4c 5c 0d 0a 64 65 66  NTEROP_DLL\..def
0e90: 69 6e 65 43 6f 6e 73 74 61 6e 74 2e 53 79 73 74  ineConstant.Syst
0ea0: 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e 49  em.Data.SQLite.I
0eb0: 4e 54 45 52 4f 50 5f 45 58 54 45 4e 53 49 4f 4e  NTEROP_EXTENSION
0ec0: 5f 46 55 4e 43 54 49 4f 4e 53 20 53 51 4c 69 74  _FUNCTIONS SQLit
0ed0: 65 20 74 65 73 74 45 78 65 63 5c 0d 0a 66 69 6c  e testExec\..fil
0ee0: 65 5f 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51  e_System.Data.SQ
0ef0: 4c 69 74 65 2e 64 6c 6c 20 66 69 6c 65 5f 53 79  Lite.dll file_Sy
0f00: 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65  stem.Data.SQLite
0f10: 2e 4c 69 6e 71 2e 64 6c 6c 20 66 69 6c 65 5f 74  .Linq.dll file_t
0f20: 65 73 74 6c 69 6e 71 2e 65 78 65 5c 0d 0a 66 69  estlinq.exe\..fi
0f30: 6c 65 5f 6e 6f 72 74 68 77 69 6e 64 45 46 2e 64  le_northwindEF.d
0f40: 62 7d 20 2d 72 65 73 75 6c 74 20 7b 30 20 7b 7d  b} -result {0 {}
0f50: 20 30 20 7b 44 52 41 43 44 20 4f 4c 44 57 4f 20   0 {DRACD OLDWO 
0f60: 52 41 54 54 43 7d 20 30 20 7b 41 4c 46 4b 49 20  RATTC} 0 {ALFKI 
0f70: 43 41 43 54 55 20 43 48 4f 50 53 5c 0d 0a 46 4f  CACTU CHOPS\..FO
0f80: 4c 4b 4f 20 47 41 4c 45 44 20 4b 4f 45 4e 45 20  LKO GALED KOENE 
0f90: 4c 49 4c 41 53 20 4d 41 47 41 41 20 4d 41 49 53  LILAS MAGAA MAIS
0fa0: 44 20 4f 43 45 41 4e 20 52 41 4e 43 48 20 53 41  D OCEAN RANCH SA
0fb0: 56 45 41 20 54 48 45 43 52 7d 20 30 20 7b 7d 20  VEA THECR} 0 {} 
0fc0: 30 20 7b 7d 20 30 20 7b 7d 20 30 5c 0d 0a 7b 7d  0 {} 0 {} 0\..{}
0fd0: 7d 7d 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23  }}....##########
0fe0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ff0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1000: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1010: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1020: 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 54 65 73 74  #####....runTest
1030: 20 7b 74 65 73 74 20 74 6b 74 2d 30 30 66 38 36   {test tkt-00f86
1040: 66 39 37 33 39 2d 31 2e 32 20 7b 45 46 36 20 77  f9739-1.2 {EF6 w
1050: 69 74 68 20 53 74 61 72 74 73 57 69 74 68 7d 20  ith StartsWith} 
1060: 2d 62 6f 64 79 20 7b 0d 0a 20 20 23 0d 0a 20 20  -body {..  #..  
1070: 23 20 4e 4f 54 45 3a 20 52 65 2d 63 6f 70 79 20  # NOTE: Re-copy 
1080: 74 68 65 20 72 65 66 65 72 65 6e 63 65 20 64 61  the reference da
1090: 74 61 62 61 73 65 20 66 69 6c 65 20 75 73 65 64  tabase file used
10a0: 20 66 6f 72 20 74 68 69 73 20 75 6e 69 74 20 74   for this unit t
10b0: 65 73 74 20 74 6f 20 74 68 65 0d 0a 20 20 23 20  est to the..  # 
10c0: 20 20 20 20 20 20 62 75 69 6c 64 20 64 69 72 65        build dire
10d0: 63 74 6f 72 79 20 69 6e 20 63 61 73 65 20 69 74  ctory in case it
10e0: 20 68 61 73 20 62 65 65 6e 20 63 68 61 6e 67 65   has been change
10f0: 64 20 62 79 20 61 20 70 72 65 76 69 6f 75 73 20  d by a previous 
1100: 74 65 73 74 20 72 75 6e 2e 0d 0a 20 20 23 0d 0a  test run...  #..
1110: 20 20 66 69 6c 65 20 63 6f 70 79 20 2d 66 6f 72    file copy -for
1120: 63 65 20 24 6e 6f 72 74 68 77 69 6e 64 45 66 44  ce $northwindEfD
1130: 62 46 69 6c 65 20 5c 0d 0a 20 20 20 20 20 20 5b  bFile \..      [
1140: 66 69 6c 65 20 6a 6f 69 6e 20 5b 67 65 74 42 75  file join [getBu
1150: 69 6c 64 44 69 72 65 63 74 6f 72 79 5d 20 5b 66  ildDirectory] [f
1160: 69 6c 65 20 74 61 69 6c 20 24 6e 6f 72 74 68 77  ile tail $northw
1170: 69 6e 64 45 66 44 62 46 69 6c 65 5d 5d 0d 0a 0d  indEfDbFile]]...
1180: 0a 20 20 73 65 74 20 72 65 73 75 6c 74 20 5b 6c  .  set result [l
1190: 69 73 74 5d 0d 0a 0d 0a 20 20 66 6f 72 65 61 63  ist]....  foreac
11a0: 68 20 76 61 6c 75 65 20 5b 6c 69 73 74 20 22 22  h value [list ""
11b0: 20 61 20 62 20 7a 20 31 2b 31 20 64 6f 6e 20 6e   a b z 1+1 don n
11c0: 6f 74 74 68 65 72 65 5d 20 7b 0d 0a 20 20 20 20  otthere] {..    
11d0: 73 65 74 20 6f 75 74 70 75 74 20 22 22 0d 0a 0d  set output ""...
11e0: 0a 20 20 20 20 73 65 74 20 63 6f 64 65 20 5b 63  .    set code [c
11f0: 61 74 63 68 20 7b 0d 0a 20 20 20 20 20 20 74 65  atch {..      te
1200: 73 74 43 6c 72 45 78 65 63 20 24 74 65 73 74 45  stClrExec $testE
1210: 66 36 45 78 65 46 69 6c 65 20 5b 6c 69 73 74 20  f6ExeFile [list 
1220: 2d 65 76 65 6e 74 66 6c 61 67 73 20 57 61 69 74  -eventflags Wait
1230: 20 2d 64 69 72 65 63 74 6f 72 79 20 5c 0d 0a 20   -directory \.. 
1240: 20 20 20 20 20 20 20 20 20 5b 66 69 6c 65 20 64           [file d
1250: 69 72 6e 61 6d 65 20 24 74 65 73 74 45 66 36 45  irname $testEf6E
1260: 78 65 46 69 6c 65 5d 20 2d 6e 6f 63 61 72 72 69  xeFile] -nocarri
1270: 61 67 65 72 65 74 75 72 6e 73 20 2d 73 74 64 6f  agereturns -stdo
1280: 75 74 20 6f 75 74 70 75 74 20 5c 0d 0a 20 20 20  ut output \..   
1290: 20 20 20 20 20 20 20 2d 73 75 63 63 65 73 73 20         -success 
12a0: 30 5d 20 2d 73 74 61 72 74 73 57 69 74 68 20 24  0] -startsWith $
12b0: 76 61 6c 75 65 0d 0a 20 20 20 20 7d 20 65 72 72  value..    } err
12c0: 6f 72 5d 0d 0a 0d 0a 20 20 20 20 74 6c 6f 67 20  or]....    tlog 
12d0: 22 2d 2d 2d 2d 20 42 45 47 49 4e 20 53 54 44 4f  "---- BEGIN STDO
12e0: 55 54 20 4f 55 54 50 55 54 5c 6e 22 0d 0a 20 20  UT OUTPUT\n"..  
12f0: 20 20 74 6c 6f 67 20 24 6f 75 74 70 75 74 0d 0a    tlog $output..
1300: 20 20 20 20 74 6c 6f 67 20 22 5c 6e 2d 2d 2d 2d      tlog "\n----
1310: 20 45 4e 44 20 53 54 44 4f 55 54 20 4f 55 54 50   END STDOUT OUTP
1320: 55 54 5c 6e 22 0d 0a 0d 0a 20 20 20 20 6c 61 70  UT\n"....    lap
1330: 70 65 6e 64 20 72 65 73 75 6c 74 20 24 63 6f 64  pend result $cod
1340: 65 0d 0a 0d 0a 20 20 20 20 69 66 20 7b 24 63 6f  e....    if {$co
1350: 64 65 20 3d 3d 20 30 7d 20 74 68 65 6e 20 7b 0d  de == 0} then {.
1360: 0a 20 20 20 20 20 20 6c 61 70 70 65 6e 64 20 72  .      lappend r
1370: 65 73 75 6c 74 20 5b 73 74 72 69 6e 67 20 74 72  esult [string tr
1380: 69 6d 20 24 6f 75 74 70 75 74 5d 0d 0a 20 20 20  im $output]..   
1390: 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20   } else {..     
13a0: 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20   lappend result 
13b0: 5b 73 74 72 69 6e 67 20 74 72 69 6d 20 24 65 72  [string trim $er
13c0: 72 6f 72 5d 0d 0a 20 20 20 20 7d 0d 0a 20 20 7d  ror]..    }..  }
13d0: 0d 0a 0d 0a 20 20 73 65 74 20 72 65 73 75 6c 74  ....  set result
13e0: 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0d 0a  ..} -cleanup {..
13f0: 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c    unset -nocompl
1400: 61 69 6e 20 63 6f 64 65 20 6f 75 74 70 75 74 20  ain code output 
1410: 65 72 72 6f 72 20 72 65 73 75 6c 74 20 76 61 6c  error result val
1420: 75 65 0d 0a 7d 20 2d 63 6f 6e 73 74 72 61 69 6e  ue..} -constrain
1430: 74 73 20 5c 0d 0a 7b 65 61 67 6c 65 20 6d 6f 6e  ts \..{eagle mon
1440: 6f 54 6f 44 6f 20 64 65 66 69 6e 65 43 6f 6e 73  oToDo defineCons
1450: 74 61 6e 74 2e 53 79 73 74 65 6d 2e 44 61 74 61  tant.System.Data
1460: 2e 53 51 4c 69 74 65 2e 55 53 45 5f 49 4e 54 45  .SQLite.USE_INTE
1470: 52 4f 50 5f 44 4c 4c 5c 0d 0a 64 65 66 69 6e 65  ROP_DLL\..define
1480: 43 6f 6e 73 74 61 6e 74 2e 53 79 73 74 65 6d 2e  Constant.System.
1490: 44 61 74 61 2e 53 51 4c 69 74 65 2e 49 4e 54 45  Data.SQLite.INTE
14a0: 52 4f 50 5f 45 58 54 45 4e 53 49 4f 4e 5f 46 55  ROP_EXTENSION_FU
14b0: 4e 43 54 49 4f 4e 53 20 53 51 4c 69 74 65 20 74  NCTIONS SQLite t
14c0: 65 73 74 45 78 65 63 5c 0d 0a 66 69 6c 65 5f 45  estExec\..file_E
14d0: 6e 74 69 74 79 46 72 61 6d 65 77 6f 72 6b 2e 64  ntityFramework.d
14e0: 6c 6c 20 66 69 6c 65 5f 53 79 73 74 65 6d 2e 44  ll file_System.D
14f0: 61 74 61 2e 53 51 4c 69 74 65 2e 64 6c 6c 5c 0d  ata.SQLite.dll\.
1500: 0a 66 69 6c 65 5f 53 79 73 74 65 6d 2e 44 61 74  .file_System.Dat
1510: 61 2e 53 51 4c 69 74 65 2e 45 46 36 2e 64 6c 6c  a.SQLite.EF6.dll
1520: 20 66 69 6c 65 5f 74 65 73 74 65 66 36 2e 65 78   file_testef6.ex
1530: 65 20 66 69 6c 65 5f 6e 6f 72 74 68 77 69 6e 64  e file_northwind
1540: 45 46 2e 64 62 7d 20 2d 72 65 73 75 6c 74 20 5c  EF.db} -result \
1550: 0d 0a 7b 30 20 7b 7d 20 30 20 7b 44 52 41 43 44  ..{0 {} 0 {DRACD
1560: 20 4f 4c 44 57 4f 20 52 41 54 54 43 7d 20 30 20   OLDWO RATTC} 0 
1570: 7b 41 4c 46 4b 49 20 43 41 43 54 55 20 43 48 4f  {ALFKI CACTU CHO
1580: 50 53 20 46 4f 4c 4b 4f 20 47 41 4c 45 44 20 4b  PS FOLKO GALED K
1590: 4f 45 4e 45 20 4c 49 4c 41 53 20 4d 41 47 41 41  OENE LILAS MAGAA
15a0: 5c 0d 0a 4d 41 49 53 44 20 4f 43 45 41 4e 20 52  \..MAISD OCEAN R
15b0: 41 4e 43 48 20 53 41 56 45 41 20 54 48 45 43 52  ANCH SAVEA THECR
15c0: 7d 20 30 20 7b 7d 20 30 20 7b 7d 20 30 20 7b 7d  } 0 {} 0 {} 0 {}
15d0: 20 30 20 7b 7d 7d 7d 0d 0a 0d 0a 23 23 23 23 23   0 {}}}....#####
15e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
15f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1600: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1610: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1620: 23 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 75 6e  ##########....un
1630: 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20  set -nocomplain 
1640: 6e 6f 72 74 68 77 69 6e 64 45 66 44 62 46 69 6c  northwindEfDbFil
1650: 65 20 74 65 73 74 45 66 36 45 78 65 46 69 6c 65  e testEf6ExeFile
1660: 20 74 65 73 74 4c 69 6e 71 45 78 65 46 69 6c 65   testLinqExeFile
1670: 20 5c 0d 0a 20 20 20 20 73 79 73 74 65 6d 44 61   \..    systemDa
1680: 74 61 53 51 4c 69 74 65 45 66 36 44 6c 6c 46 69  taSQLiteEf6DllFi
1690: 6c 65 20 73 79 73 74 65 6d 44 61 74 61 53 51 4c  le systemDataSQL
16a0: 69 74 65 4c 69 6e 71 44 6c 6c 46 69 6c 65 20 5c  iteLinqDllFile \
16b0: 0d 0a 20 20 20 20 73 79 73 74 65 6d 44 61 74 61  ..    systemData
16c0: 53 51 4c 69 74 65 44 6c 6c 46 69 6c 65 20 65 6e  SQLiteDllFile en
16d0: 74 69 74 79 46 72 61 6d 65 77 6f 72 6b 44 6c 6c  tityFrameworkDll
16e0: 46 69 6c 65 0d 0a 0d 0a 23 23 23 23 23 23 23 23  File....########
16f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1700: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1710: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1720: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1730: 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 53 51  #######....runSQ
1740: 4c 69 74 65 54 65 73 74 45 70 69 6c 6f 67 75 65  LiteTestEpilogue
1750: 0d 0a 72 75 6e 54 65 73 74 45 70 69 6c 6f 67 75  ..runTestEpilogu
1760: 65 0d 0a                                         e..