System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact a14995a4d6480922e00327eac7f9f39f3a7f5725:


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 6d 65 6d 6f 72 79 2e 65 61 67  .#..# memory.eag
0060: 6c 65 20 2d 2d 0d 0a 23 0d 0a 23 20 57 72 69 74  le --..#..# Writ
0070: 74 65 6e 20 62 79 20 4a 6f 65 20 4d 69 73 74 61  ten by Joe Mista
0080: 63 68 6b 69 6e 2e 0d 0a 23 20 52 65 6c 65 61 73  chkin...# Releas
0090: 65 64 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63  ed to the public
00a0: 20 64 6f 6d 61 69 6e 2c 20 75 73 65 20 61 74 20   domain, use at 
00b0: 79 6f 75 72 20 6f 77 6e 20 72 69 73 6b 21 0d 0a  your own risk!..
00c0: 23 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23 23  #..#############
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 0d 0a 0d 0a 70 61 63 6b 61 67 65 20 72 65  ##....package re
0120: 71 75 69 72 65 20 45 61 67 6c 65 0d 0a 70 61 63  quire Eagle..pac
0130: 6b 61 67 65 20 72 65 71 75 69 72 65 20 45 61 67  kage require Eag
0140: 6c 65 2e 4c 69 62 72 61 72 79 0d 0a 70 61 63 6b  le.Library..pack
0150: 61 67 65 20 72 65 71 75 69 72 65 20 45 61 67 6c  age require Eagl
0160: 65 2e 54 65 73 74 0d 0a 0d 0a 72 75 6e 54 65 73  e.Test....runTes
0170: 74 50 72 6f 6c 6f 67 75 65 0d 0a 0d 0a 23 23 23  tPrologue....###
0180: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
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 0d 0a 0d 0a  ############....
01d0: 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20  package require 
01e0: 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69  System.Data.SQLi
01f0: 74 65 2e 54 65 73 74 0d 0a 72 75 6e 53 51 4c 69  te.Test..runSQLi
0200: 74 65 54 65 73 74 50 72 6f 6c 6f 67 75 65 0d 0a  teTestPrologue..
0210: 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ..##############
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 0d 0a 0d 0a 23 0d 0a 23 20 4e 4f 54 45 3a 20  #....#..# NOTE: 
0270: 52 65 70 6f 72 74 20 62 65 66 6f 72 65 20 74 65  Report before te
0280: 73 74 2c 20 62 65 66 6f 72 65 20 73 68 75 74 64  st, before shutd
0290: 6f 77 6e 2e 0d 0a 23 0d 0a 63 68 65 63 6b 46 6f  own...#..checkFo
02a0: 72 53 51 4c 69 74 65 44 69 72 65 63 74 6f 72 69  rSQLiteDirectori
02b0: 65 73 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c  es $test_channel
02c0: 0d 0a 67 65 74 53 51 4c 69 74 65 48 61 6e 64 6c  ..getSQLiteHandl
02d0: 65 43 6f 75 6e 74 73 20 24 74 65 73 74 5f 63 68  eCounts $test_ch
02e0: 61 6e 6e 65 6c 0d 0a 72 65 70 6f 72 74 53 51 4c  annel..reportSQL
02f0: 69 74 65 52 65 73 6f 75 72 63 65 73 20 24 74 65  iteResources $te
0300: 73 74 5f 63 68 61 6e 6e 65 6c 0d 0a 0d 0a 23 23  st_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 0d 0a 0d  #############...
0360: 0a 23 0d 0a 23 20 4e 4f 54 45 3a 20 4d 61 6b 65  .#..# NOTE: Make
0370: 20 73 75 72 65 20 74 68 61 74 20 53 51 4c 69 74   sure that SQLit
0380: 65 20 63 6f 72 65 20 6c 69 62 72 61 72 79 20 69  e core library i
0390: 73 20 63 6f 6d 70 6c 65 74 65 6c 79 20 73 68 75  s completely shu
03a0: 74 64 6f 77 6e 20 70 72 69 6f 72 20 74 6f 0d 0a  tdown prior to..
03b0: 23 20 20 20 20 20 20 20 73 74 61 72 74 69 6e 67  #       starting
03c0: 20 61 6e 79 20 6f 66 20 74 68 65 20 74 65 73 74   any of the test
03d0: 73 20 69 6e 20 74 68 69 73 20 66 69 6c 65 2e 0d  s in this file..
03e0: 0a 23 0d 0a 73 68 75 74 64 6f 77 6e 53 51 4c 69  .#..shutdownSQLi
03f0: 74 65 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c  te $test_channel
0400: 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23  ....############
0410: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0420: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0430: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0440: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0450: 23 23 23 0d 0a 0d 0a 23 0d 0a 23 20 4e 4f 54 45  ###....#..# NOTE
0460: 3a 20 52 65 70 6f 72 74 20 62 65 66 6f 72 65 20  : Report before 
0470: 74 65 73 74 2c 20 61 66 74 65 72 20 73 68 75 74  test, after shut
0480: 64 6f 77 6e 2e 0d 0a 23 0d 0a 63 68 65 63 6b 46  down...#..checkF
0490: 6f 72 53 51 4c 69 74 65 44 69 72 65 63 74 6f 72  orSQLiteDirector
04a0: 69 65 73 20 24 74 65 73 74 5f 63 68 61 6e 6e 65  ies $test_channe
04b0: 6c 0d 0a 67 65 74 53 51 4c 69 74 65 48 61 6e 64  l..getSQLiteHand
04c0: 6c 65 43 6f 75 6e 74 73 20 24 74 65 73 74 5f 63  leCounts $test_c
04d0: 68 61 6e 6e 65 6c 0d 0a 72 65 70 6f 72 74 53 51  hannel..reportSQ
04e0: 4c 69 74 65 52 65 73 6f 75 72 63 65 73 20 24 74  LiteResources $t
04f0: 65 73 74 5f 63 68 61 6e 6e 65 6c 0d 0a 0d 0a 23  est_channel....#
0500: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0510: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0520: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0530: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0540: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0d 0a  ##############..
0550: 0d 0a 72 75 6e 54 65 73 74 20 7b 74 65 73 74 20  ..runTest {test 
0560: 6d 65 6d 6f 72 79 2d 31 2e 31 20 7b 53 51 4c 69  memory-1.1 {SQLi
0570: 74 65 44 61 74 61 52 65 61 64 65 72 20 6d 65 6d  teDataReader mem
0580: 6f 72 79 20 74 65 73 74 69 6e 67 7d 20 2d 73 65  ory testing} -se
0590: 74 75 70 20 7b 0d 0a 20 20 73 65 74 75 70 4d 65  tup {..  setupMe
05a0: 6d 6f 72 79 43 6f 75 6e 74 65 72 73 20 63 6f 75  moryCounters cou
05b0: 6e 74 65 72 0d 0a 20 20 72 65 70 6f 72 74 4d 65  nter..  reportMe
05c0: 6d 6f 72 79 43 6f 75 6e 74 65 72 73 20 24 74 65  moryCounters $te
05d0: 73 74 5f 63 68 61 6e 6e 65 6c 20 63 6f 75 6e 74  st_channel count
05e0: 65 72 20 69 6e 69 74 69 61 6c 0d 0a 0d 0a 20 20  er initial....  
05f0: 73 65 74 75 70 44 62 20 5b 73 65 74 20 66 69 6c  setupDb [set fil
0600: 65 4e 61 6d 65 20 24 74 65 73 74 5f 72 65 70 6f  eName $test_repo
0610: 73 69 74 6f 72 79 5f 66 69 6c 65 5d 20 5c 0d 0a  sitory_file] \..
0620: 20 20 20 20 20 20 22 22 20 22 22 20 22 22 20 22        "" "" "" "
0630: 22 20 22 52 65 61 64 20 4f 6e 6c 79 3d 54 72 75  " "Read Only=Tru
0640: 65 22 20 66 61 6c 73 65 20 66 61 6c 73 65 0d 0a  e" false false..
0650: 7d 20 2d 62 6f 64 79 20 7b 0d 0a 20 20 73 65 74  } -body {..  set
0660: 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 5b 67 65 74   connection [get
0670: 44 62 43 6f 6e 6e 65 63 74 69 6f 6e 5d 0d 0a 0d  DbConnection]...
0680: 0a 20 20 73 65 74 20 73 71 6c 20 22 53 45 4c 45  .  set sql "SELE
0690: 43 54 20 72 69 64 2c 20 72 63 76 69 64 2c 20 73  CT rid, rcvid, s
06a0: 69 7a 65 2c 20 75 75 69 64 2c 20 63 6f 6e 74 65  ize, uuid, conte
06b0: 6e 74 20 46 52 4f 4d 20 62 6c 6f 62 20 4f 52 44  nt FROM blob ORD
06c0: 45 52 20 42 59 20 72 69 64 3b 22 0d 0a 0d 0a 20  ER BY rid;".... 
06d0: 20 73 65 74 20 77 6f 72 6b 69 6e 67 28 72 6f 77   set working(row
06e0: 43 6f 75 6e 74 29 20 30 0d 0a 20 20 73 65 74 20  Count) 0..  set 
06f0: 77 6f 72 6b 69 6e 67 28 63 6f 6e 74 65 6e 74 4c  working(contentL
0700: 65 6e 67 74 68 29 20 30 0d 0a 0d 0a 20 20 73 65  ength) 0....  se
0710: 74 20 77 6f 72 6b 69 6e 67 28 74 69 6d 65 29 20  t working(time) 
0720: 5b 74 69 6d 65 20 7b 0d 0a 20 20 20 20 73 65 74  [time {..    set
0730: 20 64 61 74 61 52 65 61 64 65 72 20 5b 73 71 6c   dataReader [sql
0740: 20 65 78 65 63 75 74 65 20 2d 65 78 65 63 75 74   execute -execut
0750: 65 20 72 65 61 64 65 72 20 2d 66 6f 72 6d 61 74  e reader -format
0760: 20 64 61 74 61 72 65 61 64 65 72 20 5c 0d 0a 20   datareader \.. 
0770: 20 20 20 20 20 20 20 2d 61 6c 69 61 73 20 24 64         -alias $d
0780: 62 20 24 73 71 6c 5d 0d 0a 0d 0a 20 20 20 20 77  b $sql]....    w
0790: 68 69 6c 65 20 7b 5b 24 64 61 74 61 52 65 61 64  hile {[$dataRead
07a0: 65 72 20 52 65 61 64 5d 7d 20 7b 0d 0a 20 20 20  er Read]} {..   
07b0: 20 20 20 69 6e 63 72 20 77 6f 72 6b 69 6e 67 28     incr working(
07c0: 72 6f 77 43 6f 75 6e 74 29 0d 0a 0d 0a 20 20 20  rowCount)....   
07d0: 20 20 20 73 65 74 20 77 6f 72 6b 69 6e 67 28 72     set working(r
07e0: 69 64 29 20 5b 24 64 61 74 61 52 65 61 64 65 72  id) [$dataReader
07f0: 20 47 65 74 56 61 6c 75 65 20 5c 0d 0a 20 20 20   GetValue \..   
0800: 20 20 20 20 20 20 20 5b 24 64 61 74 61 52 65 61         [$dataRea
0810: 64 65 72 20 47 65 74 4f 72 64 69 6e 61 6c 20 72  der GetOrdinal r
0820: 69 64 5d 5d 0d 0a 0d 0a 20 20 20 20 20 20 73 65  id]]....      se
0830: 74 20 77 6f 72 6b 69 6e 67 28 72 63 76 69 64 29  t working(rcvid)
0840: 20 5b 24 64 61 74 61 52 65 61 64 65 72 20 47 65   [$dataReader Ge
0850: 74 56 61 6c 75 65 20 5c 0d 0a 20 20 20 20 20 20  tValue \..      
0860: 20 20 20 20 5b 24 64 61 74 61 52 65 61 64 65 72      [$dataReader
0870: 20 47 65 74 4f 72 64 69 6e 61 6c 20 72 63 76 69   GetOrdinal rcvi
0880: 64 5d 5d 0d 0a 0d 0a 20 20 20 20 20 20 73 65 74  d]]....      set
0890: 20 77 6f 72 6b 69 6e 67 28 73 69 7a 65 29 20 5b   working(size) [
08a0: 24 64 61 74 61 52 65 61 64 65 72 20 47 65 74 56  $dataReader GetV
08b0: 61 6c 75 65 20 5c 0d 0a 20 20 20 20 20 20 20 20  alue \..        
08c0: 20 20 5b 24 64 61 74 61 52 65 61 64 65 72 20 47    [$dataReader G
08d0: 65 74 4f 72 64 69 6e 61 6c 20 73 69 7a 65 5d 5d  etOrdinal size]]
08e0: 0d 0a 0d 0a 20 20 20 20 20 20 73 65 74 20 77 6f  ....      set wo
08f0: 72 6b 69 6e 67 28 75 75 69 64 29 20 5b 24 64 61  rking(uuid) [$da
0900: 74 61 52 65 61 64 65 72 20 47 65 74 56 61 6c 75  taReader GetValu
0910: 65 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 5b  e \..          [
0920: 24 64 61 74 61 52 65 61 64 65 72 20 47 65 74 4f  $dataReader GetO
0930: 72 64 69 6e 61 6c 20 75 75 69 64 5d 5d 0d 0a 0d  rdinal uuid]]...
0940: 0a 20 20 20 20 20 20 73 65 74 20 77 6f 72 6b 69  .      set worki
0950: 6e 67 28 63 6f 6e 74 65 6e 74 29 20 5b 24 64 61  ng(content) [$da
0960: 74 61 52 65 61 64 65 72 20 2d 63 72 65 61 74 65  taReader -create
0970: 20 2d 61 6c 69 61 73 20 47 65 74 56 61 6c 75 65   -alias GetValue
0980: 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 5b 24   \..          [$
0990: 64 61 74 61 52 65 61 64 65 72 20 47 65 74 4f 72  dataReader GetOr
09a0: 64 69 6e 61 6c 20 63 6f 6e 74 65 6e 74 5d 5d 0d  dinal content]].
09b0: 0a 0d 0a 20 20 20 20 20 20 69 6e 63 72 20 77 6f  ...      incr wo
09c0: 72 6b 69 6e 67 28 63 6f 6e 74 65 6e 74 4c 65 6e  rking(contentLen
09d0: 67 74 68 29 20 5b 24 77 6f 72 6b 69 6e 67 28 63  gth) [$working(c
09e0: 6f 6e 74 65 6e 74 29 20 4c 65 6e 67 74 68 5d 0d  ontent) Length].
09f0: 0a 0d 0a 20 20 20 20 20 20 73 65 74 20 77 6f 72  ...      set wor
0a00: 6b 69 6e 67 28 63 6f 75 6e 74 65 72 31 43 75 72  king(counter1Cur
0a10: 29 20 5b 24 63 6f 75 6e 74 65 72 28 31 29 20 52  ) [$counter(1) R
0a20: 61 77 56 61 6c 75 65 5d 0d 0a 20 20 20 20 20 20  awValue]..      
0a30: 73 65 74 20 77 6f 72 6b 69 6e 67 28 63 6f 75 6e  set working(coun
0a40: 74 65 72 32 43 75 72 29 20 5b 24 63 6f 75 6e 74  ter2Cur) [$count
0a50: 65 72 28 32 29 20 52 61 77 56 61 6c 75 65 5d 0d  er(2) RawValue].
0a60: 0a 20 20 20 20 20 20 73 65 74 20 77 6f 72 6b 69  .      set worki
0a70: 6e 67 28 63 6f 75 6e 74 65 72 33 43 75 72 29 20  ng(counter3Cur) 
0a80: 5b 24 63 6f 75 6e 74 65 72 28 33 29 20 52 61 77  [$counter(3) Raw
0a90: 56 61 6c 75 65 5d 0d 0a 0d 0a 20 20 20 20 20 20  Value]....      
0aa0: 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74  if {![info exist
0ab0: 73 20 77 6f 72 6b 69 6e 67 28 63 6f 75 6e 74 65  s working(counte
0ac0: 72 31 4d 61 78 29 5d 20 7c 7c 20 5c 0d 0a 20 20  r1Max)] || \..  
0ad0: 20 20 20 20 20 20 20 20 24 77 6f 72 6b 69 6e 67          $working
0ae0: 28 63 6f 75 6e 74 65 72 31 43 75 72 29 20 3e 20  (counter1Cur) > 
0af0: 24 77 6f 72 6b 69 6e 67 28 63 6f 75 6e 74 65 72  $working(counter
0b00: 31 4d 61 78 29 7d 20 74 68 65 6e 20 7b 0d 0a 20  1Max)} then {.. 
0b10: 20 20 20 20 20 20 20 73 65 74 20 77 6f 72 6b 69         set worki
0b20: 6e 67 28 63 6f 75 6e 74 65 72 31 4d 61 78 29 20  ng(counter1Max) 
0b30: 24 77 6f 72 6b 69 6e 67 28 63 6f 75 6e 74 65 72  $working(counter
0b40: 31 43 75 72 29 0d 0a 20 20 20 20 20 20 20 20 72  1Cur)..        r
0b50: 65 70 6f 72 74 4d 65 6d 6f 72 79 43 6f 75 6e 74  eportMemoryCount
0b60: 65 72 73 20 24 74 65 73 74 5f 63 68 61 6e 6e 65  ers $test_channe
0b70: 6c 20 63 6f 75 6e 74 65 72 20 63 75 72 72 65 6e  l counter curren
0b80: 74 0d 0a 20 20 20 20 20 20 20 20 63 6c 65 61 6e  t..        clean
0b90: 75 70 4d 65 6d 6f 72 79 20 63 6f 6e 6e 65 63 74  upMemory connect
0ba0: 69 6f 6e 0d 0a 20 20 20 20 20 20 7d 0d 0a 0d 0a  ion..      }....
0bb0: 20 20 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f        if {![info
0bc0: 20 65 78 69 73 74 73 20 77 6f 72 6b 69 6e 67 28   exists working(
0bd0: 63 6f 75 6e 74 65 72 32 4d 61 78 29 5d 20 7c 7c  counter2Max)] ||
0be0: 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 24 77   \..          $w
0bf0: 6f 72 6b 69 6e 67 28 63 6f 75 6e 74 65 72 32 43  orking(counter2C
0c00: 75 72 29 20 3e 20 24 77 6f 72 6b 69 6e 67 28 63  ur) > $working(c
0c10: 6f 75 6e 74 65 72 32 4d 61 78 29 7d 20 74 68 65  ounter2Max)} the
0c20: 6e 20 7b 0d 0a 20 20 20 20 20 20 20 20 73 65 74  n {..        set
0c30: 20 77 6f 72 6b 69 6e 67 28 63 6f 75 6e 74 65 72   working(counter
0c40: 32 4d 61 78 29 20 24 77 6f 72 6b 69 6e 67 28 63  2Max) $working(c
0c50: 6f 75 6e 74 65 72 32 43 75 72 29 0d 0a 20 20 20  ounter2Cur)..   
0c60: 20 20 20 20 20 72 65 70 6f 72 74 4d 65 6d 6f 72       reportMemor
0c70: 79 43 6f 75 6e 74 65 72 73 20 24 74 65 73 74 5f  yCounters $test_
0c80: 63 68 61 6e 6e 65 6c 20 63 6f 75 6e 74 65 72 20  channel counter 
0c90: 63 75 72 72 65 6e 74 0d 0a 20 20 20 20 20 20 20  current..       
0ca0: 20 63 6c 65 61 6e 75 70 4d 65 6d 6f 72 79 20 63   cleanupMemory c
0cb0: 6f 6e 6e 65 63 74 69 6f 6e 0d 0a 20 20 20 20 20  onnection..     
0cc0: 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 69 66 20 7b   }....      if {
0cd0: 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 77 6f  ![info exists wo
0ce0: 72 6b 69 6e 67 28 63 6f 75 6e 74 65 72 33 4d 61  rking(counter3Ma
0cf0: 78 29 5d 20 7c 7c 20 5c 0d 0a 20 20 20 20 20 20  x)] || \..      
0d00: 20 20 20 20 24 77 6f 72 6b 69 6e 67 28 63 6f 75      $working(cou
0d10: 6e 74 65 72 33 43 75 72 29 20 3e 20 24 77 6f 72  nter3Cur) > $wor
0d20: 6b 69 6e 67 28 63 6f 75 6e 74 65 72 33 4d 61 78  king(counter3Max
0d30: 29 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20  )} then {..     
0d40: 20 20 20 73 65 74 20 77 6f 72 6b 69 6e 67 28 63     set working(c
0d50: 6f 75 6e 74 65 72 33 4d 61 78 29 20 24 77 6f 72  ounter3Max) $wor
0d60: 6b 69 6e 67 28 63 6f 75 6e 74 65 72 33 43 75 72  king(counter3Cur
0d70: 29 0d 0a 20 20 20 20 20 20 20 20 72 65 70 6f 72  )..        repor
0d80: 74 4d 65 6d 6f 72 79 43 6f 75 6e 74 65 72 73 20  tMemoryCounters 
0d90: 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 63 6f  $test_channel co
0da0: 75 6e 74 65 72 20 63 75 72 72 65 6e 74 0d 0a 20  unter current.. 
0db0: 20 20 20 20 20 20 20 63 6c 65 61 6e 75 70 4d 65         cleanupMe
0dc0: 6d 6f 72 79 20 63 6f 6e 6e 65 63 74 69 6f 6e 0d  mory connection.
0dd0: 0a 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d  .      }..    }.
0de0: 0a 20 20 7d 5d 0d 0a 0d 0a 20 20 72 65 70 6f 72  .  }]....  repor
0df0: 74 4d 65 6d 6f 72 79 43 6f 75 6e 74 65 72 73 20  tMemoryCounters 
0e00: 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 20 63 6f  $test_channel co
0e10: 75 6e 74 65 72 20 66 69 6e 61 6c 0d 0a 0d 0a 20  unter final.... 
0e20: 20 74 70 75 74 73 20 24 74 65 73 74 5f 63 68 61   tputs $test_cha
0e30: 6e 6e 65 6c 20 5b 61 70 70 65 6e 64 41 72 67 73  nnel [appendArgs
0e40: 20 5c 0d 0a 20 20 20 20 20 20 22 2d 2d 2d 2d 20   \..      "---- 
0e50: 66 6f 75 6e 64 20 22 20 24 77 6f 72 6b 69 6e 67  found " $working
0e60: 28 72 6f 77 43 6f 75 6e 74 29 20 22 20 72 6f 77  (rowCount) " row
0e70: 73 20 77 69 74 68 20 22 20 5c 0d 0a 20 20 20 20  s with " \..    
0e80: 20 20 24 77 6f 72 6b 69 6e 67 28 63 6f 6e 74 65    $working(conte
0e90: 6e 74 4c 65 6e 67 74 68 29 20 22 20 62 79 74 65  ntLength) " byte
0ea0: 73 20 6f 66 20 63 6f 6e 74 65 6e 74 20 69 6e 20  s of content in 
0eb0: 22 20 5c 0d 0a 20 20 20 20 20 20 24 77 6f 72 6b  " \..      $work
0ec0: 69 6e 67 28 74 69 6d 65 29 20 5c 6e 5d 0d 0a 7d  ing(time) \n]..}
0ed0: 20 2d 63 6c 65 61 6e 75 70 20 7b 0d 0a 20 20 66   -cleanup {..  f
0ee0: 72 65 65 44 62 43 6f 6e 6e 65 63 74 69 6f 6e 0d  reeDbConnection.
0ef0: 0a 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f  ...  unset -noco
0f00: 6d 70 6c 61 69 6e 20 64 61 74 61 52 65 61 64 65  mplain dataReade
0f10: 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 0d 0a 0d 0a  r connection....
0f20: 20 20 63 6c 65 61 6e 75 70 44 62 20 24 66 69 6c    cleanupDb $fil
0f30: 65 4e 61 6d 65 20 64 62 20 74 72 75 65 20 66 61  eName db true fa
0f40: 6c 73 65 20 66 61 6c 73 65 0d 0a 0d 0a 20 20 75  lse false....  u
0f50: 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e  nset -nocomplain
0f60: 20 77 6f 72 6b 69 6e 67 20 73 71 6c 20 63 6f 75   working sql cou
0f70: 6e 74 65 72 20 64 62 20 66 69 6c 65 4e 61 6d 65  nter db fileName
0f80: 0d 0a 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73  ..} -constraints
0f90: 20 5b 66 69 78 43 6f 6e 73 74 72 61 69 6e 74 73   [fixConstraints
0fa0: 20 7b 65 61 67 6c 65 20 63 6f 6d 6d 61 6e 64 2e   {eagle command.
0fb0: 6f 62 6a 65 63 74 20 21 64 6f 74 4e 65 74 43 6f  object !dotNetCo
0fc0: 72 65 20 77 69 6e 64 6f 77 73 5c 0d 0a 6d 6f 6e  re windows\..mon
0fd0: 6f 42 75 67 32 38 20 63 6f 6d 6d 61 6e 64 2e 73  oBug28 command.s
0fe0: 71 6c 20 63 6f 6d 70 69 6c 65 2e 44 41 54 41 20  ql compile.DATA 
0ff0: 53 51 4c 69 74 65 20 53 79 73 74 65 6d 2e 44 61  SQLite System.Da
1000: 74 61 2e 53 51 4c 69 74 65 5c 0d 0a 66 6f 73 73  ta.SQLite\..foss
1010: 69 6c 5f 72 65 70 6f 73 69 74 6f 72 79 5f 66 69  il_repository_fi
1020: 6c 65 20 76 61 72 69 61 62 6c 65 5f 74 65 73 74  le variable_test
1030: 5f 72 65 70 6f 73 69 74 6f 72 79 5f 66 69 6c 65  _repository_file
1040: 7d 5d 20 2d 72 65 73 75 6c 74 20 7b 7d 7d 0d 0a  }] -result {}}..
1050: 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ..##############
1060: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1070: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1080: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1090: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
10a0: 23 0d 0a 0d 0a 23 0d 0a 23 20 4e 4f 54 45 3a 20  #....#..# NOTE: 
10b0: 52 65 70 6f 72 74 20 61 66 74 65 72 20 74 65 73  Report after tes
10c0: 74 2e 0d 0a 23 0d 0a 63 68 65 63 6b 46 6f 72 53  t...#..checkForS
10d0: 51 4c 69 74 65 44 69 72 65 63 74 6f 72 69 65 73  QLiteDirectories
10e0: 20 24 74 65 73 74 5f 63 68 61 6e 6e 65 6c 0d 0a   $test_channel..
10f0: 67 65 74 53 51 4c 69 74 65 48 61 6e 64 6c 65 43  getSQLiteHandleC
1100: 6f 75 6e 74 73 20 24 74 65 73 74 5f 63 68 61 6e  ounts $test_chan
1110: 6e 65 6c 0d 0a 72 65 70 6f 72 74 53 51 4c 69 74  nel..reportSQLit
1120: 65 52 65 73 6f 75 72 63 65 73 20 24 74 65 73 74  eResources $test
1130: 5f 63 68 61 6e 6e 65 6c 0d 0a 0d 0a 23 23 23 23  _channel....####
1140: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1150: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1160: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1170: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1180: 23 23 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 72  ###########....r
1190: 75 6e 53 51 4c 69 74 65 54 65 73 74 45 70 69 6c  unSQLiteTestEpil
11a0: 6f 67 75 65 0d 0a 72 75 6e 54 65 73 74 45 70 69  ogue..runTestEpi
11b0: 6c 6f 67 75 65 0d 0a                             logue..