System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact d148bc759404205480b4c0d8610e5ee50ec028e7:


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 64 35 62 31 65  .#..# tkt-0d5b1e
0060: 66 33 36 32 2e 65 61 67 6c 65 20 2d 2d 0d 0a 23  f362.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 48 41 43 4b 3a 20 54 68 69 73 20 74 65 73  # HACK: This tes
0280: 74 20 72 65 61 64 73 20 74 68 65 20 70 72 69 76  t reads the priv
0290: 61 74 65 20 22 5f 64 6f 6d 61 69 6e 55 6e 6c 6f  ate "_domainUnlo
02a0: 61 64 22 20 66 69 65 6c 64 20 6f 66 20 74 68 65  ad" field of the
02b0: 20 41 70 70 44 6f 6d 61 69 6e 0d 0a 23 20 20 20   AppDomain..#   
02c0: 20 20 20 20 63 6c 61 73 73 2e 20 20 54 68 69 73      class.  This
02d0: 20 69 73 20 6e 6f 6e 2d 70 6f 72 74 61 62 6c 65   is non-portable
02e0: 20 61 6e 64 20 77 69 6c 6c 20 6e 6f 74 20 77 6f   and will not wo
02f0: 72 6b 20 6f 6e 20 4d 6f 6e 6f 2e 20 20 41 6c 73  rk on Mono.  Als
0300: 6f 2c 20 74 68 69 73 0d 0a 23 20 20 20 20 20 20  o, this..#      
0310: 20 6d 61 79 20 6e 6f 74 20 77 6f 72 6b 20 6f 6e   may not work on
0320: 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65   versions of the
0330: 20 2e 4e 45 54 20 46 72 61 6d 65 77 6f 72 6b 20   .NET Framework 
0340: 61 66 74 65 72 20 34 2e 30 2e 0d 0a 23 0d 0a 72  after 4.0...#..r
0350: 75 6e 54 65 73 74 20 7b 74 65 73 74 20 74 6b 74  unTest {test tkt
0360: 2d 30 64 35 62 31 65 66 33 36 32 2d 31 2e 31 20  -0d5b1ef362-1.1 
0370: 7b 53 51 4c 69 74 65 4c 6f 67 2e 44 6f 6d 61 69  {SQLiteLog.Domai
0380: 6e 55 6e 6c 6f 61 64 20 65 76 65 6e 74 7d 20 2d  nUnload event} -
0390: 73 65 74 75 70 20 5c 0d 0a 20 20 20 20 5b 67 65  setup \..    [ge
03a0: 74 41 70 70 44 6f 6d 61 69 6e 50 72 65 61 6d 62  tAppDomainPreamb
03b0: 6c 65 5d 20 2d 62 6f 64 79 20 7b 0d 0a 20 20 23  le] -body {..  #
03c0: 0d 0a 20 20 23 20 4e 4f 54 45 3a 20 47 72 61 62  ..  # NOTE: Grab
03d0: 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 44   the number of D
03e0: 6f 6d 61 69 6e 55 6e 6c 6f 61 64 20 68 61 6e 64  omainUnload hand
03f0: 6c 65 72 73 20 70 72 69 6f 72 20 74 6f 20 64 6f  lers prior to do
0400: 69 6e 67 20 61 6e 79 74 68 69 6e 67 0d 0a 20 20  ing anything..  
0410: 23 20 20 20 20 20 20 20 65 6c 73 65 2e 0d 0a 20  #       else... 
0420: 20 23 0d 0a 20 20 73 65 74 20 78 20 5b 6f 62 6a   #..  set x [obj
0430: 65 63 74 20 69 6e 76 6f 6b 65 20 2d 66 6c 61 67  ect invoke -flag
0440: 73 20 2b 4e 6f 6e 50 75 62 6c 69 63 20 5c 0d 0a  s +NonPublic \..
0450: 20 20 20 20 20 20 41 70 70 44 6f 6d 61 69 6e 2e        AppDomain.
0460: 43 75 72 72 65 6e 74 44 6f 6d 61 69 6e 2e 5f 64  CurrentDomain._d
0470: 6f 6d 61 69 6e 55 6e 6c 6f 61 64 2e 47 65 74 49  omainUnload.GetI
0480: 6e 76 6f 63 61 74 69 6f 6e 4c 69 73 74 20 4c 65  nvocationList Le
0490: 6e 67 74 68 5d 0d 0a 0d 0a 20 20 70 61 63 6b 61  ngth]....  packa
04a0: 67 65 20 72 65 71 75 69 72 65 20 45 61 67 6c 65  ge require Eagle
04b0: 2e 4c 69 62 72 61 72 79 0d 0a 20 20 70 61 63 6b  .Library..  pack
04c0: 61 67 65 20 72 65 71 75 69 72 65 20 45 61 67 6c  age require Eagl
04d0: 65 2e 54 65 73 74 0d 0a 20 20 70 61 63 6b 61 67  e.Test..  packag
04e0: 65 20 72 65 71 75 69 72 65 20 53 79 73 74 65 6d  e require System
04f0: 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e 54 65 73  .Data.SQLite.Tes
0500: 74 0d 0a 0d 0a 20 20 6f 62 6a 65 63 74 20 6c 6f  t....  object lo
0510: 61 64 20 2d 6c 6f 61 64 74 79 70 65 20 46 69 6c  ad -loadtype Fil
0520: 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 5b 67 65  e [file join [ge
0530: 74 42 69 6e 61 72 79 44 69 72 65 63 74 6f 72 79  tBinaryDirectory
0540: 5d 20 5c 0d 0a 20 20 20 20 20 20 53 79 73 74 65  ] \..      Syste
0550: 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e 64 6c  m.Data.SQLite.dl
0560: 6c 5d 0d 0a 0d 0a 20 20 66 6f 72 20 7b 73 65 74  l]....  for {set
0570: 20 69 20 31 7d 20 7b 24 69 20 3c 20 33 7d 20 7b   i 1} {$i < 3} {
0580: 69 6e 63 72 20 69 7d 20 7b 0d 0a 20 20 20 20 73  incr i} {..    s
0590: 65 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 28 24 69  et connection($i
05a0: 29 20 5b 6f 62 6a 65 63 74 20 63 72 65 61 74 65  ) [object create
05b0: 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c   System.Data.SQL
05c0: 69 74 65 2e 53 51 4c 69 74 65 43 6f 6e 6e 65 63  ite.SQLiteConnec
05d0: 74 69 6f 6e 20 22 22 5d 0d 0a 20 20 7d 0d 0a 0d  tion ""]..  }...
05e0: 0a 20 20 23 0d 0a 20 20 23 20 4e 4f 54 45 3a 20  .  #..  # NOTE: 
05f0: 4e 6f 77 2c 20 67 72 61 62 20 74 68 65 20 6e 75  Now, grab the nu
0600: 6d 62 65 72 20 6f 66 20 44 6f 6d 61 69 6e 55 6e  mber of DomainUn
0610: 6c 6f 61 64 20 68 61 6e 64 6c 65 72 73 20 61 66  load handlers af
0620: 74 65 72 20 63 72 65 61 74 69 6e 67 20 74 68 65  ter creating the
0630: 0d 0a 20 20 23 20 20 20 20 20 20 20 63 6f 6e 6e  ..  #       conn
0640: 65 63 74 69 6f 6e 73 2e 0d 0a 20 20 23 0d 0a 20  ections...  #.. 
0650: 20 73 65 74 20 79 20 5b 6f 62 6a 65 63 74 20 69   set y [object i
0660: 6e 76 6f 6b 65 20 2d 66 6c 61 67 73 20 2b 4e 6f  nvoke -flags +No
0670: 6e 50 75 62 6c 69 63 20 5c 0d 0a 20 20 20 20 20  nPublic \..     
0680: 20 41 70 70 44 6f 6d 61 69 6e 2e 43 75 72 72 65   AppDomain.Curre
0690: 6e 74 44 6f 6d 61 69 6e 2e 5f 64 6f 6d 61 69 6e  ntDomain._domain
06a0: 55 6e 6c 6f 61 64 2e 47 65 74 49 6e 76 6f 63 61  Unload.GetInvoca
06b0: 74 69 6f 6e 4c 69 73 74 20 4c 65 6e 67 74 68 5d  tionList Length]
06c0: 0d 0a 0d 0a 20 20 23 0d 0a 20 20 23 20 4e 4f 54  ....  #..  # NOT
06d0: 45 3a 20 4d 61 6b 65 20 73 75 72 65 20 74 68 61  E: Make sure tha
06e0: 74 20 6e 6f 20 44 6f 6d 61 69 6e 55 6e 6c 6f 61  t no DomainUnloa
06f0: 64 20 68 61 6e 64 6c 65 72 73 20 77 65 72 65 20  d handlers were 
0700: 61 63 74 75 61 6c 6c 79 20 61 64 64 65 64 20 77  actually added w
0710: 68 69 6c 65 20 77 65 0d 0a 20 20 23 20 20 20 20  hile we..  #    
0720: 20 20 20 63 72 65 61 74 65 64 20 74 68 65 20 74     created the t
0730: 77 6f 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 28  wo connections (
0740: 69 2e 65 2e 20 62 65 63 61 75 73 65 20 77 65 20  i.e. because we 
0750: 61 72 65 20 6e 6f 74 20 69 6e 20 74 68 65 20 64  are not in the d
0760: 65 66 61 75 6c 74 0d 0a 20 20 23 20 20 20 20 20  efault..  #     
0770: 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 64 6f    application do
0780: 6d 61 69 6e 29 2e 0d 0a 20 20 23 0d 0a 20 20 65  main)...  #..  e
0790: 78 70 72 20 7b 24 78 20 3d 3d 20 24 79 7d 0d 0a  xpr {$x == $y}..
07a0: 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0d 0a 20 20  } -cleanup {..  
07b0: 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69  unset -nocomplai
07c0: 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 20 78  n connection i x
07d0: 20 79 0d 0a 7d 20 2d 63 6f 6e 73 74 72 61 69 6e   y..} -constrain
07e0: 74 73 20 7b 65 61 67 6c 65 20 63 6f 6d 6d 61 6e  ts {eagle comman
07f0: 64 2e 6f 62 6a 65 63 74 20 64 6f 74 4e 65 74 20  d.object dotNet 
0800: 6d 6f 6e 6f 42 75 67 32 38 5c 0d 0a 63 6f 6d 70  monoBug28\..comp
0810: 69 6c 65 2e 49 53 4f 4c 41 54 45 44 5f 49 4e 54  ile.ISOLATED_INT
0820: 45 52 50 52 45 54 45 52 53 20 53 51 4c 69 74 65  ERPRETERS SQLite
0830: 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c   System.Data.SQL
0840: 69 74 65 7d 20 2d 69 73 6f 6c 61 74 69 6f 6e 4c  ite} -isolationL
0850: 65 76 65 6c 20 5c 0d 0a 41 70 70 44 6f 6d 61 69  evel \..AppDomai
0860: 6e 20 2d 72 65 73 75 6c 74 20 7b 54 72 75 65 7d  n -result {True}
0870: 7d 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23  }....###########
0880: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0890: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
08a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
08b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
08c0: 23 23 23 23 0d 0a 0d 0a 72 75 6e 53 51 4c 69 74  ####....runSQLit
08d0: 65 54 65 73 74 45 70 69 6c 6f 67 75 65 0d 0a 72  eTestEpilogue..r
08e0: 75 6e 54 65 73 74 45 70 69 6c 6f 67 75 65 0d 0a  unTestEpilogue..