/ Hex Artifact Content
Login

Artifact 98f1be74bc9f49a858bc4f361fc58e26486798be:


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 47 28 69 73 71 75 69 63 6b 29 20 31 0a 0a 73   G(isquick) 1..s
0310: 65 74 20 45 58 43 4c 55 44 45 20 7b 0a 20 20 6d  et EXCLUDE {.  m
0320: 61 6c 6c 6f 63 41 6c 6c 2e 74 65 73 74 0a 7d 0a  allocAll.test.}.
0330: 0a 69 66 20 7b 5b 73 71 6c 69 74 65 33 20 2d 68  .if {[sqlite3 -h
0340: 61 73 2d 63 6f 64 65 63 5d 7d 20 7b 0a 20 20 23  as-codec]} {.  #
0350: 20 6c 61 70 70 65 6e 64 20 45 58 43 4c 55 44 45   lappend EXCLUDE
0360: 20 5c 0a 20 20 23 20 20 63 6f 6e 66 6c 69 63 74   \.  #  conflict
0370: 2e 74 65 73 74 0a 7d 0a 0a 0a 23 20 46 69 6c 65  .test.}...# File
0380: 73 20 74 6f 20 69 6e 63 6c 75 64 65 20 69 6e 20  s to include in 
0390: 74 68 65 20 74 65 73 74 2e 20 20 49 66 20 74 68  the test.  If th
03a0: 69 73 20 6c 69 73 74 20 69 73 20 65 6d 70 74 79  is list is empty
03b0: 20 74 68 65 6e 20 65 76 65 72 79 74 68 69 6e 67   then everything
03c0: 0a 23 20 74 68 61 74 20 69 73 20 6e 6f 74 20 69  .# that is not i
03d0: 6e 20 74 68 65 20 45 58 43 4c 55 44 45 20 6c 69  n the EXCLUDE li
03e0: 73 74 20 69 73 20 72 75 6e 2e 0a 23 0a 73 65 74  st is run..#.set
03f0: 20 49 4e 43 4c 55 44 45 20 7b 0a 7d 0a 0a 66 6f   INCLUDE {.}..fo
0400: 72 65 61 63 68 20 74 65 73 74 66 69 6c 65 20 5b  reach testfile [
0410: 6c 73 6f 72 74 20 2d 64 69 63 74 69 6f 6e 61 72  lsort -dictionar
0420: 79 20 5b 67 6c 6f 62 20 24 74 65 73 74 64 69 72  y [glob $testdir
0430: 2f 2a 6d 61 6c 6c 6f 63 2a 2e 74 65 73 74 5d 5d  /*malloc*.test]]
0440: 20 7b 0a 20 20 73 65 74 20 74 61 69 6c 20 5b 66   {.  set tail [f
0450: 69 6c 65 20 74 61 69 6c 20 24 74 65 73 74 66 69  ile tail $testfi
0460: 6c 65 5d 0a 20 20 69 66 20 7b 5b 6c 73 65 61 72  le].  if {[lsear
0470: 63 68 20 2d 65 78 61 63 74 20 24 45 58 43 4c 55  ch -exact $EXCLU
0480: 44 45 20 24 74 61 69 6c 5d 3e 3d 30 7d 20 63 6f  DE $tail]>=0} co
0490: 6e 74 69 6e 75 65 0a 20 20 69 66 20 7b 5b 6c 6c  ntinue.  if {[ll
04a0: 65 6e 67 74 68 20 24 49 4e 43 4c 55 44 45 5d 3e  ength $INCLUDE]>
04b0: 30 20 26 26 20 5b 6c 73 65 61 72 63 68 20 2d 65  0 && [lsearch -e
04c0: 78 61 63 74 20 24 49 4e 43 4c 55 44 45 20 24 74  xact $INCLUDE $t
04d0: 61 69 6c 5d 3c 30 7d 20 63 6f 6e 74 69 6e 75 65  ail]<0} continue
04e0: 0a 20 20 73 6f 75 72 63 65 20 24 74 65 73 74 66  .  source $testf
04f0: 69 6c 65 0a 20 20 63 61 74 63 68 20 7b 64 62 20  ile.  catch {db 
0500: 63 6c 6f 73 65 7d 0a 20 20 69 66 20 7b 24 73 71  close}.  if {$sq
0510: 6c 69 74 65 5f 6f 70 65 6e 5f 66 69 6c 65 5f 63  lite_open_file_c
0520: 6f 75 6e 74 3e 30 7d 20 7b 0a 20 20 20 20 70 75  ount>0} {.    pu
0530: 74 73 20 22 24 74 61 69 6c 20 64 69 64 20 6e 6f  ts "$tail did no
0540: 74 20 63 6c 6f 73 65 20 61 6c 6c 20 66 69 6c 65  t close all file
0550: 73 3a 20 24 73 71 6c 69 74 65 5f 6f 70 65 6e 5f  s: $sqlite_open_
0560: 66 69 6c 65 5f 63 6f 75 6e 74 22 0a 20 20 20 20  file_count".    
0570: 66 61 69 6c 5f 74 65 73 74 20 24 74 61 69 6c 0a  fail_test $tail.
0580: 20 20 20 20 73 65 74 20 73 71 6c 69 74 65 5f 6f      set sqlite_o
0590: 70 65 6e 5f 66 69 6c 65 5f 63 6f 75 6e 74 20 30  pen_file_count 0
05a0: 0a 20 20 7d 0a 7d 0a 73 6f 75 72 63 65 20 24 74  .  }.}.source $t
05b0: 65 73 74 64 69 72 2f 6d 69 73 75 73 65 2e 74 65  estdir/misuse.te
05c0: 73 74 0a 0a 73 65 74 20 73 71 6c 69 74 65 5f 6f  st..set sqlite_o
05d0: 70 65 6e 5f 66 69 6c 65 5f 63 6f 75 6e 74 20 30  pen_file_count 0
05e0: 0a 72 65 61 6c 6c 79 5f 66 69 6e 69 73 68 5f 74  .really_finish_t
05f0: 65 73 74 0a                                      est.