System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact cf35d1f1cbf07b5806e7247b1961559fc293f6cf:


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 35 39 65 64 63 31  .#..# tkt-59edc1
0060: 30 31 38 62 2e 65 61 67 6c 65 20 2d 2d 0d 0a 23  018b.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 73 79 73 74 65 6d 44 61 74 61 53 51 4c 69 74   systemDataSQLit
02f0: 65 44 6c 6c 46 69 6c 65 20 5b 67 65 74 42 75 69  eDllFile [getBui
0300: 6c 64 46 69 6c 65 4e 61 6d 65 20 53 79 73 74 65  ldFileName Syste
0310: 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e 64 6c  m.Data.SQLite.dl
0320: 6c 5d 0d 0a 73 65 74 20 73 79 73 74 65 6d 44 61  l]..set systemDa
0330: 74 61 53 51 4c 69 74 65 4c 69 6e 71 44 6c 6c 46  taSQLiteLinqDllF
0340: 69 6c 65 20 5b 67 65 74 42 75 69 6c 64 46 69 6c  ile [getBuildFil
0350: 65 4e 61 6d 65 20 53 79 73 74 65 6d 2e 44 61 74  eName System.Dat
0360: 61 2e 53 51 4c 69 74 65 2e 4c 69 6e 71 2e 64 6c  a.SQLite.Linq.dl
0370: 6c 5d 0d 0a 73 65 74 20 74 65 73 74 4c 69 6e 71  l]..set testLinq
0380: 45 78 65 46 69 6c 65 20 5b 67 65 74 42 75 69 6c  ExeFile [getBuil
0390: 64 46 69 6c 65 4e 61 6d 65 20 74 65 73 74 6c 69  dFileName testli
03a0: 6e 71 2e 65 78 65 5d 0d 0a 73 65 74 20 6e 6f 72  nq.exe]..set nor
03b0: 74 68 77 69 6e 64 45 66 44 62 46 69 6c 65 20 5b  thwindEfDbFile [
03c0: 66 69 6c 65 20 6e 61 74 69 76 65 6e 61 6d 65 20  file nativename 
03d0: 5b 66 69 6c 65 20 6a 6f 69 6e 20 5b 66 69 6c 65  [file join [file
03e0: 20 64 69 72 6e 61 6d 65 20 24 70 61 74 68 5d 20   dirname $path] 
03f0: 5c 0d 0a 20 20 20 20 74 65 73 74 6c 69 6e 71 20  \..    testlinq 
0400: 6e 6f 72 74 68 77 69 6e 64 45 46 2e 64 62 5d 5d  northwindEF.db]]
0410: 0d 0a 0d 0a 23 0d 0a 23 20 4e 4f 54 45 3a 20 53  ....#..# NOTE: S
0420: 65 74 75 70 20 74 68 65 20 74 65 73 74 20 63 6f  etup the test co
0430: 6e 73 74 72 61 69 6e 74 73 20 73 70 65 63 69 66  nstraints specif
0440: 69 63 20 74 6f 20 74 68 65 20 74 65 73 74 73 20  ic to the tests 
0450: 69 6e 20 74 68 69 73 20 66 69 6c 65 2e 0d 0a 23  in this file...#
0460: 0d 0a 69 66 20 7b 21 5b 68 61 76 65 43 6f 6e 73  ..if {![haveCons
0470: 74 72 61 69 6e 74 20 5b 61 70 70 65 6e 64 41 72  traint [appendAr
0480: 67 73 20 66 69 6c 65 5f 20 5c 0d 0a 20 20 20 20  gs file_ \..    
0490: 5b 66 69 6c 65 20 74 61 69 6c 20 24 73 79 73 74  [file tail $syst
04a0: 65 6d 44 61 74 61 53 51 4c 69 74 65 44 6c 6c 46  emDataSQLiteDllF
04b0: 69 6c 65 5d 5d 5d 7d 20 74 68 65 6e 20 7b 0d 0a  ile]]]} then {..
04c0: 20 20 63 68 65 63 6b 46 6f 72 46 69 6c 65 20 24    checkForFile $
04d0: 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 24 73 79  test_channel $sy
04e0: 73 74 65 6d 44 61 74 61 53 51 4c 69 74 65 44 6c  stemDataSQLiteDl
04f0: 6c 46 69 6c 65 0d 0a 7d 0d 0a 0d 0a 69 66 20 7b  lFile..}....if {
0500: 21 5b 68 61 76 65 43 6f 6e 73 74 72 61 69 6e 74  ![haveConstraint
0510: 20 5b 61 70 70 65 6e 64 41 72 67 73 20 66 69 6c   [appendArgs fil
0520: 65 5f 20 5c 0d 0a 20 20 20 20 5b 66 69 6c 65 20  e_ \..    [file 
0530: 74 61 69 6c 20 24 73 79 73 74 65 6d 44 61 74 61  tail $systemData
0540: 53 51 4c 69 74 65 4c 69 6e 71 44 6c 6c 46 69 6c  SQLiteLinqDllFil
0550: 65 5d 5d 5d 7d 20 74 68 65 6e 20 7b 0d 0a 20 20  e]]]} then {..  
0560: 63 68 65 63 6b 46 6f 72 46 69 6c 65 20 24 74 65  checkForFile $te
0570: 73 74 5f 63 68 61 6e 6e 65 6c 20 24 73 79 73 74  st_channel $syst
0580: 65 6d 44 61 74 61 53 51 4c 69 74 65 4c 69 6e 71  emDataSQLiteLinq
0590: 44 6c 6c 46 69 6c 65 0d 0a 7d 0d 0a 0d 0a 69 66  DllFile..}....if
05a0: 20 7b 21 5b 68 61 76 65 43 6f 6e 73 74 72 61 69   {![haveConstrai
05b0: 6e 74 20 5b 61 70 70 65 6e 64 41 72 67 73 20 66  nt [appendArgs f
05c0: 69 6c 65 5f 20 5b 66 69 6c 65 20 74 61 69 6c 20  ile_ [file tail 
05d0: 24 74 65 73 74 4c 69 6e 71 45 78 65 46 69 6c 65  $testLinqExeFile
05e0: 5d 5d 5d 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 63  ]]]} then {..  c
05f0: 68 65 63 6b 46 6f 72 46 69 6c 65 20 24 74 65 73  heckForFile $tes
0600: 74 5f 63 68 61 6e 6e 65 6c 20 24 74 65 73 74 4c  t_channel $testL
0610: 69 6e 71 45 78 65 46 69 6c 65 0d 0a 7d 0d 0a 0d  inqExeFile..}...
0620: 0a 69 66 20 7b 21 5b 68 61 76 65 43 6f 6e 73 74  .if {![haveConst
0630: 72 61 69 6e 74 20 5b 61 70 70 65 6e 64 41 72 67  raint [appendArg
0640: 73 20 66 69 6c 65 5f 20 5b 66 69 6c 65 20 74 61  s file_ [file ta
0650: 69 6c 20 24 6e 6f 72 74 68 77 69 6e 64 45 66 44  il $northwindEfD
0660: 62 46 69 6c 65 5d 5d 5d 7d 20 74 68 65 6e 20 7b  bFile]]]} then {
0670: 0d 0a 20 20 63 68 65 63 6b 46 6f 72 46 69 6c 65  ..  checkForFile
0680: 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 24   $test_channel $
0690: 6e 6f 72 74 68 77 69 6e 64 45 66 44 62 46 69 6c  northwindEfDbFil
06a0: 65 0d 0a 7d 0d 0a 0d 0a 23 23 23 23 23 23 23 23  e..}....########
06b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06f0: 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 54 65  #######....runTe
0700: 73 74 20 7b 74 65 73 74 20 74 6b 74 2d 35 39 65  st {test tkt-59e
0710: 64 63 31 30 31 38 62 2d 31 2e 31 20 7b 4c 49 4e  dc1018b-1.1 {LIN
0720: 51 20 77 69 74 68 20 45 6e 64 73 57 69 74 68 7d  Q with EndsWith}
0730: 20 2d 62 6f 64 79 20 7b 0d 0a 20 20 73 65 74 20   -body {..  set 
0740: 72 65 73 75 6c 74 20 5b 6c 69 73 74 5d 0d 0a 0d  result [list]...
0750: 0a 20 20 66 6f 72 65 61 63 68 20 76 61 6c 75 65  .  foreach value
0760: 20 5b 6c 69 73 74 20 22 22 20 61 20 62 20 7a 20   [list "" a b z 
0770: 31 2b 31 20 64 6f 6e 20 6e 6f 74 74 68 65 72 65  1+1 don notthere
0780: 5d 20 7b 0d 0a 20 20 20 20 73 65 74 20 6f 75 74  ] {..    set out
0790: 70 75 74 20 22 22 0d 0a 0d 0a 20 20 20 20 73 65  put ""....    se
07a0: 74 20 63 6f 64 65 20 5b 63 61 74 63 68 20 7b 0d  t code [catch {.
07b0: 0a 20 20 20 20 20 20 74 65 73 74 43 6c 72 45 78  .      testClrEx
07c0: 65 63 20 24 74 65 73 74 4c 69 6e 71 45 78 65 46  ec $testLinqExeF
07d0: 69 6c 65 20 5b 6c 69 73 74 20 2d 65 76 65 6e 74  ile [list -event
07e0: 66 6c 61 67 73 20 57 61 69 74 20 2d 64 69 72 65  flags Wait -dire
07f0: 63 74 6f 72 79 20 5c 0d 0a 20 20 20 20 20 20 20  ctory \..       
0800: 20 20 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65     [file dirname
0810: 20 24 74 65 73 74 4c 69 6e 71 45 78 65 46 69 6c   $testLinqExeFil
0820: 65 5d 20 2d 6e 6f 63 61 72 72 69 61 67 65 72 65  e] -nocarriagere
0830: 74 75 72 6e 73 20 2d 73 74 64 6f 75 74 20 6f 75  turns -stdout ou
0840: 74 70 75 74 20 5c 0d 0a 20 20 20 20 20 20 20 20  tput \..        
0850: 20 20 2d 73 75 63 63 65 73 73 20 30 5d 20 2d 65    -success 0] -e
0860: 6e 64 73 57 69 74 68 20 24 76 61 6c 75 65 0d 0a  ndsWith $value..
0870: 20 20 20 20 7d 20 65 72 72 6f 72 5d 0d 0a 0d 0a      } error]....
0880: 20 20 20 20 74 6c 6f 67 20 22 2d 2d 2d 2d 20 42      tlog "---- B
0890: 45 47 49 4e 20 53 54 44 4f 55 54 20 4f 55 54 50  EGIN STDOUT OUTP
08a0: 55 54 5c 6e 22 0d 0a 20 20 20 20 74 6c 6f 67 20  UT\n"..    tlog 
08b0: 24 6f 75 74 70 75 74 0d 0a 20 20 20 20 74 6c 6f  $output..    tlo
08c0: 67 20 22 5c 6e 2d 2d 2d 2d 20 45 4e 44 20 53 54  g "\n---- END ST
08d0: 44 4f 55 54 20 4f 55 54 50 55 54 5c 6e 22 0d 0a  DOUT OUTPUT\n"..
08e0: 0d 0a 20 20 20 20 6c 61 70 70 65 6e 64 20 72 65  ..    lappend re
08f0: 73 75 6c 74 20 24 63 6f 64 65 0d 0a 0d 0a 20 20  sult $code....  
0900: 20 20 69 66 20 7b 24 63 6f 64 65 20 3d 3d 20 30    if {$code == 0
0910: 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20  } then {..      
0920: 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b  lappend result [
0930: 73 74 72 69 6e 67 20 74 72 69 6d 20 24 6f 75 74  string trim $out
0940: 70 75 74 5d 0d 0a 20 20 20 20 7d 20 65 6c 73 65  put]..    } else
0950: 20 7b 0d 0a 20 20 20 20 20 20 6c 61 70 70 65 6e   {..      lappen
0960: 64 20 72 65 73 75 6c 74 20 5b 73 74 72 69 6e 67  d result [string
0970: 20 74 72 69 6d 20 24 65 72 72 6f 72 5d 0d 0a 20   trim $error].. 
0980: 20 20 20 7d 0d 0a 20 20 7d 0d 0a 0d 0a 20 20 73     }..  }....  s
0990: 65 74 20 72 65 73 75 6c 74 0d 0a 7d 20 2d 63 6c  et result..} -cl
09a0: 65 61 6e 75 70 20 7b 0d 0a 20 20 75 6e 73 65 74  eanup {..  unset
09b0: 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 63 6f 64   -nocomplain cod
09c0: 65 20 6f 75 74 70 75 74 20 65 72 72 6f 72 20 72  e output error r
09d0: 65 73 75 6c 74 20 76 61 6c 75 65 0d 0a 7d 20 2d  esult value..} -
09e0: 63 6f 6e 73 74 72 61 69 6e 74 73 20 5c 0d 0a 7b  constraints \..{
09f0: 65 61 67 6c 65 20 6d 6f 6e 6f 54 6f 44 6f 20 64  eagle monoToDo d
0a00: 65 66 69 6e 65 43 6f 6e 73 74 61 6e 74 2e 53 79  efineConstant.Sy
0a10: 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65  stem.Data.SQLite
0a20: 2e 49 4e 54 45 52 4f 50 5f 45 58 54 45 4e 53 49  .INTEROP_EXTENSI
0a30: 4f 4e 5f 46 55 4e 43 54 49 4f 4e 53 5c 0d 0a 66  ON_FUNCTIONS\..f
0a40: 69 6c 65 5f 53 79 73 74 65 6d 2e 44 61 74 61 2e  ile_System.Data.
0a50: 53 51 4c 69 74 65 2e 64 6c 6c 20 66 69 6c 65 5f  SQLite.dll file_
0a60: 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69  System.Data.SQLi
0a70: 74 65 2e 4c 69 6e 71 2e 64 6c 6c 20 66 69 6c 65  te.Linq.dll file
0a80: 5f 74 65 73 74 6c 69 6e 71 2e 65 78 65 5c 0d 0a  _testlinq.exe\..
0a90: 66 69 6c 65 5f 6e 6f 72 74 68 77 69 6e 64 45 46  file_northwindEF
0aa0: 2e 64 62 7d 20 2d 72 65 73 75 6c 74 20 7b 30 20  .db} -result {0 
0ab0: 7b 7d 20 30 20 7b 46 55 52 49 42 20 47 41 4c 45  {} 0 {FURIB GALE
0ac0: 44 20 47 4f 44 4f 53 20 4c 41 5a 59 4b 20 4c 49  D GODOS LAZYK LI
0ad0: 4e 4f 44 20 50 52 49 4e 49 20 52 45 47 47 43 5c  NOD PRINI REGGC\
0ae0: 0d 0a 57 4f 4c 5a 41 7d 20 30 20 7b 7d 20 30 20  ..WOLZA} 0 {} 0 
0af0: 45 52 4e 53 48 20 30 20 7b 7d 20 30 20 7b 41 52  ERNSH 0 {} 0 {AR
0b00: 4f 55 54 20 42 53 42 45 56 20 43 4f 4e 53 48 20  OUT BSBEV CONSH 
0b10: 45 41 53 54 43 20 4e 4f 52 54 53 20 53 45 56 45  EASTC NORTS SEVE
0b20: 53 7d 20 30 20 7b 7d 7d 7d 0d 0a 0d 0a 23 23 23  S} 0 {}}}....###
0b30: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0b40: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0b50: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0b60: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0b70: 23 23 23 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a  ############....
0b80: 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69  unset -nocomplai
0b90: 6e 20 73 79 73 74 65 6d 44 61 74 61 53 51 4c 69  n systemDataSQLi
0ba0: 74 65 44 6c 6c 46 69 6c 65 20 73 79 73 74 65 6d  teDllFile system
0bb0: 44 61 74 61 53 51 4c 69 74 65 4c 69 6e 71 44 6c  DataSQLiteLinqDl
0bc0: 6c 46 69 6c 65 20 5c 0d 0a 20 20 20 20 74 65 73  lFile \..    tes
0bd0: 74 4c 69 6e 71 45 78 65 46 69 6c 65 20 6e 6f 72  tLinqExeFile nor
0be0: 74 68 77 69 6e 64 45 66 44 62 46 69 6c 65 0d 0a  thwindEfDbFile..
0bf0: 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ..##############
0c00: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c10: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c20: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c30: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c40: 23 0d 0a 0d 0a 72 75 6e 53 51 4c 69 74 65 54 65  #....runSQLiteTe
0c50: 73 74 45 70 69 6c 6f 67 75 65 0d 0a 72 75 6e 54  stEpilogue..runT
0c60: 65 73 74 45 70 69 6c 6f 67 75 65 0d 0a           estEpilogue..