System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 8376804cb99e2f997c19c060899aba041a450b44:


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 38 63 33 62 65 65  .#..# tkt-8c3bee
0060: 33 31 63 38 2e 65 61 67 6c 65 20 2d 2d 0d 0a 23  31c8.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 72 75 6e  #########....run
0270: 54 65 73 74 20 7b 74 65 73 74 20 74 6b 74 2d 38  Test {test tkt-8
0280: 63 33 62 65 65 33 31 63 38 2d 31 2e 31 20 7b 62  c3bee31c8-1.1 {b
0290: 75 69 6c 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 20  uilt connection 
02a0: 73 74 72 69 6e 67 20 71 75 6f 74 69 6e 67 7d 20  string quoting} 
02b0: 2d 73 65 74 75 70 20 7b 0d 0a 20 20 75 6e 73 65  -setup {..  unse
02c0: 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 64 61  t -nocomplain da
02d0: 74 61 53 6f 75 72 63 65 20 6f 20 72 65 73 75 6c  taSource o resul
02e0: 74 0d 0a 7d 20 2d 62 6f 64 79 20 7b 0d 0a 20 20  t..} -body {..  
02f0: 73 65 74 20 6f 20 5b 6f 62 6a 65 63 74 20 63 72  set o [object cr
0300: 65 61 74 65 20 2d 61 6c 69 61 73 20 53 79 73 74  eate -alias Syst
0310: 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e 53  em.Data.SQLite.S
0320: 51 4c 69 74 65 43 6f 6e 6e 65 63 74 69 6f 6e 53  QLiteConnectionS
0330: 74 72 69 6e 67 42 75 69 6c 64 65 72 5d 0d 0a 0d  tringBuilder]...
0340: 0a 20 20 66 6f 72 65 61 63 68 20 64 61 74 61 53  .  foreach dataS
0350: 6f 75 72 63 65 20 5b 6c 69 73 74 20 5c 0d 0a 20  ource [list \.. 
0360: 20 20 20 20 20 20 20 22 43 3a 5c 5c 74 65 73 74         "C:\\test
0370: 5f 70 61 74 68 5c 5c 74 65 73 74 2e 64 62 22 20  _path\\test.db" 
0380: 5c 0d 0a 20 20 20 20 20 20 20 20 22 2f 74 65 73  \..        "/tes
0390: 74 5f 70 61 74 68 2f 74 65 73 74 2e 64 62 22 20  t_path/test.db" 
03a0: 5c 0d 0a 20 20 20 20 20 20 20 20 22 43 3a 5c 5c  \..        "C:\\
03b0: 74 65 73 74 20 70 61 74 68 5c 5c 74 65 73 74 2e  test path\\test.
03c0: 64 62 22 20 5c 0d 0a 20 20 20 20 20 20 20 20 22  db" \..        "
03d0: 2f 74 65 73 74 20 70 61 74 68 2f 74 65 73 74 2e  /test path/test.
03e0: 64 62 22 20 5c 0d 0a 20 20 20 20 20 20 20 20 22  db" \..        "
03f0: 43 3a 5c 5c 74 65 73 74 27 70 61 74 68 5c 5c 74  C:\\test'path\\t
0400: 65 73 74 2e 64 62 22 20 5c 0d 0a 20 20 20 20 20  est.db" \..     
0410: 20 20 20 22 2f 74 65 73 74 27 70 61 74 68 2f 74     "/test'path/t
0420: 65 73 74 2e 64 62 22 5d 20 7b 0d 0a 20 20 20 20  est.db"] {..    
0430: 24 6f 20 44 61 74 61 53 6f 75 72 63 65 20 24 64  $o DataSource $d
0440: 61 74 61 53 6f 75 72 63 65 0d 0a 20 20 20 20 6c  ataSource..    l
0450: 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 6c  append result [l
0460: 69 73 74 20 24 64 61 74 61 53 6f 75 72 63 65 20  ist $dataSource 
0470: 5b 24 6f 20 54 6f 53 74 72 69 6e 67 5d 5d 0d 0a  [$o ToString]]..
0480: 20 20 7d 0d 0a 0d 0a 20 20 73 65 74 20 72 65 73    }....  set res
0490: 75 6c 74 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70 20  ult..} -cleanup 
04a0: 7b 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f  {..  unset -noco
04b0: 6d 70 6c 61 69 6e 20 64 61 74 61 53 6f 75 72 63  mplain dataSourc
04c0: 65 20 6f 20 72 65 73 75 6c 74 0d 0a 7d 20 2d 63  e o result..} -c
04d0: 6f 6e 73 74 72 61 69 6e 74 73 20 7b 65 61 67 6c  onstraints {eagl
04e0: 65 20 6d 6f 6e 6f 42 75 67 32 38 20 63 6f 6d 6d  e monoBug28 comm
04f0: 61 6e 64 2e 73 71 6c 20 63 6f 6d 70 69 6c 65 2e  and.sql compile.
0500: 44 41 54 41 20 53 51 4c 69 74 65 5c 0d 0a 53 79  DATA SQLite\..Sy
0510: 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65  stem.Data.SQLite
0520: 7d 20 2d 72 65 73 75 6c 74 20 7b 7b 7b 43 3a 5c  } -result {{{C:\
0530: 74 65 73 74 5f 70 61 74 68 5c 74 65 73 74 2e 64  test_path\test.d
0540: 62 7d 5c 0d 0a 7b 64 61 74 61 20 73 6f 75 72 63  b}\..{data sourc
0550: 65 3d 43 3a 5c 74 65 73 74 5f 70 61 74 68 5c 74  e=C:\test_path\t
0560: 65 73 74 2e 64 62 7d 7d 20 7b 2f 74 65 73 74 5f  est.db}} {/test_
0570: 70 61 74 68 2f 74 65 73 74 2e 64 62 5c 0d 0a 7b  path/test.db\..{
0580: 64 61 74 61 20 73 6f 75 72 63 65 3d 2f 74 65 73  data source=/tes
0590: 74 5f 70 61 74 68 2f 74 65 73 74 2e 64 62 7d 7d  t_path/test.db}}
05a0: 20 7b 7b 43 3a 5c 74 65 73 74 20 70 61 74 68 5c   {{C:\test path\
05b0: 74 65 73 74 2e 64 62 7d 20 7b 64 61 74 61 20 73  test.db} {data s
05c0: 6f 75 72 63 65 3d 22 43 3a 5c 74 65 73 74 5c 0d  ource="C:\test\.
05d0: 0a 70 61 74 68 5c 74 65 73 74 2e 64 62 22 7d 7d  .path\test.db"}}
05e0: 20 7b 7b 2f 74 65 73 74 20 70 61 74 68 2f 74 65   {{/test path/te
05f0: 73 74 2e 64 62 7d 20 7b 64 61 74 61 20 73 6f 75  st.db} {data sou
0600: 72 63 65 3d 22 2f 74 65 73 74 20 70 61 74 68 2f  rce="/test path/
0610: 74 65 73 74 2e 64 62 22 7d 7d 5c 0d 0a 7b 7b 43  test.db"}}\..{{C
0620: 3a 5c 74 65 73 74 27 70 61 74 68 5c 74 65 73 74  :\test'path\test
0630: 2e 64 62 7d 20 7b 64 61 74 61 20 73 6f 75 72 63  .db} {data sourc
0640: 65 3d 22 43 3a 5c 74 65 73 74 27 70 61 74 68 5c  e="C:\test'path\
0650: 74 65 73 74 2e 64 62 22 7d 7d 5c 0d 0a 7b 2f 74  test.db"}}\..{/t
0660: 65 73 74 27 70 61 74 68 2f 74 65 73 74 2e 64 62  est'path/test.db
0670: 20 7b 64 61 74 61 20 73 6f 75 72 63 65 3d 22 2f   {data source="/
0680: 74 65 73 74 27 70 61 74 68 2f 74 65 73 74 2e 64  test'path/test.d
0690: 62 22 7d 7d 7d 7d 0d 0a 0d 0a 23 23 23 23 23 23  b"}}}}....######
06a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
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 0d 0a 0d 0a 72 75 6e  #########....run
06f0: 54 65 73 74 20 7b 74 65 73 74 20 74 6b 74 2d 38  Test {test tkt-8
0700: 63 33 62 65 65 33 31 63 38 2d 31 2e 32 20 7b 6f  c3bee31c8-1.2 {o
0710: 70 65 6e 20 73 69 6e 67 6c 65 20 71 75 6f 74 65  pen single quote
0720: 64 20 66 69 6c 65 20 6e 61 6d 65 7d 20 2d 73 65  d file name} -se
0730: 74 75 70 20 7b 0d 0a 20 20 75 6e 73 65 74 20 2d  tup {..  unset -
0740: 6e 6f 63 6f 6d 70 6c 61 69 6e 20 66 69 6c 65 4e  nocomplain fileN
0750: 61 6d 65 20 6f 0d 0a 7d 20 2d 62 6f 64 79 20 7b  ame o..} -body {
0760: 0d 0a 20 20 73 65 74 20 66 69 6c 65 4e 61 6d 65  ..  set fileName
0770: 20 5b 61 70 70 65 6e 64 41 72 67 73 20 27 20 5b   [appendArgs ' [
0780: 66 69 6c 65 20 6a 6f 69 6e 20 5b 67 65 74 44 61  file join [getDa
0790: 74 61 62 61 73 65 44 69 72 65 63 74 6f 72 79 5d  tabaseDirectory]
07a0: 20 5c 0d 0a 20 20 20 20 20 20 74 6b 74 2d 38 63   \..      tkt-8c
07b0: 33 62 65 65 33 31 63 38 2d 31 2e 32 2e 64 62 5d  3bee31c8-1.2.db]
07c0: 20 27 5d 0d 0a 0d 0a 20 20 73 65 74 20 6f 20 5b   ']....  set o [
07d0: 6f 62 6a 65 63 74 20 63 72 65 61 74 65 20 2d 61  object create -a
07e0: 6c 69 61 73 20 53 79 73 74 65 6d 2e 44 61 74 61  lias System.Data
07f0: 2e 53 51 4c 69 74 65 2e 53 51 4c 69 74 65 43 6f  .SQLite.SQLiteCo
0800: 6e 6e 65 63 74 69 6f 6e 5d 0d 0a 20 20 24 6f 20  nnection]..  $o 
0810: 43 6f 6e 6e 65 63 74 69 6f 6e 53 74 72 69 6e 67  ConnectionString
0820: 20 5b 61 70 70 65 6e 64 41 72 67 73 20 22 44 61   [appendArgs "Da
0830: 74 61 20 53 6f 75 72 63 65 3d 22 20 24 66 69 6c  ta Source=" $fil
0840: 65 4e 61 6d 65 20 5c 3b 5d 0d 0a 20 20 24 6f 20  eName \;]..  $o 
0850: 4f 70 65 6e 3b 20 23 20 4e 4f 54 45 3a 20 54 68  Open; # NOTE: Th
0860: 69 73 20 63 6f 6d 6d 61 6e 64 20 6d 61 79 20 74  is command may t
0870: 68 72 6f 77 20 61 6e 20 65 78 63 65 70 74 69 6f  hrow an exceptio
0880: 6e 2c 20 66 61 69 6c 69 6e 67 20 74 68 65 20 74  n, failing the t
0890: 65 73 74 2e 0d 0a 20 20 24 6f 20 43 6c 6f 73 65  est...  $o Close
08a0: 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0d 0a  ..} -cleanup {..
08b0: 20 20 63 6c 65 61 6e 75 70 46 69 6c 65 20 5b 73    cleanupFile [s
08c0: 74 72 69 6e 67 20 74 72 69 6d 20 24 66 69 6c 65  tring trim $file
08d0: 4e 61 6d 65 20 27 5d 0d 0a 0d 0a 20 20 75 6e 73  Name ']....  uns
08e0: 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 66  et -nocomplain f
08f0: 69 6c 65 4e 61 6d 65 20 6f 0d 0a 7d 20 2d 63 6f  ileName o..} -co
0900: 6e 73 74 72 61 69 6e 74 73 20 7b 65 61 67 6c 65  nstraints {eagle
0910: 20 6d 6f 6e 6f 42 75 67 32 38 20 63 6f 6d 6d 61   monoBug28 comma
0920: 6e 64 2e 73 71 6c 20 63 6f 6d 70 69 6c 65 2e 44  nd.sql compile.D
0930: 41 54 41 20 53 51 4c 69 74 65 5c 0d 0a 53 79 73  ATA SQLite\..Sys
0940: 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 7d  tem.Data.SQLite}
0950: 20 2d 72 65 73 75 6c 74 20 7b 7d 7d 0d 0a 0d 0a   -result {}}....
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 23 23 23  ################
0990: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
09a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0d  ###############.
09b0: 0a 0d 0a 72 75 6e 54 65 73 74 20 7b 74 65 73 74  ...runTest {test
09c0: 20 74 6b 74 2d 38 63 33 62 65 65 33 31 63 38 2d   tkt-8c3bee31c8-
09d0: 31 2e 33 20 7b 6f 70 65 6e 20 64 6f 75 62 6c 65  1.3 {open double
09e0: 20 71 75 6f 74 65 64 20 66 69 6c 65 20 6e 61 6d   quoted file nam
09f0: 65 7d 20 2d 73 65 74 75 70 20 7b 0d 0a 20 20 75  e} -setup {..  u
0a00: 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e  nset -nocomplain
0a10: 20 66 69 6c 65 4e 61 6d 65 20 6f 0d 0a 7d 20 2d   fileName o..} -
0a20: 62 6f 64 79 20 7b 0d 0a 20 20 73 65 74 20 66 69  body {..  set fi
0a30: 6c 65 4e 61 6d 65 20 5b 61 70 70 65 6e 64 41 72  leName [appendAr
0a40: 67 73 20 5c 22 20 5b 66 69 6c 65 20 6a 6f 69 6e  gs \" [file join
0a50: 20 5b 67 65 74 44 61 74 61 62 61 73 65 44 69 72   [getDatabaseDir
0a60: 65 63 74 6f 72 79 5d 20 5c 0d 0a 20 20 20 20 20  ectory] \..     
0a70: 20 74 6b 74 2d 38 63 33 62 65 65 33 31 63 38 2d   tkt-8c3bee31c8-
0a80: 31 2e 33 2e 64 62 5d 20 5c 22 5d 0d 0a 0d 0a 20  1.3.db] \"].... 
0a90: 20 73 65 74 20 6f 20 5b 6f 62 6a 65 63 74 20 63   set o [object c
0aa0: 72 65 61 74 65 20 2d 61 6c 69 61 73 20 53 79 73  reate -alias Sys
0ab0: 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e  tem.Data.SQLite.
0ac0: 53 51 4c 69 74 65 43 6f 6e 6e 65 63 74 69 6f 6e  SQLiteConnection
0ad0: 5d 0d 0a 20 20 24 6f 20 43 6f 6e 6e 65 63 74 69  ]..  $o Connecti
0ae0: 6f 6e 53 74 72 69 6e 67 20 5b 61 70 70 65 6e 64  onString [append
0af0: 41 72 67 73 20 22 44 61 74 61 20 53 6f 75 72 63  Args "Data Sourc
0b00: 65 3d 22 20 24 66 69 6c 65 4e 61 6d 65 20 5c 3b  e=" $fileName \;
0b10: 5d 0d 0a 20 20 24 6f 20 4f 70 65 6e 3b 20 23 20  ]..  $o Open; # 
0b20: 4e 4f 54 45 3a 20 54 68 69 73 20 63 6f 6d 6d 61  NOTE: This comma
0b30: 6e 64 20 6d 61 79 20 74 68 72 6f 77 20 61 6e 20  nd may throw an 
0b40: 65 78 63 65 70 74 69 6f 6e 2c 20 66 61 69 6c 69  exception, faili
0b50: 6e 67 20 74 68 65 20 74 65 73 74 2e 0d 0a 20 20  ng the test...  
0b60: 24 6f 20 43 6c 6f 73 65 0d 0a 7d 20 2d 63 6c 65  $o Close..} -cle
0b70: 61 6e 75 70 20 7b 0d 0a 20 20 63 6c 65 61 6e 75  anup {..  cleanu
0b80: 70 46 69 6c 65 20 5b 73 74 72 69 6e 67 20 74 72  pFile [string tr
0b90: 69 6d 20 24 66 69 6c 65 4e 61 6d 65 20 5c 22 5d  im $fileName \"]
0ba0: 0d 0a 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63  ....  unset -noc
0bb0: 6f 6d 70 6c 61 69 6e 20 66 69 6c 65 4e 61 6d 65  omplain fileName
0bc0: 20 6f 0d 0a 7d 20 2d 63 6f 6e 73 74 72 61 69 6e   o..} -constrain
0bd0: 74 73 20 7b 65 61 67 6c 65 20 6d 6f 6e 6f 42 75  ts {eagle monoBu
0be0: 67 32 38 20 63 6f 6d 6d 61 6e 64 2e 73 71 6c 20  g28 command.sql 
0bf0: 63 6f 6d 70 69 6c 65 2e 44 41 54 41 20 53 51 4c  compile.DATA SQL
0c00: 69 74 65 5c 0d 0a 53 79 73 74 65 6d 2e 44 61 74  ite\..System.Dat
0c10: 61 2e 53 51 4c 69 74 65 7d 20 2d 72 65 73 75 6c  a.SQLite} -resul
0c20: 74 20 7b 7d 7d 0d 0a 0d 0a 23 23 23 23 23 23 23  t {}}....#######
0c30: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c40: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c50: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c60: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c70: 23 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 53  ########....runS
0c80: 51 4c 69 74 65 54 65 73 74 45 70 69 6c 6f 67 75  QLiteTestEpilogu
0c90: 65 0d 0a 72 75 6e 54 65 73 74 45 70 69 6c 6f 67  e..runTestEpilog
0ca0: 75 65 0d 0a                                      ue..