System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 8022a30825f9e363d0eaa3e7d831f82163a93bf9:


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 32 63 65 30 38 37  .#..# tkt-2ce087
0060: 30 66 61 64 2e 65 61 67 6c 65 20 2d 2d 0d 0a 23  0fad.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 4d 61 6b 65 20 73 75 72  # NOTE: Make sur
0280: 65 20 74 68 61 74 20 53 51 4c 69 74 65 20 63 6f  e that SQLite co
0290: 72 65 20 6c 69 62 72 61 72 79 20 69 73 20 63 6f  re library is co
02a0: 6d 70 6c 65 74 65 6c 79 20 73 68 75 74 64 6f 77  mpletely shutdow
02b0: 6e 20 70 72 69 6f 72 20 74 6f 0d 0a 23 20 20 20  n prior to..#   
02c0: 20 20 20 20 73 74 61 72 74 69 6e 67 20 61 6e 79      starting any
02d0: 20 6f 66 20 74 68 65 20 74 65 73 74 73 20 69 6e   of the tests in
02e0: 20 74 68 69 73 20 66 69 6c 65 2e 0d 0a 23 0d 0a   this file...#..
02f0: 73 68 75 74 64 6f 77 6e 53 51 4c 69 74 65 20 24  shutdownSQLite $
0300: 74 65 73 74 5f 63 68 61 6e 6e 65 6c 0d 0a 0d 0a  test_channel....
0310: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0320: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0330: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0340: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0350: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0d  ###############.
0360: 0a 0d 0a 66 6f 72 20 7b 73 65 74 20 69 20 31 7d  ...for {set i 1}
0370: 20 7b 24 69 20 3c 20 33 7d 20 7b 69 6e 63 72 20   {$i < 3} {incr 
0380: 69 7d 20 7b 0d 0a 20 20 72 75 6e 54 65 73 74 20  i} {..  runTest 
0390: 7b 74 65 73 74 20 5b 61 70 70 65 6e 64 41 72 67  {test [appendArg
03a0: 73 20 74 6b 74 2d 32 63 65 30 38 37 30 66 61 64  s tkt-2ce0870fad
03b0: 2d 31 2e 20 24 69 5d 20 7b 6c 6f 67 67 69 6e 67  -1. $i] {logging
03c0: 20 73 65 74 75 70 7d 20 2d 73 65 74 75 70 20 5c   setup} -setup \
03d0: 0d 0a 20 20 20 20 20 20 5b 67 65 74 41 70 70 44  ..      [getAppD
03e0: 6f 6d 61 69 6e 50 72 65 61 6d 62 6c 65 20 7b 0d  omainPreamble {.
03f0: 0a 20 20 20 20 70 72 6f 63 20 68 61 76 65 53 51  .    proc haveSQ
0400: 4c 69 74 65 4f 62 6a 65 63 74 43 6f 6d 6d 61 6e  LiteObjectComman
0410: 64 20 7b 5b 69 6e 66 6f 20 61 72 67 73 20 68 61  d {[info args ha
0420: 76 65 53 51 4c 69 74 65 4f 62 6a 65 63 74 43 6f  veSQLiteObjectCo
0430: 6d 6d 61 6e 64 5d 7d 20 7b 0d 0a 20 20 20 20 20  mmand]} {..     
0440: 20 5b 69 6e 66 6f 20 62 6f 64 79 20 68 61 76 65   [info body have
0450: 53 51 4c 69 74 65 4f 62 6a 65 63 74 43 6f 6d 6d  SQLiteObjectComm
0460: 61 6e 64 5d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20  and]..    }.... 
0470: 20 20 20 73 65 74 20 69 20 7b 24 69 7d 0d 0a 0d     set i {$i}...
0480: 0a 20 20 20 20 73 65 74 20 61 70 70 44 6f 6d 61  .    set appDoma
0490: 69 6e 49 64 28 24 69 29 20 7b 5b 65 78 70 72 20  inId($i) {[expr 
04a0: 7b 5b 68 61 76 65 53 51 4c 69 74 65 4f 62 6a 65  {[haveSQLiteObje
04b0: 63 74 43 6f 6d 6d 61 6e 64 5d 20 3f 20 5c 0d 0a  ctCommand] ? \..
04c0: 20 20 20 20 20 20 20 20 5b 6f 62 6a 65 63 74 20          [object 
04d0: 69 6e 76 6f 6b 65 20 41 70 70 44 6f 6d 61 69 6e  invoke AppDomain
04e0: 2e 43 75 72 72 65 6e 74 44 6f 6d 61 69 6e 20 49  .CurrentDomain I
04f0: 64 5d 20 3a 20 5b 69 6e 66 6f 20 61 70 70 64 6f  d] : [info appdo
0500: 6d 61 69 6e 5d 7d 5d 7d 0d 0a 0d 0a 20 20 20 20  main]}]}....    
0510: 73 65 74 20 66 69 6c 65 4e 61 6d 65 20 7b 5b 61  set fileName {[a
0520: 70 70 65 6e 64 41 72 67 73 20 74 6b 74 2d 32 63  ppendArgs tkt-2c
0530: 65 30 38 37 30 66 61 64 2d 31 2e 20 24 69 20 2e  e0870fad-1. $i .
0540: 64 62 5d 7d 0d 0a 20 20 7d 5d 20 2d 62 6f 64 79  db]}..  }] -body
0550: 20 7b 0d 0a 20 20 20 20 73 65 74 20 61 70 70 44   {..    set appD
0560: 6f 6d 61 69 6e 49 64 28 33 29 20 5b 6f 62 6a 65  omainId(3) [obje
0570: 63 74 20 69 6e 76 6f 6b 65 20 41 70 70 44 6f 6d  ct invoke AppDom
0580: 61 69 6e 2e 43 75 72 72 65 6e 74 44 6f 6d 61 69  ain.CurrentDomai
0590: 6e 20 49 64 5d 0d 0a 0d 0a 20 20 20 20 70 61 63  n Id]....    pac
05a0: 6b 61 67 65 20 72 65 71 75 69 72 65 20 45 61 67  kage require Eag
05b0: 6c 65 2e 4c 69 62 72 61 72 79 0d 0a 20 20 20 20  le.Library..    
05c0: 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20  package require 
05d0: 45 61 67 6c 65 2e 54 65 73 74 0d 0a 20 20 20 20  Eagle.Test..    
05e0: 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20  package require 
05f0: 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69  System.Data.SQLi
0600: 74 65 2e 54 65 73 74 0d 0a 0d 0a 20 20 20 20 73  te.Test....    s
0610: 65 74 20 61 73 73 65 6d 62 6c 79 20 5b 6f 62 6a  et assembly [obj
0620: 65 63 74 20 6c 6f 61 64 20 2d 6c 6f 61 64 74 79  ect load -loadty
0630: 70 65 20 46 69 6c 65 20 5b 66 69 6c 65 20 6a 6f  pe File [file jo
0640: 69 6e 20 5b 67 65 74 42 69 6e 61 72 79 44 69 72  in [getBinaryDir
0650: 65 63 74 6f 72 79 5d 20 5c 0d 0a 20 20 20 20 20  ectory] \..     
0660: 20 20 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53     System.Data.S
0670: 51 4c 69 74 65 2e 64 6c 6c 5d 5d 0d 0a 0d 0a 20  QLite.dll]].... 
0680: 20 20 20 6f 62 6a 65 63 74 20 69 6e 76 6f 6b 65     object invoke
0690: 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c   System.Data.SQL
06a0: 69 74 65 2e 53 51 4c 69 74 65 4c 6f 67 20 49 6e  ite.SQLiteLog In
06b0: 69 74 69 61 6c 69 7a 65 0d 0a 0d 0a 20 20 20 20  itialize....    
06c0: 6c 69 73 74 20 24 61 70 70 44 6f 6d 61 69 6e 49  list $appDomainI
06d0: 64 28 24 69 29 20 24 61 70 70 44 6f 6d 61 69 6e  d($i) $appDomain
06e0: 49 64 28 33 29 20 5b 65 78 70 72 20 7b 24 69 20  Id(3) [expr {$i 
06f0: 3d 3d 20 31 20 3f 20 5c 0d 0a 20 20 20 20 20 20  == 1 ? \..      
0700: 20 20 24 61 70 70 44 6f 6d 61 69 6e 49 64 28 24    $appDomainId($
0710: 69 29 20 21 3d 20 24 61 70 70 44 6f 6d 61 69 6e  i) != $appDomain
0720: 49 64 28 33 29 20 3a 20 5c 0d 0a 20 20 20 20 20  Id(3) : \..     
0730: 20 20 20 24 61 70 70 44 6f 6d 61 69 6e 49 64 28     $appDomainId(
0740: 24 69 29 20 3d 3d 20 24 61 70 70 44 6f 6d 61 69  $i) == $appDomai
0750: 6e 49 64 28 33 29 7d 5d 20 5b 73 65 74 75 70 44  nId(3)}] [setupD
0760: 62 20 24 66 69 6c 65 4e 61 6d 65 5d 0d 0a 20 20  b $fileName]..  
0770: 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0d 0a 20 20  } -cleanup {..  
0780: 20 20 63 6c 65 61 6e 75 70 44 62 20 24 66 69 6c    cleanupDb $fil
0790: 65 4e 61 6d 65 0d 0a 0d 0a 20 20 20 20 23 0d 0a  eName....    #..
07a0: 20 20 20 20 23 20 4e 4f 54 45 3a 20 49 66 20 74      # NOTE: If t
07b0: 68 69 73 20 69 73 20 74 68 65 20 70 72 69 6d 61  his is the prima
07c0: 72 79 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 64  ry application d
07d0: 6f 6d 61 69 6e 2c 20 73 6b 69 70 20 75 6e 73 65  omain, skip unse
07e0: 74 74 69 6e 67 20 74 68 65 0d 0a 20 20 20 20 23  tting the..    #
07f0: 20 20 20 20 20 20 20 6c 6f 6f 70 20 76 61 72 69         loop vari
0800: 61 62 6c 65 20 62 65 63 61 75 73 65 20 74 68 65  able because the
0810: 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 5b 66 6f   surrounding [fo
0820: 72 5d 20 63 6f 6d 6d 61 6e 64 20 73 74 69 6c 6c  r] command still
0830: 20 6e 65 65 64 73 0d 0a 20 20 20 20 23 20 20 20   needs..    #   
0840: 20 20 20 20 69 74 2e 0d 0a 20 20 20 20 23 0d 0a      it...    #..
0850: 20 20 20 20 69 66 20 7b 24 69 20 3c 3d 20 31 7d      if {$i <= 1}
0860: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 75   then {..      u
0870: 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e  nset -nocomplain
0880: 20 69 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20   i..    }....   
0890: 20 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61   unset -nocompla
08a0: 69 6e 20 61 73 73 65 6d 62 6c 79 20 61 70 70 44  in assembly appD
08b0: 6f 6d 61 69 6e 49 64 20 64 62 20 66 69 6c 65 4e  omainId db fileN
08c0: 61 6d 65 0d 0a 20 20 7d 20 2d 63 6f 6e 73 74 72  ame..  } -constr
08d0: 61 69 6e 74 73 20 7b 65 61 67 6c 65 20 63 6f 6d  aints {eagle com
08e0: 6d 61 6e 64 2e 6f 62 6a 65 63 74 20 6d 6f 6e 6f  mand.object mono
08f0: 42 75 67 32 38 20 63 6f 6d 6d 61 6e 64 2e 73 71  Bug28 command.sq
0900: 6c 20 63 6f 6d 70 69 6c 65 2e 44 41 54 41 5c 0d  l compile.DATA\.
0910: 0a 63 6f 6d 70 69 6c 65 2e 49 53 4f 4c 41 54 45  .compile.ISOLATE
0920: 44 5f 49 4e 54 45 52 50 52 45 54 45 52 53 20 53  D_INTERPRETERS S
0930: 51 4c 69 74 65 20 53 79 73 74 65 6d 2e 44 61 74  QLite System.Dat
0940: 61 2e 53 51 4c 69 74 65 7d 20 2d 69 73 6f 6c 61  a.SQLite} -isola
0950: 74 69 6f 6e 4c 65 76 65 6c 20 5c 0d 0a 5b 65 78  tionLevel \..[ex
0960: 70 72 20 7b 24 69 20 3d 3d 20 31 20 3f 20 22 41  pr {$i == 1 ? "A
0970: 70 70 44 6f 6d 61 69 6e 22 20 3a 20 22 44 65 66  ppDomain" : "Def
0980: 61 75 6c 74 22 7d 5d 20 2d 6d 61 74 63 68 20 72  ault"}] -match r
0990: 65 67 65 78 70 20 2d 72 65 73 75 6c 74 20 5c 0d  egexp -result \.
09a0: 0a 7b 5e 5c 64 2b 20 5c 64 2b 20 54 72 75 65 20  .{^\d+ \d+ True 
09b0: 53 79 73 74 65 6d 23 44 61 74 61 23 53 51 4c 69  System#Data#SQLi
09c0: 74 65 23 53 51 4c 69 74 65 43 6f 6e 6e 65 63 74  te#SQLiteConnect
09d0: 69 6f 6e 23 5c 64 2b 24 7d 7d 0d 0a 7d 0d 0a 0d  ion#\d+$}}..}...
09e0: 0a 23 23 23 23 23 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: 0d 0a 0d 0a 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d  ....unset -nocom
0a40: 70 6c 61 69 6e 20 69 0d 0a 0d 0a 23 23 23 23 23  plain i....#####
0a50: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0a60: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0a70: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0a80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0a90: 23 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75  ##########....ru
0aa0: 6e 53 51 4c 69 74 65 54 65 73 74 45 70 69 6c 6f  nSQLiteTestEpilo
0ab0: 67 75 65 0d 0a 72 75 6e 54 65 73 74 45 70 69 6c  gue..runTestEpil
0ac0: 6f 67 75 65 0d 0a                                ogue..