/ Hex Artifact Content
Login

Artifact c6460fba403c5703141348cd90de1c294188c68f:


0000: 23 20 32 30 31 31 20 4d 61 72 63 68 20 39 0a 23  # 2011 March 9.#
0010: 0a 23 20 54 68 65 20 61 75 74 68 6f 72 20 64 69  .# The author di
0020: 73 63 6c 61 69 6d 73 20 63 6f 70 79 72 69 67 68  sclaims copyrigh
0030: 74 20 74 6f 20 74 68 69 73 20 73 6f 75 72 63 65  t to this source
0040: 20 63 6f 64 65 2e 20 20 49 6e 20 70 6c 61 63 65   code.  In place
0050: 20 6f 66 0a 23 20 61 20 6c 65 67 61 6c 20 6e 6f   of.# a legal no
0060: 74 69 63 65 2c 20 68 65 72 65 20 69 73 20 61 20  tice, here is a 
0070: 62 6c 65 73 73 69 6e 67 3a 0a 23 0a 23 20 20 20  blessing:.#.#   
0080: 20 4d 61 79 20 79 6f 75 20 64 6f 20 67 6f 6f 64   May you do good
0090: 20 61 6e 64 20 6e 6f 74 20 65 76 69 6c 2e 0a 23   and not evil..#
00a0: 20 20 20 20 4d 61 79 20 79 6f 75 20 66 69 6e 64      May you find
00b0: 20 66 6f 72 67 69 76 65 6e 65 73 73 20 66 6f 72   forgiveness for
00c0: 20 79 6f 75 72 73 65 6c 66 20 61 6e 64 20 66 6f   yourself and fo
00d0: 72 67 69 76 65 20 6f 74 68 65 72 73 2e 0a 23 20  rgive others..# 
00e0: 20 20 20 4d 61 79 20 79 6f 75 20 73 68 61 72 65     May you share
00f0: 20 66 72 65 65 6c 79 2c 20 6e 65 76 65 72 20 74   freely, never t
0100: 61 6b 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e 20  aking more than 
0110: 79 6f 75 20 67 69 76 65 2e 0a 23 0a 23 2a 2a 2a  you give..#.#***
0120: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 0a 23 0a 23 20 54 68 69 73 20 66 69  ****.#.# This fi
0170: 6c 65 20 63 6f 6e 74 61 69 6e 73 20 74 65 73 74  le contains test
0180: 73 20 6f 66 20 74 68 65 20 6d 65 6d 35 20 61 6c  s of the mem5 al
0190: 6c 6f 63 61 74 69 6f 6e 20 73 75 62 73 79 73 74  location subsyst
01a0: 65 6d 2e 0a 23 0a 0a 73 65 74 20 74 65 73 74 64  em..#..set testd
01b0: 69 72 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65  ir [file dirname
01c0: 20 24 61 72 67 76 30 5d 0a 73 6f 75 72 63 65 20   $argv0].source 
01d0: 24 74 65 73 74 64 69 72 2f 74 65 73 74 65 72 2e  $testdir/tester.
01e0: 74 63 6c 0a 0a 69 66 63 61 70 61 62 6c 65 20 21  tcl..ifcapable !
01f0: 6d 65 6d 35 20 7b 0a 20 20 66 69 6e 69 73 68 5f  mem5 {.  finish_
0200: 74 65 73 74 0a 20 20 72 65 74 75 72 6e 0a 7d 0a  test.  return.}.
0210: 0a 23 20 54 68 65 20 74 65 73 74 73 20 69 6e 20  .# The tests in 
0220: 74 68 69 73 20 66 69 6c 65 20 63 6f 6e 66 69 67  this file config
0230: 75 72 65 20 74 68 65 20 6c 6f 6f 6b 61 73 69 64  ure the lookasid
0240: 65 20 61 6c 6c 6f 63 61 74 6f 72 20 61 66 74 65  e allocator afte
0250: 72 20 61 20 0a 23 20 63 6f 6e 6e 65 63 74 69 6f  r a .# connectio
0260: 6e 20 69 73 20 6f 70 65 6e 65 64 2e 20 54 68 69  n is opened. Thi
0270: 73 20 77 69 6c 6c 20 6e 6f 74 20 77 6f 72 6b 20  s will not work 
0280: 69 66 20 74 68 65 72 65 20 69 73 20 61 6e 79 20  if there is any 
0290: 22 70 72 65 73 71 6c 22 0a 23 20 63 6f 6e 66 69  "presql".# confi
02a0: 67 75 72 65 64 20 28 53 51 4c 20 72 75 6e 20 77  gured (SQL run w
02b0: 69 74 68 69 6e 20 74 68 65 20 5b 73 71 6c 69 74  ithin the [sqlit
02c0: 65 33 5d 20 77 72 61 70 70 65 72 20 69 6e 20 74  e3] wrapper in t
02d0: 65 73 74 65 72 2e 74 63 6c 29 2e 0a 69 66 20 7b  ester.tcl)..if {
02e0: 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 3a 3a 47  [info exists ::G
02f0: 28 70 65 72 6d 3a 70 72 65 73 71 6c 29 5d 7d 20  (perm:presql)]} 
0300: 7b 0a 20 20 66 69 6e 69 73 68 5f 74 65 73 74 0a  {.  finish_test.
0310: 20 20 72 65 74 75 72 6e 0a 7d 0a 0a 64 6f 5f 74    return.}..do_t
0320: 65 73 74 20 6d 65 6d 35 2d 31 2e 31 20 7b 0a 20  est mem5-1.1 {. 
0330: 20 63 61 74 63 68 20 7b 64 62 20 63 6c 6f 73 65   catch {db close
0340: 7d 0a 20 20 73 71 6c 69 74 65 33 5f 73 68 75 74  }.  sqlite3_shut
0350: 64 6f 77 6e 0a 20 20 73 71 6c 69 74 65 33 5f 63  down.  sqlite3_c
0360: 6f 6e 66 69 67 5f 68 65 61 70 20 32 35 30 30 30  onfig_heap 25000
0370: 30 30 30 20 30 0a 20 20 73 71 6c 69 74 65 33 5f  000 0.  sqlite3_
0380: 63 6f 6e 66 69 67 5f 6c 6f 6f 6b 61 73 69 64 65  config_lookaside
0390: 20 30 20 30 0a 20 20 73 71 6c 69 74 65 33 5f 69   0 0.  sqlite3_i
03a0: 6e 69 74 69 61 6c 69 7a 65 0a 7d 20 7b 53 51 4c  nitialize.} {SQL
03b0: 49 54 45 5f 4f 4b 7d 0a 0a 23 20 74 72 79 20 77  ITE_OK}..# try w
03c0: 69 74 68 20 6d 69 6e 20 72 65 71 75 65 73 74 20  ith min request 
03d0: 73 69 7a 65 20 3d 20 32 5e 33 30 0a 64 6f 5f 74  size = 2^30.do_t
03e0: 65 73 74 20 6d 65 6d 35 2d 31 2e 32 20 7b 0a 20  est mem5-1.2 {. 
03f0: 20 63 61 74 63 68 20 7b 64 62 20 63 6c 6f 73 65   catch {db close
0400: 7d 0a 20 20 73 71 6c 69 74 65 33 5f 73 68 75 74  }.  sqlite3_shut
0410: 64 6f 77 6e 0a 20 20 73 71 6c 69 74 65 33 5f 63  down.  sqlite3_c
0420: 6f 6e 66 69 67 5f 68 65 61 70 20 31 20 31 30 37  onfig_heap 1 107
0430: 33 37 34 31 38 32 34 0a 20 20 73 71 6c 69 74 65  3741824.  sqlite
0440: 33 5f 63 6f 6e 66 69 67 5f 6c 6f 6f 6b 61 73 69  3_config_lookasi
0450: 64 65 20 30 20 30 0a 20 20 73 71 6c 69 74 65 33  de 0 0.  sqlite3
0460: 5f 69 6e 69 74 69 61 6c 69 7a 65 0a 7d 20 7b 53  _initialize.} {S
0470: 51 4c 49 54 45 5f 4e 4f 4d 45 4d 7d 0a 0a 23 20  QLITE_NOMEM}..# 
0480: 74 72 79 20 77 69 74 68 20 6d 69 6e 20 72 65 71  try with min req
0490: 75 65 73 74 20 73 69 7a 65 20 3d 20 32 5e 33 30  uest size = 2^30
04a0: 2b 31 0a 23 20 70 72 65 76 69 6f 75 73 6c 79 20  +1.# previously 
04b0: 74 68 69 73 20 77 61 73 20 63 61 75 73 69 6e 67  this was causing
04c0: 20 74 68 65 20 6d 65 6d 73 79 73 35 4c 6f 67 28   the memsys5Log(
04d0: 29 20 66 75 6e 63 20 74 6f 20 69 6e 66 69 6e 69  ) func to infini
04e0: 74 65 6c 79 20 6c 6f 6f 70 2e 0a 64 6f 5f 74 65  tely loop..do_te
04f0: 73 74 20 6d 65 6d 35 2d 31 2e 33 20 7b 0a 20 20  st mem5-1.3 {.  
0500: 63 61 74 63 68 20 7b 64 62 20 63 6c 6f 73 65 7d  catch {db close}
0510: 0a 20 20 73 71 6c 69 74 65 33 5f 73 68 75 74 64  .  sqlite3_shutd
0520: 6f 77 6e 0a 20 20 73 71 6c 69 74 65 33 5f 63 6f  own.  sqlite3_co
0530: 6e 66 69 67 5f 68 65 61 70 20 31 20 31 30 37 33  nfig_heap 1 1073
0540: 37 34 31 38 32 35 0a 20 20 73 71 6c 69 74 65 33  741825.  sqlite3
0550: 5f 63 6f 6e 66 69 67 5f 6c 6f 6f 6b 61 73 69 64  _config_lookasid
0560: 65 20 30 20 30 0a 20 20 73 71 6c 69 74 65 33 5f  e 0 0.  sqlite3_
0570: 69 6e 69 74 69 61 6c 69 7a 65 0a 7d 20 7b 53 51  initialize.} {SQ
0580: 4c 49 54 45 5f 4e 4f 4d 45 4d 7d 0a 0a 64 6f 5f  LITE_NOMEM}..do_
0590: 74 65 73 74 20 6d 65 6d 35 2d 31 2e 34 20 7b 0a  test mem5-1.4 {.
05a0: 20 20 63 61 74 63 68 20 7b 64 62 20 63 6c 6f 73    catch {db clos
05b0: 65 7d 0a 20 20 73 71 6c 69 74 65 33 5f 73 68 75  e}.  sqlite3_shu
05c0: 74 64 6f 77 6e 0a 20 20 73 71 6c 69 74 65 33 5f  tdown.  sqlite3_
05d0: 63 6f 6e 66 69 67 5f 68 65 61 70 20 30 20 30 0a  config_heap 0 0.
05e0: 20 20 73 71 6c 69 74 65 33 5f 63 6f 6e 66 69 67    sqlite3_config
05f0: 5f 6c 6f 6f 6b 61 73 69 64 65 20 30 20 30 0a 20  _lookaside 0 0. 
0600: 20 73 71 6c 69 74 65 33 5f 69 6e 69 74 69 61 6c   sqlite3_initial
0610: 69 7a 65 0a 7d 20 7b 53 51 4c 49 54 45 5f 4f 4b  ize.} {SQLITE_OK
0620: 7d 0a 0a 66 69 6e 69 73 68 5f 74 65 73 74 0a     }..finish_test.