/ Hex Artifact Content
Login

Artifact 2a2222a5e447be6c6579055a9a26e507e4586f4e:


0000: 23 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 64  #.#    May you d
0010: 6f 20 67 6f 6f 64 20 61 6e 64 20 6e 6f 74 20 65  o good and not e
0020: 76 69 6c 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f  vil..#    May yo
0030: 75 20 66 69 6e 64 20 66 6f 72 67 69 76 65 6e 65  u find forgivene
0040: 73 73 20 66 6f 72 20 79 6f 75 72 73 65 6c 66 20  ss for yourself 
0050: 61 6e 64 20 66 6f 72 67 69 76 65 20 6f 74 68 65  and forgive othe
0060: 72 73 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75  rs..#    May you
0070: 20 73 68 61 72 65 20 66 72 65 65 6c 79 2c 20 6e   share freely, n
0080: 65 76 65 72 20 74 61 6b 69 6e 67 20 6d 6f 72 65  ever taking more
0090: 20 74 68 61 6e 20 79 6f 75 20 67 69 76 65 2e 0a   than you give..
00a0: 23 0a 23 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  #.#*************
00b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
00c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
00d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
00e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 23 20 54 68 69  **********.# Thi
00f0: 73 20 66 69 6c 65 20 72 75 6e 73 20 61 6c 6c 20  s file runs all 
0100: 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 20 74 65  out-of-memory te
0110: 73 74 73 2e 0a 23 0a 23 20 24 49 64 3a 20 6d 61  sts..#.# $Id: ma
0120: 6c 6c 6f 63 41 6c 6c 2e 74 65 73 74 2c 76 20 31  llocAll.test,v 1
0130: 2e 31 20 32 30 30 37 2f 31 31 2f 32 36 20 31 33  .1 2007/11/26 13
0140: 3a 33 36 3a 30 30 20 64 72 68 20 45 78 70 20 24  :36:00 drh Exp $
0150: 0a 0a 70 72 6f 63 20 6c 73 68 69 66 74 20 7b 6c  ..proc lshift {l
0160: 76 61 72 7d 20 7b 0a 20 20 75 70 76 61 72 20 24  var} {.  upvar $
0170: 6c 76 61 72 20 6c 0a 20 20 73 65 74 20 72 65 74  lvar l.  set ret
0180: 20 5b 6c 69 6e 64 65 78 20 24 6c 20 30 5d 0a 20   [lindex $l 0]. 
0190: 20 73 65 74 20 6c 20 5b 6c 72 61 6e 67 65 20 24   set l [lrange $
01a0: 6c 20 31 20 65 6e 64 5d 0a 20 20 72 65 74 75 72  l 1 end].  retur
01b0: 6e 20 24 72 65 74 0a 7d 0a 77 68 69 6c 65 20 7b  n $ret.}.while {
01c0: 5b 73 65 74 20 61 72 67 20 5b 6c 73 68 69 66 74  [set arg [lshift
01d0: 20 61 72 67 76 5d 5d 20 21 3d 20 22 22 7d 20 7b   argv]] != ""} {
01e0: 0a 20 20 73 77 69 74 63 68 20 2d 2d 20 24 61 72  .  switch -- $ar
01f0: 67 20 7b 0a 20 20 20 20 2d 73 68 61 72 65 64 70  g {.    -sharedp
0200: 61 67 65 72 63 61 63 68 65 20 7b 0a 20 20 20 20  agercache {.    
0210: 20 20 73 71 6c 69 74 65 33 5f 65 6e 61 62 6c 65    sqlite3_enable
0220: 5f 73 68 61 72 65 64 5f 63 61 63 68 65 20 31 0a  _shared_cache 1.
0230: 20 20 20 20 7d 0a 20 20 20 20 64 65 66 61 75 6c      }.    defaul
0240: 74 20 7b 0a 20 20 20 20 20 20 73 65 74 20 61 72  t {.      set ar
0250: 67 76 20 5b 6c 69 6e 73 65 72 74 20 24 61 72 67  gv [linsert $arg
0260: 76 20 30 20 24 61 72 67 5d 0a 20 20 20 20 20 20  v 0 $arg].      
0270: 62 72 65 61 6b 0a 20 20 20 20 7d 0a 20 20 7d 0a  break.    }.  }.
0280: 7d 0a 0a 73 65 74 20 74 65 73 74 64 69 72 20 5b  }..set testdir [
0290: 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 24 61 72  file dirname $ar
02a0: 67 76 30 5d 0a 73 6f 75 72 63 65 20 24 74 65 73  gv0].source $tes
02b0: 74 64 69 72 2f 74 65 73 74 65 72 2e 74 63 6c 0a  tdir/tester.tcl.
02c0: 72 65 6e 61 6d 65 20 66 69 6e 69 73 68 5f 74 65  rename finish_te
02d0: 73 74 20 72 65 61 6c 6c 79 5f 66 69 6e 69 73 68  st really_finish
02e0: 5f 74 65 73 74 0a 70 72 6f 63 20 66 69 6e 69 73  _test.proc finis
02f0: 68 5f 74 65 73 74 20 7b 7d 20 7b 7d 0a 73 65 74  h_test {} {}.set
0300: 20 49 53 51 55 49 43 4b 20 31 0a 0a 73 65 74 20   ISQUICK 1..set 
0310: 45 58 43 4c 55 44 45 20 7b 0a 20 20 6d 61 6c 6c  EXCLUDE {.  mall
0320: 6f 63 41 6c 6c 2e 74 65 73 74 0a 7d 0a 0a 69 66  ocAll.test.}..if
0330: 20 7b 5b 73 71 6c 69 74 65 33 20 2d 68 61 73 2d   {[sqlite3 -has-
0340: 63 6f 64 65 63 5d 7d 20 7b 0a 20 20 23 20 6c 61  codec]} {.  # la
0350: 70 70 65 6e 64 20 45 58 43 4c 55 44 45 20 5c 0a  ppend EXCLUDE \.
0360: 20 20 23 20 20 63 6f 6e 66 6c 69 63 74 2e 74 65    #  conflict.te
0370: 73 74 0a 7d 0a 0a 0a 23 20 46 69 6c 65 73 20 74  st.}...# Files t
0380: 6f 20 69 6e 63 6c 75 64 65 20 69 6e 20 74 68 65  o include in the
0390: 20 74 65 73 74 2e 20 20 49 66 20 74 68 69 73 20   test.  If this 
03a0: 6c 69 73 74 20 69 73 20 65 6d 70 74 79 20 74 68  list is empty th
03b0: 65 6e 20 65 76 65 72 79 74 68 69 6e 67 0a 23 20  en everything.# 
03c0: 74 68 61 74 20 69 73 20 6e 6f 74 20 69 6e 20 74  that is not in t
03d0: 68 65 20 45 58 43 4c 55 44 45 20 6c 69 73 74 20  he EXCLUDE list 
03e0: 69 73 20 72 75 6e 2e 0a 23 0a 73 65 74 20 49 4e  is run..#.set IN
03f0: 43 4c 55 44 45 20 7b 0a 7d 0a 0a 66 6f 72 65 61  CLUDE {.}..forea
0400: 63 68 20 74 65 73 74 66 69 6c 65 20 5b 6c 73 6f  ch testfile [lso
0410: 72 74 20 2d 64 69 63 74 69 6f 6e 61 72 79 20 5b  rt -dictionary [
0420: 67 6c 6f 62 20 24 74 65 73 74 64 69 72 2f 2a 6d  glob $testdir/*m
0430: 61 6c 6c 6f 63 2a 2e 74 65 73 74 5d 5d 20 7b 0a  alloc*.test]] {.
0440: 20 20 73 65 74 20 74 61 69 6c 20 5b 66 69 6c 65    set tail [file
0450: 20 74 61 69 6c 20 24 74 65 73 74 66 69 6c 65 5d   tail $testfile]
0460: 0a 20 20 69 66 20 7b 5b 6c 73 65 61 72 63 68 20  .  if {[lsearch 
0470: 2d 65 78 61 63 74 20 24 45 58 43 4c 55 44 45 20  -exact $EXCLUDE 
0480: 24 74 61 69 6c 5d 3e 3d 30 7d 20 63 6f 6e 74 69  $tail]>=0} conti
0490: 6e 75 65 0a 20 20 69 66 20 7b 5b 6c 6c 65 6e 67  nue.  if {[lleng
04a0: 74 68 20 24 49 4e 43 4c 55 44 45 5d 3e 30 20 26  th $INCLUDE]>0 &
04b0: 26 20 5b 6c 73 65 61 72 63 68 20 2d 65 78 61 63  & [lsearch -exac
04c0: 74 20 24 49 4e 43 4c 55 44 45 20 24 74 61 69 6c  t $INCLUDE $tail
04d0: 5d 3c 30 7d 20 63 6f 6e 74 69 6e 75 65 0a 20 20  ]<0} continue.  
04e0: 73 6f 75 72 63 65 20 24 74 65 73 74 66 69 6c 65  source $testfile
04f0: 0a 20 20 63 61 74 63 68 20 7b 64 62 20 63 6c 6f  .  catch {db clo
0500: 73 65 7d 0a 20 20 69 66 20 7b 24 73 71 6c 69 74  se}.  if {$sqlit
0510: 65 5f 6f 70 65 6e 5f 66 69 6c 65 5f 63 6f 75 6e  e_open_file_coun
0520: 74 3e 30 7d 20 7b 0a 20 20 20 20 70 75 74 73 20  t>0} {.    puts 
0530: 22 24 74 61 69 6c 20 64 69 64 20 6e 6f 74 20 63  "$tail did not c
0540: 6c 6f 73 65 20 61 6c 6c 20 66 69 6c 65 73 3a 20  lose all files: 
0550: 24 73 71 6c 69 74 65 5f 6f 70 65 6e 5f 66 69 6c  $sqlite_open_fil
0560: 65 5f 63 6f 75 6e 74 22 0a 20 20 20 20 69 6e 63  e_count".    inc
0570: 72 20 6e 45 72 72 0a 20 20 20 20 6c 61 70 70 65  r nErr.    lappe
0580: 6e 64 20 3a 3a 66 61 69 6c 4c 69 73 74 20 24 74  nd ::failList $t
0590: 61 69 6c 0a 20 20 20 20 73 65 74 20 73 71 6c 69  ail.    set sqli
05a0: 74 65 5f 6f 70 65 6e 5f 66 69 6c 65 5f 63 6f 75  te_open_file_cou
05b0: 6e 74 20 30 0a 20 20 7d 0a 7d 0a 73 6f 75 72 63  nt 0.  }.}.sourc
05c0: 65 20 24 74 65 73 74 64 69 72 2f 6d 69 73 75 73  e $testdir/misus
05d0: 65 2e 74 65 73 74 0a 0a 73 65 74 20 73 71 6c 69  e.test..set sqli
05e0: 74 65 5f 6f 70 65 6e 5f 66 69 6c 65 5f 63 6f 75  te_open_file_cou
05f0: 6e 74 20 30 0a 72 65 61 6c 6c 79 5f 66 69 6e 69  nt 0.really_fini
0600: 73 68 5f 74 65 73 74 0a                          sh_test.