System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 70e757af902cef057ed5c63a660b21905285d4e7:


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 66 69 6c 65 73 20 72 65 71 75  rious files requ
02b0: 69 72 65 64 20 62 79 20 74 68 65 0d 0a 23 20 20  ired by the..#  
02c0: 20 20 20 20 20 74 65 73 74 73 20 69 6e 20 74 68       tests in th
02d0: 69 73 20 66 69 6c 65 2e 0d 0a 23 0d 0a 73 65 74  is file...#..set
02e0: 20 65 6e 74 69 74 79 46 72 61 6d 65 77 6f 72 6b   entityFramework
02f0: 44 6c 6c 46 69 6c 65 20 5b 67 65 74 42 75 69 6c  DllFile [getBuil
0300: 64 46 69 6c 65 4e 61 6d 65 20 45 6e 74 69 74 79  dFileName Entity
0310: 46 72 61 6d 65 77 6f 72 6b 2e 64 6c 6c 5d 0d 0a  Framework.dll]..
0320: 73 65 74 20 73 79 73 74 65 6d 44 61 74 61 53 51  set systemDataSQ
0330: 4c 69 74 65 44 6c 6c 46 69 6c 65 20 5b 67 65 74  LiteDllFile [get
0340: 42 75 69 6c 64 46 69 6c 65 4e 61 6d 65 20 53 79  BuildFileName Sy
0350: 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65  stem.Data.SQLite
0360: 2e 64 6c 6c 5d 0d 0a 73 65 74 20 73 79 73 74 65  .dll]..set syste
0370: 6d 44 61 74 61 53 51 4c 69 74 65 4c 69 6e 71 44  mDataSQLiteLinqD
0380: 6c 6c 46 69 6c 65 20 5b 67 65 74 42 75 69 6c 64  llFile [getBuild
0390: 46 69 6c 65 4e 61 6d 65 20 53 79 73 74 65 6d 2e  FileName System.
03a0: 44 61 74 61 2e 53 51 4c 69 74 65 2e 4c 69 6e 71  Data.SQLite.Linq
03b0: 2e 64 6c 6c 5d 0d 0a 73 65 74 20 73 79 73 74 65  .dll]..set syste
03c0: 6d 44 61 74 61 53 51 4c 69 74 65 45 66 36 44 6c  mDataSQLiteEf6Dl
03d0: 6c 46 69 6c 65 20 5b 67 65 74 42 75 69 6c 64 46  lFile [getBuildF
03e0: 69 6c 65 4e 61 6d 65 20 53 79 73 74 65 6d 2e 44  ileName System.D
03f0: 61 74 61 2e 53 51 4c 69 74 65 2e 45 46 36 2e 64  ata.SQLite.EF6.d
0400: 6c 6c 5d 0d 0a 73 65 74 20 74 65 73 74 4c 69 6e  ll]..set testLin
0410: 71 45 78 65 46 69 6c 65 20 5b 67 65 74 42 75 69  qExeFile [getBui
0420: 6c 64 46 69 6c 65 4e 61 6d 65 20 74 65 73 74 6c  ldFileName testl
0430: 69 6e 71 2e 65 78 65 5d 0d 0a 73 65 74 20 74 65  inq.exe]..set te
0440: 73 74 45 66 36 45 78 65 46 69 6c 65 20 5b 67 65  stEf6ExeFile [ge
0450: 74 42 75 69 6c 64 46 69 6c 65 4e 61 6d 65 20 74  tBuildFileName t
0460: 65 73 74 65 66 36 2e 65 78 65 5d 0d 0a 73 65 74  estef6.exe]..set
0470: 20 6e 6f 72 74 68 77 69 6e 64 45 66 44 62 46 69   northwindEfDbFi
0480: 6c 65 20 5b 66 69 6c 65 20 6e 61 74 69 76 65 6e  le [file nativen
0490: 61 6d 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 5b  ame [file join [
04a0: 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 24 70 61  file dirname $pa
04b0: 74 68 5d 20 5c 0d 0a 20 20 20 20 74 65 73 74 6c  th] \..    testl
04c0: 69 6e 71 20 6e 6f 72 74 68 77 69 6e 64 45 46 2e  inq northwindEF.
04d0: 64 62 5d 5d 0d 0a 0d 0a 23 0d 0a 23 20 4e 4f 54  db]]....#..# NOT
04e0: 45 3a 20 53 65 74 75 70 20 74 68 65 20 74 65 73  E: Setup the tes
04f0: 74 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 73 70  t constraints sp
0500: 65 63 69 66 69 63 20 74 6f 20 74 68 65 20 74 65  ecific to the te
0510: 73 74 73 20 69 6e 20 74 68 69 73 20 66 69 6c 65  sts in this file
0520: 2e 0d 0a 23 0d 0a 69 66 20 7b 21 5b 68 61 76 65  ...#..if {![have
0530: 43 6f 6e 73 74 72 61 69 6e 74 20 5b 61 70 70 65  Constraint [appe
0540: 6e 64 41 72 67 73 20 66 69 6c 65 5f 20 5c 0d 0a  ndArgs file_ \..
0550: 20 20 20 20 5b 66 69 6c 65 20 74 61 69 6c 20 24      [file tail $
0560: 65 6e 74 69 74 79 46 72 61 6d 65 77 6f 72 6b 44  entityFrameworkD
0570: 6c 6c 46 69 6c 65 5d 5d 5d 7d 20 74 68 65 6e 20  llFile]]]} then 
0580: 7b 0d 0a 20 20 63 68 65 63 6b 46 6f 72 46 69 6c  {..  checkForFil
0590: 65 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20  e $test_channel 
05a0: 24 65 6e 74 69 74 79 46 72 61 6d 65 77 6f 72 6b  $entityFramework
05b0: 44 6c 6c 46 69 6c 65 0d 0a 7d 0d 0a 0d 0a 69 66  DllFile..}....if
05c0: 20 7b 21 5b 68 61 76 65 43 6f 6e 73 74 72 61 69   {![haveConstrai
05d0: 6e 74 20 5b 61 70 70 65 6e 64 41 72 67 73 20 66  nt [appendArgs f
05e0: 69 6c 65 5f 20 5c 0d 0a 20 20 20 20 5b 66 69 6c  ile_ \..    [fil
05f0: 65 20 74 61 69 6c 20 24 73 79 73 74 65 6d 44 61  e tail $systemDa
0600: 74 61 53 51 4c 69 74 65 44 6c 6c 46 69 6c 65 5d  taSQLiteDllFile]
0610: 5d 5d 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 63 68  ]]} then {..  ch
0620: 65 63 6b 46 6f 72 46 69 6c 65 20 24 74 65 73 74  eckForFile $test
0630: 5f 63 68 61 6e 6e 65 6c 20 24 73 79 73 74 65 6d  _channel $system
0640: 44 61 74 61 53 51 4c 69 74 65 44 6c 6c 46 69 6c  DataSQLiteDllFil
0650: 65 0d 0a 7d 0d 0a 0d 0a 69 66 20 7b 21 5b 68 61  e..}....if {![ha
0660: 76 65 43 6f 6e 73 74 72 61 69 6e 74 20 5b 61 70  veConstraint [ap
0670: 70 65 6e 64 41 72 67 73 20 66 69 6c 65 5f 20 5c  pendArgs file_ \
0680: 0d 0a 20 20 20 20 5b 66 69 6c 65 20 74 61 69 6c  ..    [file tail
0690: 20 24 73 79 73 74 65 6d 44 61 74 61 53 51 4c 69   $systemDataSQLi
06a0: 74 65 4c 69 6e 71 44 6c 6c 46 69 6c 65 5d 5d 5d  teLinqDllFile]]]
06b0: 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 63 68 65 63  } then {..  chec
06c0: 6b 46 6f 72 46 69 6c 65 20 24 74 65 73 74 5f 63  kForFile $test_c
06d0: 68 61 6e 6e 65 6c 20 24 73 79 73 74 65 6d 44 61  hannel $systemDa
06e0: 74 61 53 51 4c 69 74 65 4c 69 6e 71 44 6c 6c 46  taSQLiteLinqDllF
06f0: 69 6c 65 0d 0a 7d 0d 0a 0d 0a 69 66 20 7b 21 5b  ile..}....if {![
0700: 68 61 76 65 43 6f 6e 73 74 72 61 69 6e 74 20 5b  haveConstraint [
0710: 61 70 70 65 6e 64 41 72 67 73 20 66 69 6c 65 5f  appendArgs file_
0720: 20 5c 0d 0a 20 20 20 20 5b 66 69 6c 65 20 74 61   \..    [file ta
0730: 69 6c 20 24 73 79 73 74 65 6d 44 61 74 61 53 51  il $systemDataSQ
0740: 4c 69 74 65 45 66 36 44 6c 6c 46 69 6c 65 5d 5d  LiteEf6DllFile]]
0750: 5d 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 63 68 65  ]} then {..  che
0760: 63 6b 46 6f 72 46 69 6c 65 20 24 74 65 73 74 5f  ckForFile $test_
0770: 63 68 61 6e 6e 65 6c 20 24 73 79 73 74 65 6d 44  channel $systemD
0780: 61 74 61 53 51 4c 69 74 65 45 66 36 44 6c 6c 46  ataSQLiteEf6DllF
0790: 69 6c 65 0d 0a 7d 0d 0a 0d 0a 69 66 20 7b 21 5b  ile..}....if {![
07a0: 68 61 76 65 43 6f 6e 73 74 72 61 69 6e 74 20 5b  haveConstraint [
07b0: 61 70 70 65 6e 64 41 72 67 73 20 66 69 6c 65 5f  appendArgs file_
07c0: 20 5b 66 69 6c 65 20 74 61 69 6c 20 24 74 65 73   [file tail $tes
07d0: 74 4c 69 6e 71 45 78 65 46 69 6c 65 5d 5d 5d 7d  tLinqExeFile]]]}
07e0: 20 74 68 65 6e 20 7b 0d 0a 20 20 63 68 65 63 6b   then {..  check
07f0: 46 6f 72 46 69 6c 65 20 24 74 65 73 74 5f 63 68  ForFile $test_ch
0800: 61 6e 6e 65 6c 20 24 74 65 73 74 4c 69 6e 71 45  annel $testLinqE
0810: 78 65 46 69 6c 65 20 74 65 73 74 6c 69 6e 71 2e  xeFile testlinq.
0820: 65 78 65 0d 0a 7d 0d 0a 0d 0a 69 66 20 7b 21 5b  exe..}....if {![
0830: 68 61 76 65 43 6f 6e 73 74 72 61 69 6e 74 20 5b  haveConstraint [
0840: 61 70 70 65 6e 64 41 72 67 73 20 66 69 6c 65 5f  appendArgs file_
0850: 20 5b 66 69 6c 65 20 74 61 69 6c 20 24 74 65 73   [file tail $tes
0860: 74 45 66 36 45 78 65 46 69 6c 65 5d 5d 5d 7d 20  tEf6ExeFile]]]} 
0870: 74 68 65 6e 20 7b 0d 0a 20 20 63 68 65 63 6b 46  then {..  checkF
0880: 6f 72 46 69 6c 65 20 24 74 65 73 74 5f 63 68 61  orFile $test_cha
0890: 6e 6e 65 6c 20 24 74 65 73 74 45 66 36 45 78 65  nnel $testEf6Exe
08a0: 46 69 6c 65 20 74 65 73 74 65 66 36 2e 65 78 65  File testef6.exe
08b0: 0d 0a 7d 0d 0a 0d 0a 69 66 20 7b 21 5b 68 61 76  ..}....if {![hav
08c0: 65 43 6f 6e 73 74 72 61 69 6e 74 20 5b 61 70 70  eConstraint [app
08d0: 65 6e 64 41 72 67 73 20 66 69 6c 65 5f 20 5b 66  endArgs file_ [f
08e0: 69 6c 65 20 74 61 69 6c 20 24 6e 6f 72 74 68 77  ile tail $northw
08f0: 69 6e 64 45 66 44 62 46 69 6c 65 5d 5d 5d 7d 20  indEfDbFile]]]} 
0900: 74 68 65 6e 20 7b 0d 0a 20 20 63 68 65 63 6b 46  then {..  checkF
0910: 6f 72 46 69 6c 65 20 24 74 65 73 74 5f 63 68 61  orFile $test_cha
0920: 6e 6e 65 6c 20 24 6e 6f 72 74 68 77 69 6e 64 45  nnel $northwindE
0930: 66 44 62 46 69 6c 65 0d 0a 7d 0d 0a 0d 0a 23 23  fDbFile..}....##
0940: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0950: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0960: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0970: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0980: 23 23 23 23 23 23 23 23 23 23 23 23 23 0d 0a 0d  #############...
0990: 0a 72 75 6e 54 65 73 74 20 7b 74 65 73 74 20 74  .runTest {test t
09a0: 6b 74 2d 30 30 66 38 36 66 39 37 33 39 2d 31 2e  kt-00f86f9739-1.
09b0: 31 20 7b 4c 49 4e 51 20 77 69 74 68 20 53 74 61  1 {LINQ with Sta
09c0: 72 74 73 57 69 74 68 7d 20 2d 62 6f 64 79 20 7b  rtsWith} -body {
09d0: 0d 0a 20 20 23 0d 0a 20 20 23 20 4e 4f 54 45 3a  ..  #..  # NOTE:
09e0: 20 52 65 2d 63 6f 70 79 20 74 68 65 20 72 65 66   Re-copy the ref
09f0: 65 72 65 6e 63 65 20 64 61 74 61 62 61 73 65 20  erence database 
0a00: 66 69 6c 65 20 75 73 65 64 20 66 6f 72 20 74 68  file used for th
0a10: 69 73 20 75 6e 69 74 20 74 65 73 74 20 74 6f 20  is unit test to 
0a20: 74 68 65 0d 0a 20 20 23 20 20 20 20 20 20 20 62  the..  #       b
0a30: 75 69 6c 64 20 64 69 72 65 63 74 6f 72 79 20 69  uild directory i
0a40: 6e 20 63 61 73 65 20 69 74 20 68 61 73 20 62 65  n case it has be
0a50: 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 61 20  en changed by a 
0a60: 70 72 65 76 69 6f 75 73 20 74 65 73 74 20 72 75  previous test ru
0a70: 6e 2e 0d 0a 20 20 23 0d 0a 20 20 66 69 6c 65 20  n...  #..  file 
0a80: 63 6f 70 79 20 2d 66 6f 72 63 65 20 24 6e 6f 72  copy -force $nor
0a90: 74 68 77 69 6e 64 45 66 44 62 46 69 6c 65 20 5c  thwindEfDbFile \
0aa0: 0d 0a 20 20 20 20 20 20 5b 66 69 6c 65 20 6a 6f  ..      [file jo
0ab0: 69 6e 20 5b 67 65 74 42 75 69 6c 64 44 69 72 65  in [getBuildDire
0ac0: 63 74 6f 72 79 5d 20 5b 66 69 6c 65 20 74 61 69  ctory] [file tai
0ad0: 6c 20 24 6e 6f 72 74 68 77 69 6e 64 45 66 44 62  l $northwindEfDb
0ae0: 46 69 6c 65 5d 5d 0d 0a 0d 0a 20 20 73 65 74 20  File]]....  set 
0af0: 72 65 73 75 6c 74 20 5b 6c 69 73 74 5d 0d 0a 0d  result [list]...
0b00: 0a 20 20 66 6f 72 65 61 63 68 20 76 61 6c 75 65  .  foreach value
0b10: 20 5b 6c 69 73 74 20 22 22 20 61 20 62 20 7a 20   [list "" a b z 
0b20: 31 2b 31 20 64 6f 6e 20 6e 6f 74 74 68 65 72 65  1+1 don notthere
0b30: 5d 20 7b 0d 0a 20 20 20 20 73 65 74 20 6f 75 74  ] {..    set out
0b40: 70 75 74 20 22 22 0d 0a 0d 0a 20 20 20 20 73 65  put ""....    se
0b50: 74 20 63 6f 64 65 20 5b 63 61 74 63 68 20 7b 0d  t code [catch {.
0b60: 0a 20 20 20 20 20 20 74 65 73 74 43 6c 72 45 78  .      testClrEx
0b70: 65 63 20 24 74 65 73 74 4c 69 6e 71 45 78 65 46  ec $testLinqExeF
0b80: 69 6c 65 20 5b 6c 69 73 74 20 2d 65 76 65 6e 74  ile [list -event
0b90: 66 6c 61 67 73 20 57 61 69 74 20 2d 64 69 72 65  flags Wait -dire
0ba0: 63 74 6f 72 79 20 5c 0d 0a 20 20 20 20 20 20 20  ctory \..       
0bb0: 20 20 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65     [file dirname
0bc0: 20 24 74 65 73 74 4c 69 6e 71 45 78 65 46 69 6c   $testLinqExeFil
0bd0: 65 5d 20 2d 6e 6f 63 61 72 72 69 61 67 65 72 65  e] -nocarriagere
0be0: 74 75 72 6e 73 20 2d 73 74 64 6f 75 74 20 6f 75  turns -stdout ou
0bf0: 74 70 75 74 20 5c 0d 0a 20 20 20 20 20 20 20 20  tput \..        
0c00: 20 20 2d 73 75 63 63 65 73 73 20 30 5d 20 2d 73    -success 0] -s
0c10: 74 61 72 74 73 57 69 74 68 20 24 76 61 6c 75 65  tartsWith $value
0c20: 0d 0a 20 20 20 20 7d 20 65 72 72 6f 72 5d 0d 0a  ..    } error]..
0c30: 0d 0a 20 20 20 20 74 6c 6f 67 20 22 2d 2d 2d 2d  ..    tlog "----
0c40: 20 42 45 47 49 4e 20 53 54 44 4f 55 54 20 4f 55   BEGIN STDOUT OU
0c50: 54 50 55 54 5c 6e 22 0d 0a 20 20 20 20 74 6c 6f  TPUT\n"..    tlo
0c60: 67 20 24 6f 75 74 70 75 74 0d 0a 20 20 20 20 74  g $output..    t
0c70: 6c 6f 67 20 22 5c 6e 2d 2d 2d 2d 20 45 4e 44 20  log "\n---- END 
0c80: 53 54 44 4f 55 54 20 4f 55 54 50 55 54 5c 6e 22  STDOUT OUTPUT\n"
0c90: 0d 0a 0d 0a 20 20 20 20 6c 61 70 70 65 6e 64 20  ....    lappend 
0ca0: 72 65 73 75 6c 74 20 24 63 6f 64 65 0d 0a 0d 0a  result $code....
0cb0: 20 20 20 20 69 66 20 7b 24 63 6f 64 65 20 3d 3d      if {$code ==
0cc0: 20 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20   0} then {..    
0cd0: 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74    lappend result
0ce0: 20 5b 73 74 72 69 6e 67 20 74 72 69 6d 20 24 6f   [string trim $o
0cf0: 75 74 70 75 74 5d 0d 0a 20 20 20 20 7d 20 65 6c  utput]..    } el
0d00: 73 65 20 7b 0d 0a 20 20 20 20 20 20 6c 61 70 70  se {..      lapp
0d10: 65 6e 64 20 72 65 73 75 6c 74 20 5b 73 74 72 69  end result [stri
0d20: 6e 67 20 74 72 69 6d 20 24 65 72 72 6f 72 5d 0d  ng trim $error].
0d30: 0a 20 20 20 20 7d 0d 0a 20 20 7d 0d 0a 0d 0a 20  .    }..  }.... 
0d40: 20 73 65 74 20 72 65 73 75 6c 74 0d 0a 7d 20 2d   set result..} -
0d50: 63 6c 65 61 6e 75 70 20 7b 0d 0a 20 20 75 6e 73  cleanup {..  uns
0d60: 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 63  et -nocomplain c
0d70: 6f 64 65 20 6f 75 74 70 75 74 20 65 72 72 6f 72  ode output error
0d80: 20 72 65 73 75 6c 74 20 76 61 6c 75 65 0d 0a 7d   result value..}
0d90: 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 5c 0d   -constraints \.
0da0: 0a 7b 65 61 67 6c 65 20 6d 6f 6e 6f 54 6f 44 6f  .{eagle monoToDo
0db0: 20 64 65 66 69 6e 65 43 6f 6e 73 74 61 6e 74 2e   defineConstant.
0dc0: 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69  System.Data.SQLi
0dd0: 74 65 2e 55 53 45 5f 49 4e 54 45 52 4f 50 5f 44  te.USE_INTEROP_D
0de0: 4c 4c 5c 0d 0a 64 65 66 69 6e 65 43 6f 6e 73 74  LL\..defineConst
0df0: 61 6e 74 2e 53 79 73 74 65 6d 2e 44 61 74 61 2e  ant.System.Data.
0e00: 53 51 4c 69 74 65 2e 49 4e 54 45 52 4f 50 5f 45  SQLite.INTEROP_E
0e10: 58 54 45 4e 53 49 4f 4e 5f 46 55 4e 43 54 49 4f  XTENSION_FUNCTIO
0e20: 4e 53 20 53 51 4c 69 74 65 20 74 65 73 74 45 78  NS SQLite testEx
0e30: 65 63 5c 0d 0a 66 69 6c 65 5f 53 79 73 74 65 6d  ec\..file_System
0e40: 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e 64 6c 6c  .Data.SQLite.dll
0e50: 20 66 69 6c 65 5f 53 79 73 74 65 6d 2e 44 61 74   file_System.Dat
0e60: 61 2e 53 51 4c 69 74 65 2e 4c 69 6e 71 2e 64 6c  a.SQLite.Linq.dl
0e70: 6c 20 66 69 6c 65 5f 74 65 73 74 6c 69 6e 71 2e  l file_testlinq.
0e80: 65 78 65 5c 0d 0a 66 69 6c 65 5f 6e 6f 72 74 68  exe\..file_north
0e90: 77 69 6e 64 45 46 2e 64 62 7d 20 2d 72 65 73 75  windEF.db} -resu
0ea0: 6c 74 20 7b 30 20 7b 7d 20 30 20 7b 44 52 41 43  lt {0 {} 0 {DRAC
0eb0: 44 20 4f 4c 44 57 4f 20 52 41 54 54 43 7d 20 30  D OLDWO RATTC} 0
0ec0: 20 7b 41 4c 46 4b 49 20 43 41 43 54 55 20 43 48   {ALFKI CACTU CH
0ed0: 4f 50 53 5c 0d 0a 46 4f 4c 4b 4f 20 47 41 4c 45  OPS\..FOLKO GALE
0ee0: 44 20 4b 4f 45 4e 45 20 4c 49 4c 41 53 20 4d 41  D KOENE LILAS MA
0ef0: 47 41 41 20 4d 41 49 53 44 20 4f 43 45 41 4e 20  GAA MAISD OCEAN 
0f00: 52 41 4e 43 48 20 53 41 56 45 41 20 54 48 45 43  RANCH SAVEA THEC
0f10: 52 7d 20 30 20 7b 7d 20 30 20 7b 7d 20 30 20 7b  R} 0 {} 0 {} 0 {
0f20: 7d 20 30 5c 0d 0a 7b 7d 7d 7d 0d 0a 0d 0a 23 23  } 0\..{}}}....##
0f30: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0f40: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0f50: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0f60: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0f70: 23 23 23 23 23 23 23 23 23 23 23 23 23 0d 0a 0d  #############...
0f80: 0a 72 75 6e 54 65 73 74 20 7b 74 65 73 74 20 74  .runTest {test t
0f90: 6b 74 2d 30 30 66 38 36 66 39 37 33 39 2d 31 2e  kt-00f86f9739-1.
0fa0: 32 20 7b 45 46 36 20 77 69 74 68 20 53 74 61 72  2 {EF6 with Star
0fb0: 74 73 57 69 74 68 7d 20 2d 62 6f 64 79 20 7b 0d  tsWith} -body {.
0fc0: 0a 20 20 23 0d 0a 20 20 23 20 4e 4f 54 45 3a 20  .  #..  # NOTE: 
0fd0: 52 65 2d 63 6f 70 79 20 74 68 65 20 72 65 66 65  Re-copy the refe
0fe0: 72 65 6e 63 65 20 64 61 74 61 62 61 73 65 20 66  rence database f
0ff0: 69 6c 65 20 75 73 65 64 20 66 6f 72 20 74 68 69  ile used for thi
1000: 73 20 75 6e 69 74 20 74 65 73 74 20 74 6f 20 74  s unit test to t
1010: 68 65 0d 0a 20 20 23 20 20 20 20 20 20 20 62 75  he..  #       bu
1020: 69 6c 64 20 64 69 72 65 63 74 6f 72 79 20 69 6e  ild directory in
1030: 20 63 61 73 65 20 69 74 20 68 61 73 20 62 65 65   case it has bee
1040: 6e 20 63 68 61 6e 67 65 64 20 62 79 20 61 20 70  n changed by a p
1050: 72 65 76 69 6f 75 73 20 74 65 73 74 20 72 75 6e  revious test run
1060: 2e 0d 0a 20 20 23 0d 0a 20 20 66 69 6c 65 20 63  ...  #..  file c
1070: 6f 70 79 20 2d 66 6f 72 63 65 20 24 6e 6f 72 74  opy -force $nort
1080: 68 77 69 6e 64 45 66 44 62 46 69 6c 65 20 5c 0d  hwindEfDbFile \.
1090: 0a 20 20 20 20 20 20 5b 66 69 6c 65 20 6a 6f 69  .      [file joi
10a0: 6e 20 5b 67 65 74 42 75 69 6c 64 44 69 72 65 63  n [getBuildDirec
10b0: 74 6f 72 79 5d 20 5b 66 69 6c 65 20 74 61 69 6c  tory] [file tail
10c0: 20 24 6e 6f 72 74 68 77 69 6e 64 45 66 44 62 46   $northwindEfDbF
10d0: 69 6c 65 5d 5d 0d 0a 0d 0a 20 20 73 65 74 20 72  ile]]....  set r
10e0: 65 73 75 6c 74 20 5b 6c 69 73 74 5d 0d 0a 0d 0a  esult [list]....
10f0: 20 20 66 6f 72 65 61 63 68 20 76 61 6c 75 65 20    foreach value 
1100: 5b 6c 69 73 74 20 22 22 20 61 20 62 20 7a 20 31  [list "" a b z 1
1110: 2b 31 20 64 6f 6e 20 6e 6f 74 74 68 65 72 65 5d  +1 don notthere]
1120: 20 7b 0d 0a 20 20 20 20 73 65 74 20 6f 75 74 70   {..    set outp
1130: 75 74 20 22 22 0d 0a 0d 0a 20 20 20 20 73 65 74  ut ""....    set
1140: 20 63 6f 64 65 20 5b 63 61 74 63 68 20 7b 0d 0a   code [catch {..
1150: 20 20 20 20 20 20 74 65 73 74 43 6c 72 45 78 65        testClrExe
1160: 63 20 24 74 65 73 74 45 66 36 45 78 65 46 69 6c  c $testEf6ExeFil
1170: 65 20 5b 6c 69 73 74 20 2d 65 76 65 6e 74 66 6c  e [list -eventfl
1180: 61 67 73 20 57 61 69 74 20 2d 64 69 72 65 63 74  ags Wait -direct
1190: 6f 72 79 20 5c 0d 0a 20 20 20 20 20 20 20 20 20  ory \..         
11a0: 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 24   [file dirname $
11b0: 74 65 73 74 45 66 36 45 78 65 46 69 6c 65 5d 20  testEf6ExeFile] 
11c0: 2d 6e 6f 63 61 72 72 69 61 67 65 72 65 74 75 72  -nocarriageretur
11d0: 6e 73 20 2d 73 74 64 6f 75 74 20 6f 75 74 70 75  ns -stdout outpu
11e0: 74 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 2d  t \..          -
11f0: 73 75 63 63 65 73 73 20 30 5d 20 2d 73 74 61 72  success 0] -star
1200: 74 73 57 69 74 68 20 24 76 61 6c 75 65 0d 0a 20  tsWith $value.. 
1210: 20 20 20 7d 20 65 72 72 6f 72 5d 0d 0a 0d 0a 20     } error].... 
1220: 20 20 20 74 6c 6f 67 20 22 2d 2d 2d 2d 20 42 45     tlog "---- BE
1230: 47 49 4e 20 53 54 44 4f 55 54 20 4f 55 54 50 55  GIN STDOUT OUTPU
1240: 54 5c 6e 22 0d 0a 20 20 20 20 74 6c 6f 67 20 24  T\n"..    tlog $
1250: 6f 75 74 70 75 74 0d 0a 20 20 20 20 74 6c 6f 67  output..    tlog
1260: 20 22 5c 6e 2d 2d 2d 2d 20 45 4e 44 20 53 54 44   "\n---- END STD
1270: 4f 55 54 20 4f 55 54 50 55 54 5c 6e 22 0d 0a 0d  OUT OUTPUT\n"...
1280: 0a 20 20 20 20 6c 61 70 70 65 6e 64 20 72 65 73  .    lappend res
1290: 75 6c 74 20 24 63 6f 64 65 0d 0a 0d 0a 20 20 20  ult $code....   
12a0: 20 69 66 20 7b 24 63 6f 64 65 20 3d 3d 20 30 7d   if {$code == 0}
12b0: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 6c   then {..      l
12c0: 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 73  append result [s
12d0: 74 72 69 6e 67 20 74 72 69 6d 20 24 6f 75 74 70  tring trim $outp
12e0: 75 74 5d 0d 0a 20 20 20 20 7d 20 65 6c 73 65 20  ut]..    } else 
12f0: 7b 0d 0a 20 20 20 20 20 20 6c 61 70 70 65 6e 64  {..      lappend
1300: 20 72 65 73 75 6c 74 20 5b 73 74 72 69 6e 67 20   result [string 
1310: 74 72 69 6d 20 24 65 72 72 6f 72 5d 0d 0a 20 20  trim $error]..  
1320: 20 20 7d 0d 0a 20 20 7d 0d 0a 0d 0a 20 20 73 65    }..  }....  se
1330: 74 20 72 65 73 75 6c 74 0d 0a 7d 20 2d 63 6c 65  t result..} -cle
1340: 61 6e 75 70 20 7b 0d 0a 20 20 75 6e 73 65 74 20  anup {..  unset 
1350: 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 63 6f 64 65  -nocomplain code
1360: 20 6f 75 74 70 75 74 20 65 72 72 6f 72 20 72 65   output error re
1370: 73 75 6c 74 20 76 61 6c 75 65 0d 0a 7d 20 2d 63  sult value..} -c
1380: 6f 6e 73 74 72 61 69 6e 74 73 20 5c 0d 0a 7b 65  onstraints \..{e
1390: 61 67 6c 65 20 6d 6f 6e 6f 54 6f 44 6f 20 64 65  agle monoToDo de
13a0: 66 69 6e 65 43 6f 6e 73 74 61 6e 74 2e 53 79 73  fineConstant.Sys
13b0: 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e  tem.Data.SQLite.
13c0: 55 53 45 5f 49 4e 54 45 52 4f 50 5f 44 4c 4c 5c  USE_INTEROP_DLL\
13d0: 0d 0a 64 65 66 69 6e 65 43 6f 6e 73 74 61 6e 74  ..defineConstant
13e0: 2e 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c  .System.Data.SQL
13f0: 69 74 65 2e 49 4e 54 45 52 4f 50 5f 45 58 54 45  ite.INTEROP_EXTE
1400: 4e 53 49 4f 4e 5f 46 55 4e 43 54 49 4f 4e 53 20  NSION_FUNCTIONS 
1410: 53 51 4c 69 74 65 20 74 65 73 74 45 78 65 63 5c  SQLite testExec\
1420: 0d 0a 66 69 6c 65 5f 45 6e 74 69 74 79 46 72 61  ..file_EntityFra
1430: 6d 65 77 6f 72 6b 2e 64 6c 6c 20 66 69 6c 65 5f  mework.dll file_
1440: 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69  System.Data.SQLi
1450: 74 65 2e 64 6c 6c 5c 0d 0a 66 69 6c 65 5f 53 79  te.dll\..file_Sy
1460: 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65  stem.Data.SQLite
1470: 2e 45 46 36 2e 64 6c 6c 20 66 69 6c 65 5f 74 65  .EF6.dll file_te
1480: 73 74 65 66 36 2e 65 78 65 20 66 69 6c 65 5f 6e  stef6.exe file_n
1490: 6f 72 74 68 77 69 6e 64 45 46 2e 64 62 7d 20 2d  orthwindEF.db} -
14a0: 72 65 73 75 6c 74 20 5c 0d 0a 7b 30 20 7b 7d 20  result \..{0 {} 
14b0: 30 20 7b 44 52 41 43 44 20 4f 4c 44 57 4f 20 52  0 {DRACD OLDWO R
14c0: 41 54 54 43 7d 20 30 20 7b 41 4c 46 4b 49 20 43  ATTC} 0 {ALFKI C
14d0: 41 43 54 55 20 43 48 4f 50 53 20 46 4f 4c 4b 4f  ACTU CHOPS FOLKO
14e0: 20 47 41 4c 45 44 20 4b 4f 45 4e 45 20 4c 49 4c   GALED KOENE LIL
14f0: 41 53 20 4d 41 47 41 41 5c 0d 0a 4d 41 49 53 44  AS MAGAA\..MAISD
1500: 20 4f 43 45 41 4e 20 52 41 4e 43 48 20 53 41 56   OCEAN RANCH SAV
1510: 45 41 20 54 48 45 43 52 7d 20 30 20 7b 7d 20 30  EA THECR} 0 {} 0
1520: 20 7b 7d 20 30 20 7b 7d 20 30 20 7b 7d 7d 7d 0d   {} 0 {} 0 {}}}.
1530: 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23 23  ...#############
1540: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1550: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1560: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1570: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1580: 23 23 0d 0a 0d 0a 75 6e 73 65 74 20 2d 6e 6f 63  ##....unset -noc
1590: 6f 6d 70 6c 61 69 6e 20 6e 6f 72 74 68 77 69 6e  omplain northwin
15a0: 64 45 66 44 62 46 69 6c 65 20 74 65 73 74 45 66  dEfDbFile testEf
15b0: 36 45 78 65 46 69 6c 65 20 74 65 73 74 4c 69 6e  6ExeFile testLin
15c0: 71 45 78 65 46 69 6c 65 20 5c 0d 0a 20 20 20 20  qExeFile \..    
15d0: 73 79 73 74 65 6d 44 61 74 61 53 51 4c 69 74 65  systemDataSQLite
15e0: 45 66 36 44 6c 6c 46 69 6c 65 20 73 79 73 74 65  Ef6DllFile syste
15f0: 6d 44 61 74 61 53 51 4c 69 74 65 4c 69 6e 71 44  mDataSQLiteLinqD
1600: 6c 6c 46 69 6c 65 20 5c 0d 0a 20 20 20 20 73 79  llFile \..    sy
1610: 73 74 65 6d 44 61 74 61 53 51 4c 69 74 65 44 6c  stemDataSQLiteDl
1620: 6c 46 69 6c 65 20 65 6e 74 69 74 79 46 72 61 6d  lFile entityFram
1630: 65 77 6f 72 6b 44 6c 6c 46 69 6c 65 0d 0a 0d 0a  eworkDllFile....
1640: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1650: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1660: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1670: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1680: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0d  ###############.
1690: 0a 0d 0a 72 75 6e 53 51 4c 69 74 65 54 65 73 74  ...runSQLiteTest
16a0: 45 70 69 6c 6f 67 75 65 0d 0a 72 75 6e 54 65 73  Epilogue..runTes
16b0: 74 45 70 69 6c 6f 67 75 65 0d 0a                 tEpilogue..