System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact d7587ac606c3a871285a5332b4db0ef839c54e66:


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 63 6f 6d 6d 61 6e 64 2e 6f 62 6a 65 63 74  e command.object
04f0: 20 6d 6f 6e 6f 42 75 67 32 38 20 63 6f 6d 6d 61   monoBug28 comma
0500: 6e 64 2e 73 71 6c 20 63 6f 6d 70 69 6c 65 2e 44  nd.sql compile.D
0510: 41 54 41 20 53 51 4c 69 74 65 5c 0d 0a 53 79 73  ATA SQLite\..Sys
0520: 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 7d  tem.Data.SQLite}
0530: 20 2d 72 65 73 75 6c 74 20 7b 7b 7b 43 3a 5c 74   -result {{{C:\t
0540: 65 73 74 5f 70 61 74 68 5c 74 65 73 74 2e 64 62  est_path\test.db
0550: 7d 5c 0d 0a 7b 64 61 74 61 20 73 6f 75 72 63 65  }\..{data source
0560: 3d 43 3a 5c 74 65 73 74 5f 70 61 74 68 5c 74 65  =C:\test_path\te
0570: 73 74 2e 64 62 7d 7d 20 7b 2f 74 65 73 74 5f 70  st.db}} {/test_p
0580: 61 74 68 2f 74 65 73 74 2e 64 62 5c 0d 0a 7b 64  ath/test.db\..{d
0590: 61 74 61 20 73 6f 75 72 63 65 3d 2f 74 65 73 74  ata source=/test
05a0: 5f 70 61 74 68 2f 74 65 73 74 2e 64 62 7d 7d 20  _path/test.db}} 
05b0: 7b 7b 43 3a 5c 74 65 73 74 20 70 61 74 68 5c 74  {{C:\test path\t
05c0: 65 73 74 2e 64 62 7d 20 7b 64 61 74 61 20 73 6f  est.db} {data so
05d0: 75 72 63 65 3d 22 43 3a 5c 74 65 73 74 5c 0d 0a  urce="C:\test\..
05e0: 70 61 74 68 5c 74 65 73 74 2e 64 62 22 7d 7d 20  path\test.db"}} 
05f0: 7b 7b 2f 74 65 73 74 20 70 61 74 68 2f 74 65 73  {{/test path/tes
0600: 74 2e 64 62 7d 20 7b 64 61 74 61 20 73 6f 75 72  t.db} {data sour
0610: 63 65 3d 22 2f 74 65 73 74 20 70 61 74 68 2f 74  ce="/test path/t
0620: 65 73 74 2e 64 62 22 7d 7d 5c 0d 0a 7b 7b 43 3a  est.db"}}\..{{C:
0630: 5c 74 65 73 74 27 70 61 74 68 5c 74 65 73 74 2e  \test'path\test.
0640: 64 62 7d 20 7b 64 61 74 61 20 73 6f 75 72 63 65  db} {data source
0650: 3d 22 43 3a 5c 74 65 73 74 27 70 61 74 68 5c 74  ="C:\test'path\t
0660: 65 73 74 2e 64 62 22 7d 7d 5c 0d 0a 7b 2f 74 65  est.db"}}\..{/te
0670: 73 74 27 70 61 74 68 2f 74 65 73 74 2e 64 62 20  st'path/test.db 
0680: 7b 64 61 74 61 20 73 6f 75 72 63 65 3d 22 2f 74  {data source="/t
0690: 65 73 74 27 70 61 74 68 2f 74 65 73 74 2e 64 62  est'path/test.db
06a0: 22 7d 7d 7d 7d 0d 0a 0d 0a 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 23 23 23 23 23 23 23  ################
06f0: 23 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 54  ########....runT
0700: 65 73 74 20 7b 74 65 73 74 20 74 6b 74 2d 38 63  est {test tkt-8c
0710: 33 62 65 65 33 31 63 38 2d 31 2e 32 20 7b 6f 70  3bee31c8-1.2 {op
0720: 65 6e 20 73 69 6e 67 6c 65 20 71 75 6f 74 65 64  en single quoted
0730: 20 66 69 6c 65 20 6e 61 6d 65 7d 20 2d 73 65 74   file name} -set
0740: 75 70 20 7b 0d 0a 20 20 75 6e 73 65 74 20 2d 6e  up {..  unset -n
0750: 6f 63 6f 6d 70 6c 61 69 6e 20 66 69 6c 65 4e 61  ocomplain fileNa
0760: 6d 65 20 6f 0d 0a 7d 20 2d 62 6f 64 79 20 7b 0d  me o..} -body {.
0770: 0a 20 20 73 65 74 20 66 69 6c 65 4e 61 6d 65 20  .  set fileName 
0780: 5b 61 70 70 65 6e 64 41 72 67 73 20 27 20 5b 66  [appendArgs ' [f
0790: 69 6c 65 20 6a 6f 69 6e 20 5b 67 65 74 44 61 74  ile join [getDat
07a0: 61 62 61 73 65 44 69 72 65 63 74 6f 72 79 5d 20  abaseDirectory] 
07b0: 5c 0d 0a 20 20 20 20 20 20 74 6b 74 2d 38 63 33  \..      tkt-8c3
07c0: 62 65 65 33 31 63 38 2d 31 2e 32 2e 64 62 5d 20  bee31c8-1.2.db] 
07d0: 27 5d 0d 0a 0d 0a 20 20 73 65 74 20 6f 20 5b 6f  ']....  set o [o
07e0: 62 6a 65 63 74 20 63 72 65 61 74 65 20 2d 61 6c  bject create -al
07f0: 69 61 73 20 53 79 73 74 65 6d 2e 44 61 74 61 2e  ias System.Data.
0800: 53 51 4c 69 74 65 2e 53 51 4c 69 74 65 43 6f 6e  SQLite.SQLiteCon
0810: 6e 65 63 74 69 6f 6e 5d 0d 0a 20 20 24 6f 20 43  nection]..  $o C
0820: 6f 6e 6e 65 63 74 69 6f 6e 53 74 72 69 6e 67 20  onnectionString 
0830: 5b 61 70 70 65 6e 64 41 72 67 73 20 22 44 61 74  [appendArgs "Dat
0840: 61 20 53 6f 75 72 63 65 3d 22 20 24 66 69 6c 65  a Source=" $file
0850: 4e 61 6d 65 20 5c 3b 5d 0d 0a 20 20 24 6f 20 4f  Name \;]..  $o O
0860: 70 65 6e 3b 20 23 20 4e 4f 54 45 3a 20 54 68 69  pen; # NOTE: Thi
0870: 73 20 63 6f 6d 6d 61 6e 64 20 6d 61 79 20 74 68  s command may th
0880: 72 6f 77 20 61 6e 20 65 78 63 65 70 74 69 6f 6e  row an exception
0890: 2c 20 66 61 69 6c 69 6e 67 20 74 68 65 20 74 65  , failing the te
08a0: 73 74 2e 0d 0a 20 20 24 6f 20 43 6c 6f 73 65 0d  st...  $o Close.
08b0: 0a 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0d 0a 20  .} -cleanup {.. 
08c0: 20 63 6c 65 61 6e 75 70 46 69 6c 65 20 5b 73 74   cleanupFile [st
08d0: 72 69 6e 67 20 74 72 69 6d 20 24 66 69 6c 65 4e  ring trim $fileN
08e0: 61 6d 65 20 27 5d 0d 0a 0d 0a 20 20 75 6e 73 65  ame ']....  unse
08f0: 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 66 69  t -nocomplain fi
0900: 6c 65 4e 61 6d 65 20 6f 0d 0a 7d 20 2d 63 6f 6e  leName o..} -con
0910: 73 74 72 61 69 6e 74 73 20 7b 65 61 67 6c 65 20  straints {eagle 
0920: 63 6f 6d 6d 61 6e 64 2e 6f 62 6a 65 63 74 20 6d  command.object m
0930: 6f 6e 6f 42 75 67 32 38 20 63 6f 6d 6d 61 6e 64  onoBug28 command
0940: 2e 73 71 6c 20 63 6f 6d 70 69 6c 65 2e 44 41 54  .sql compile.DAT
0950: 41 20 53 51 4c 69 74 65 5c 0d 0a 53 79 73 74 65  A SQLite\..Syste
0960: 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 7d 20 2d  m.Data.SQLite} -
0970: 72 65 73 75 6c 74 20 7b 7d 7d 0d 0a 0d 0a 23 23  result {}}....##
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 23  ################
09b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
09c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 0d 0a 0d  #############...
09d0: 0a 72 75 6e 54 65 73 74 20 7b 74 65 73 74 20 74  .runTest {test t
09e0: 6b 74 2d 38 63 33 62 65 65 33 31 63 38 2d 31 2e  kt-8c3bee31c8-1.
09f0: 33 20 7b 6f 70 65 6e 20 64 6f 75 62 6c 65 20 71  3 {open double q
0a00: 75 6f 74 65 64 20 66 69 6c 65 20 6e 61 6d 65 7d  uoted file name}
0a10: 20 2d 73 65 74 75 70 20 7b 0d 0a 20 20 75 6e 73   -setup {..  uns
0a20: 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 66  et -nocomplain f
0a30: 69 6c 65 4e 61 6d 65 20 6f 0d 0a 7d 20 2d 62 6f  ileName o..} -bo
0a40: 64 79 20 7b 0d 0a 20 20 73 65 74 20 66 69 6c 65  dy {..  set file
0a50: 4e 61 6d 65 20 5b 61 70 70 65 6e 64 41 72 67 73  Name [appendArgs
0a60: 20 5c 22 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 5b   \" [file join [
0a70: 67 65 74 44 61 74 61 62 61 73 65 44 69 72 65 63  getDatabaseDirec
0a80: 74 6f 72 79 5d 20 5c 0d 0a 20 20 20 20 20 20 74  tory] \..      t
0a90: 6b 74 2d 38 63 33 62 65 65 33 31 63 38 2d 31 2e  kt-8c3bee31c8-1.
0aa0: 33 2e 64 62 5d 20 5c 22 5d 0d 0a 0d 0a 20 20 73  3.db] \"]....  s
0ab0: 65 74 20 6f 20 5b 6f 62 6a 65 63 74 20 63 72 65  et o [object cre
0ac0: 61 74 65 20 2d 61 6c 69 61 73 20 53 79 73 74 65  ate -alias Syste
0ad0: 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e 53 51  m.Data.SQLite.SQ
0ae0: 4c 69 74 65 43 6f 6e 6e 65 63 74 69 6f 6e 5d 0d  LiteConnection].
0af0: 0a 20 20 24 6f 20 43 6f 6e 6e 65 63 74 69 6f 6e  .  $o Connection
0b00: 53 74 72 69 6e 67 20 5b 61 70 70 65 6e 64 41 72  String [appendAr
0b10: 67 73 20 22 44 61 74 61 20 53 6f 75 72 63 65 3d  gs "Data Source=
0b20: 22 20 24 66 69 6c 65 4e 61 6d 65 20 5c 3b 5d 0d  " $fileName \;].
0b30: 0a 20 20 24 6f 20 4f 70 65 6e 3b 20 23 20 4e 4f  .  $o Open; # NO
0b40: 54 45 3a 20 54 68 69 73 20 63 6f 6d 6d 61 6e 64  TE: This command
0b50: 20 6d 61 79 20 74 68 72 6f 77 20 61 6e 20 65 78   may throw an ex
0b60: 63 65 70 74 69 6f 6e 2c 20 66 61 69 6c 69 6e 67  ception, failing
0b70: 20 74 68 65 20 74 65 73 74 2e 0d 0a 20 20 24 6f   the test...  $o
0b80: 20 43 6c 6f 73 65 0d 0a 7d 20 2d 63 6c 65 61 6e   Close..} -clean
0b90: 75 70 20 7b 0d 0a 20 20 63 6c 65 61 6e 75 70 46  up {..  cleanupF
0ba0: 69 6c 65 20 5b 73 74 72 69 6e 67 20 74 72 69 6d  ile [string trim
0bb0: 20 24 66 69 6c 65 4e 61 6d 65 20 5c 22 5d 0d 0a   $fileName \"]..
0bc0: 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d  ..  unset -nocom
0bd0: 70 6c 61 69 6e 20 66 69 6c 65 4e 61 6d 65 20 6f  plain fileName o
0be0: 0d 0a 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73  ..} -constraints
0bf0: 20 7b 65 61 67 6c 65 20 63 6f 6d 6d 61 6e 64 2e   {eagle command.
0c00: 6f 62 6a 65 63 74 20 6d 6f 6e 6f 42 75 67 32 38  object monoBug28
0c10: 20 63 6f 6d 6d 61 6e 64 2e 73 71 6c 20 63 6f 6d   command.sql com
0c20: 70 69 6c 65 2e 44 41 54 41 20 53 51 4c 69 74 65  pile.DATA SQLite
0c30: 5c 0d 0a 53 79 73 74 65 6d 2e 44 61 74 61 2e 53  \..System.Data.S
0c40: 51 4c 69 74 65 7d 20 2d 72 65 73 75 6c 74 20 7b  QLite} -result {
0c50: 7d 7d 0d 0a 0d 0a 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 23 23 23 23 23 23 23 23  ################
0c80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ca0: 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 53 51 4c 69  #####....runSQLi
0cb0: 74 65 54 65 73 74 45 70 69 6c 6f 67 75 65 0d 0a  teTestEpilogue..
0cc0: 72 75 6e 54 65 73 74 45 70 69 6c 6f 67 75 65 0d  runTestEpilogue.
0cd0: 0a                                               .