/ Hex Artifact Content
Login

Artifact f78c295e8e18ea3029e65ca08278690e00c22100:


0000: 23 20 32 30 30 37 20 41 75 67 20 32 39 0a 23 0a  # 2007 Aug 29.#.
0010: 23 20 54 68 65 20 61 75 74 68 6f 72 20 64 69 73  # The author dis
0020: 63 6c 61 69 6d 73 20 63 6f 70 79 72 69 67 68 74  claims copyright
0030: 20 74 6f 20 74 68 69 73 20 73 6f 75 72 63 65 20   to this source 
0040: 63 6f 64 65 2e 20 20 49 6e 20 70 6c 61 63 65 20  code.  In place 
0050: 6f 66 0a 23 20 61 20 6c 65 67 61 6c 20 6e 6f 74  of.# a legal not
0060: 69 63 65 2c 20 68 65 72 65 20 69 73 20 61 20 62  ice, here is a b
0070: 6c 65 73 73 69 6e 67 3a 0a 23 0a 23 20 20 20 20  lessing:.#.#    
0080: 4d 61 79 20 79 6f 75 20 64 6f 20 67 6f 6f 64 20  May you do good 
0090: 61 6e 64 20 6e 6f 74 20 65 76 69 6c 2e 0a 23 20  and not evil..# 
00a0: 20 20 20 4d 61 79 20 79 6f 75 20 66 69 6e 64 20     May you find 
00b0: 66 6f 72 67 69 76 65 6e 65 73 73 20 66 6f 72 20  forgiveness for 
00c0: 79 6f 75 72 73 65 6c 66 20 61 6e 64 20 66 6f 72  yourself and for
00d0: 67 69 76 65 20 6f 74 68 65 72 73 2e 0a 23 20 20  give others..#  
00e0: 20 20 4d 61 79 20 79 6f 75 20 73 68 61 72 65 20    May you share 
00f0: 66 72 65 65 6c 79 2c 20 6e 65 76 65 72 20 74 61  freely, never ta
0100: 6b 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e 20 79  king more than y
0110: 6f 75 20 67 69 76 65 2e 0a 23 0a 23 2a 2a 2a 2a  ou 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 0a 23 0a 23 20 24 49 64 3a 20 6d 61 6c  ***.#.# $Id: mal
0170: 6c 6f 63 44 2e 74 65 73 74 2c 76 20 31 2e 36 20  locD.test,v 1.6 
0180: 32 30 30 38 2f 30 32 2f 31 38 20 32 32 3a 32 34  2008/02/18 22:24
0190: 3a 35 38 20 64 72 68 20 45 78 70 20 24 0a 0a 73  :58 drh Exp $..s
01a0: 65 74 20 74 65 73 74 64 69 72 20 5b 66 69 6c 65  et testdir [file
01b0: 20 64 69 72 6e 61 6d 65 20 24 61 72 67 76 30 5d   dirname $argv0]
01c0: 0a 73 6f 75 72 63 65 20 24 74 65 73 74 64 69 72  .source $testdir
01d0: 2f 74 65 73 74 65 72 2e 74 63 6c 0a 73 6f 75 72  /tester.tcl.sour
01e0: 63 65 20 24 74 65 73 74 64 69 72 2f 6d 61 6c 6c  ce $testdir/mall
01f0: 6f 63 5f 63 6f 6d 6d 6f 6e 2e 74 63 6c 0a 0a 23  oc_common.tcl..#
0200: 20 4f 6e 6c 79 20 72 75 6e 20 74 68 65 73 65 20   Only run these 
0210: 74 65 73 74 73 20 69 66 20 6d 65 6d 6f 72 79 20  tests if memory 
0220: 64 65 62 75 67 67 69 6e 67 20 69 73 20 74 75 72  debugging is tur
0230: 6e 65 64 20 6f 6e 2e 0a 23 0a 69 66 20 7b 21 24  ned on..#.if {!$
0240: 4d 45 4d 44 45 42 55 47 7d 20 7b 0a 20 20 20 70  MEMDEBUG} {.   p
0250: 75 74 73 20 22 53 6b 69 70 70 69 6e 67 20 6d 61  uts "Skipping ma
0260: 6c 6c 6f 63 44 20 74 65 73 74 73 3a 20 6e 6f 74  llocD tests: not
0270: 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d   compiled with -
0280: 44 53 51 4c 49 54 45 5f 4d 45 4d 44 45 42 55 47  DSQLITE_MEMDEBUG
0290: 2e 2e 2e 22 0a 20 20 20 66 69 6e 69 73 68 5f 74  ...".   finish_t
02a0: 65 73 74 0a 20 20 20 72 65 74 75 72 6e 0a 7d 0a  est.   return.}.
02b0: 0a 64 62 20 63 6c 6f 73 65 0a 73 71 6c 69 74 65  .db close.sqlite
02c0: 33 5f 73 69 6d 75 6c 61 74 65 5f 64 65 76 69 63  3_simulate_devic
02d0: 65 20 2d 63 68 61 72 20 61 74 6f 6d 69 63 0a 73  e -char atomic.s
02e0: 71 6c 69 74 65 33 20 64 62 20 74 65 73 74 2e 64  qlite3 db test.d
02f0: 62 20 2d 76 66 73 20 64 65 76 73 79 6d 0a 0a 73  b -vfs devsym..s
0300: 65 74 20 50 52 45 50 20 7b 20 0a 20 20 50 52 41  et PREP { .  PRA
0310: 47 4d 41 20 70 61 67 65 5f 73 69 7a 65 20 3d 20  GMA page_size = 
0320: 31 30 32 34 3b 0a 20 20 43 52 45 41 54 45 20 54  1024;.  CREATE T
0330: 41 42 4c 45 20 61 62 63 28 61 2c 20 62 2c 20 63  ABLE abc(a, b, c
0340: 29 3b 0a 7d 0a 0a 64 6f 5f 6d 61 6c 6c 6f 63 5f  );.}..do_malloc_
0350: 74 65 73 74 20 6d 61 6c 6c 6f 63 44 2d 31 20 2d  test mallocD-1 -
0360: 73 71 6c 70 72 65 70 20 24 50 52 45 50 20 2d 73  sqlprep $PREP -s
0370: 71 6c 62 6f 64 79 20 7b 20 0a 20 20 49 4e 53 45  qlbody { .  INSE
0380: 52 54 20 49 4e 54 4f 20 61 62 63 20 56 41 4c 55  RT INTO abc VALU
0390: 45 53 28 31 2c 20 32 2c 20 33 29 3b 0a 7d 0a 0a  ES(1, 2, 3);.}..
03a0: 64 6f 5f 6d 61 6c 6c 6f 63 5f 74 65 73 74 20 6d  do_malloc_test m
03b0: 61 6c 6c 6f 63 44 2d 32 20 2d 73 71 6c 70 72 65  allocD-2 -sqlpre
03c0: 70 20 24 50 52 45 50 20 2d 73 71 6c 62 6f 64 79  p $PREP -sqlbody
03d0: 20 7b 0a 20 20 42 45 47 49 4e 3b 0a 20 20 49 4e   {.  BEGIN;.  IN
03e0: 53 45 52 54 20 49 4e 54 4f 20 61 62 63 20 56 41  SERT INTO abc VA
03f0: 4c 55 45 53 28 31 2c 20 32 2c 20 33 29 3b 0a 20  LUES(1, 2, 3);. 
0400: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 61 62 63   INSERT INTO abc
0410: 20 56 41 4c 55 45 53 28 34 2c 20 35 2c 20 36 29   VALUES(4, 5, 6)
0420: 3b 0a 20 20 52 4f 4c 4c 42 41 43 4b 3b 0a 7d 0a  ;.  ROLLBACK;.}.
0430: 0a 64 6f 5f 6d 61 6c 6c 6f 63 5f 74 65 73 74 20  .do_malloc_test 
0440: 6d 61 6c 6c 6f 63 44 2d 33 20 2d 73 71 6c 70 72  mallocD-3 -sqlpr
0450: 65 70 20 24 50 52 45 50 20 2d 73 71 6c 62 6f 64  ep $PREP -sqlbod
0460: 79 20 7b 0a 20 20 42 45 47 49 4e 3b 0a 20 20 49  y {.  BEGIN;.  I
0470: 4e 53 45 52 54 20 49 4e 54 4f 20 61 62 63 20 56  NSERT INTO abc V
0480: 41 4c 55 45 53 28 31 2c 20 32 2c 20 33 29 3b 0a  ALUES(1, 2, 3);.
0490: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 61 62    INSERT INTO ab
04a0: 63 20 56 41 4c 55 45 53 28 34 2c 20 35 2c 20 72  c VALUES(4, 5, r
04b0: 61 6e 64 73 74 72 28 31 35 30 30 2c 31 35 30 30  andstr(1500,1500
04c0: 29 29 3b 0a 20 20 43 4f 4d 4d 49 54 3b 0a 7d 0a  ));.  COMMIT;.}.
04d0: 0a 69 66 63 61 70 61 62 6c 65 20 61 74 74 61 63  .ifcapable attac
04e0: 68 20 7b 0a 20 20 64 6f 5f 6d 61 6c 6c 6f 63 5f  h {.  do_malloc_
04f0: 74 65 73 74 20 6d 61 6c 6c 6f 63 44 2d 34 20 2d  test mallocD-4 -
0500: 73 71 6c 70 72 65 70 20 24 50 52 45 50 20 2d 73  sqlprep $PREP -s
0510: 71 6c 62 6f 64 79 20 7b 0a 20 20 20 20 41 54 54  qlbody {.    ATT
0520: 41 43 48 20 27 74 65 73 74 32 2e 64 62 27 20 41  ACH 'test2.db' A
0530: 53 20 61 75 78 3b 0a 20 20 20 20 42 45 47 49 4e  S aux;.    BEGIN
0540: 3b 0a 20 20 20 20 43 52 45 41 54 45 20 54 41 42  ;.    CREATE TAB
0550: 4c 45 20 61 75 78 2e 64 65 66 28 64 2c 20 65 2c  LE aux.def(d, e,
0560: 20 66 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20   f);.    INSERT 
0570: 49 4e 54 4f 20 61 62 63 20 56 41 4c 55 45 53 28  INTO abc VALUES(
0580: 34 2c 20 35 2c 20 36 29 3b 0a 20 20 20 20 43 4f  4, 5, 6);.    CO
0590: 4d 4d 49 54 3b 0a 20 20 7d 0a 7d 0a 0a 73 71 6c  MMIT;.  }.}..sql
05a0: 69 74 65 33 5f 73 69 6d 75 6c 61 74 65 5f 64 65  ite3_simulate_de
05b0: 76 69 63 65 20 2d 63 68 61 72 20 7b 7d 0a 0a 66  vice -char {}..f
05c0: 69 6e 69 73 68 5f 74 65 73 74 0a                 inish_test.