/ Hex Artifact Content
Login

Artifact 46ef65f377e3937cfd1ba66e818309dab46f590d:


0000: 23 20 32 30 30 37 20 4d 61 79 20 30 34 0a 23 0a  # 2007 May 04.#.
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 20 54 68 69 73 20 66 69 6c 65 20  ***.# This file 
0170: 69 6d 70 6c 65 6d 65 6e 74 73 20 72 65 67 72 65  implements regre
0180: 73 73 69 6f 6e 20 74 65 73 74 73 20 66 6f 72 20  ssion tests for 
0190: 53 51 4c 69 74 65 20 6c 69 62 72 61 72 79 2e 20  SQLite library. 
01a0: 20 54 68 65 0a 23 20 66 6f 63 75 73 20 6f 66 20   The.# focus of 
01b0: 74 68 69 73 20 66 69 6c 65 20 69 73 20 74 65 73  this file is tes
01c0: 74 69 6e 67 20 74 68 65 20 69 6e 63 72 65 6d 65  ting the increme
01d0: 6e 74 61 6c 20 76 61 63 75 75 6d 20 66 65 61 74  ntal vacuum feat
01e0: 75 72 65 2e 0a 23 0a 23 20 24 49 64 3a 20 69 6e  ure..#.# $Id: in
01f0: 63 72 76 61 63 75 75 6d 32 2e 74 65 73 74 2c 76  crvacuum2.test,v
0200: 20 31 2e 35 20 32 30 30 38 2f 30 35 2f 30 37 20   1.5 2008/05/07 
0210: 30 37 3a 31 33 3a 31 36 20 64 61 6e 69 65 6c 6b  07:13:16 danielk
0220: 31 39 37 37 20 45 78 70 20 24 0a 0a 73 65 74 20  1977 Exp $..set 
0230: 74 65 73 74 64 69 72 20 5b 66 69 6c 65 20 64 69  testdir [file di
0240: 72 6e 61 6d 65 20 24 61 72 67 76 30 5d 0a 73 6f  rname $argv0].so
0250: 75 72 63 65 20 24 74 65 73 74 64 69 72 2f 74 65  urce $testdir/te
0260: 73 74 65 72 2e 74 63 6c 0a 0a 23 20 49 66 20 74  ster.tcl..# If t
0270: 68 69 73 20 62 75 69 6c 64 20 6f 66 20 74 68 65  his build of the
0280: 20 6c 69 62 72 61 72 79 20 64 6f 65 73 20 6e 6f   library does no
0290: 74 20 73 75 70 70 6f 72 74 20 61 75 74 6f 2d 76  t support auto-v
02a0: 61 63 75 75 6d 2c 20 6f 6d 69 74 20 74 68 69 73  acuum, omit this
02b0: 0a 23 20 77 68 6f 6c 65 20 66 69 6c 65 2e 0a 69  .# whole file..i
02c0: 66 63 61 70 61 62 6c 65 20 7b 21 61 75 74 6f 76  fcapable {!autov
02d0: 61 63 75 75 6d 20 7c 7c 20 21 70 72 61 67 6d 61  acuum || !pragma
02e0: 7d 20 7b 0a 20 20 66 69 6e 69 73 68 5f 74 65 73  } {.  finish_tes
02f0: 74 0a 20 20 72 65 74 75 72 6e 0a 7d 0a 0a 23 20  t.  return.}..# 
0300: 49 66 20 74 68 65 20 4f 4d 49 54 5f 49 4e 43 52  If the OMIT_INCR
0310: 42 4c 4f 42 20 73 79 6d 62 6f 6c 20 77 61 73 20  BLOB symbol was 
0320: 64 65 66 69 6e 65 64 20 61 74 20 63 6f 6d 70 69  defined at compi
0330: 6c 65 20 74 69 6d 65 2c 20 74 68 65 72 65 0a 23  le time, there.#
0340: 20 69 73 20 6e 6f 20 7a 65 72 6f 62 6c 6f 62 28   is no zeroblob(
0350: 29 20 66 75 6e 63 74 69 6f 6e 20 61 76 61 69 6c  ) function avail
0360: 61 62 6c 65 2e 20 53 6f 20 63 72 65 61 74 65 20  able. So create 
0370: 61 20 73 69 6d 69 6c 61 72 0a 23 20 66 75 6e 63  a similar.# func
0380: 74 69 6f 6e 20 68 65 72 65 20 75 73 69 6e 67 20  tion here using 
0390: 54 63 6c 2e 20 49 74 20 64 6f 65 73 6e 27 74 20  Tcl. It doesn't 
03a0: 72 65 74 75 72 6e 20 61 20 62 6c 6f 62 2c 20 62  return a blob, b
03b0: 75 74 20 69 74 20 72 65 74 75 72 6e 73 0a 23 20  ut it returns.# 
03c0: 64 61 74 61 20 6f 66 20 74 68 65 20 72 65 71 75  data of the requ
03d0: 69 72 65 64 20 6c 65 6e 67 74 68 2c 20 77 68 69  ired length, whi
03e0: 63 68 20 69 73 20 67 6f 6f 64 20 65 6e 6f 75 67  ch is good enoug
03f0: 68 20 66 6f 72 20 74 68 69 73 0a 23 20 74 65 73  h for this.# tes
0400: 74 20 66 69 6c 65 2e 0a 69 66 63 61 70 61 62 6c  t file..ifcapabl
0410: 65 20 21 69 6e 63 72 62 6c 6f 62 20 7b 0a 20 20  e !incrblob {.  
0420: 70 72 6f 63 20 7a 65 72 6f 62 6c 6f 62 20 7b 6e  proc zeroblob {n
0430: 7d 20 7b 20 73 74 72 69 6e 67 20 72 65 70 65 61  } { string repea
0440: 74 20 30 20 24 6e 20 7d 0a 20 20 64 62 20 66 75  t 0 $n }.  db fu
0450: 6e 63 74 69 6f 6e 20 7a 65 72 6f 62 6c 6f 62 20  nction zeroblob 
0460: 7a 65 72 6f 62 6c 6f 62 0a 7d 0a 0a 0a 23 20 43  zeroblob.}...# C
0470: 72 65 61 74 65 20 61 20 64 61 74 61 62 61 73 65  reate a database
0480: 20 69 6e 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20   in incremental 
0490: 76 61 63 75 75 6d 20 6d 6f 64 65 20 74 68 61 74  vacuum mode that
04a0: 20 68 61 73 20 6d 61 6e 79 0a 23 20 70 61 67 65   has many.# page
04b0: 73 20 6f 6e 20 74 68 65 20 66 72 65 65 6c 69 73  s on the freelis
04c0: 74 2e 0a 23 0a 64 6f 5f 74 65 73 74 20 69 6e 63  t..#.do_test inc
04d0: 72 76 61 63 75 75 6d 32 2d 31 2e 31 20 7b 0a 20  rvacuum2-1.1 {. 
04e0: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 50   execsql {.    P
04f0: 52 41 47 4d 41 20 70 61 67 65 5f 73 69 7a 65 3d  RAGMA page_size=
0500: 31 30 32 34 3b 0a 20 20 20 20 50 52 41 47 4d 41  1024;.    PRAGMA
0510: 20 61 75 74 6f 5f 76 61 63 75 75 6d 3d 69 6e 63   auto_vacuum=inc
0520: 72 65 6d 65 6e 74 61 6c 3b 0a 20 20 20 20 43 52  remental;.    CR
0530: 45 41 54 45 20 54 41 42 4c 45 20 74 31 28 78 29  EATE TABLE t1(x)
0540: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
0550: 4f 20 74 31 20 56 41 4c 55 45 53 28 7a 65 72 6f  O t1 VALUES(zero
0560: 62 6c 6f 62 28 33 30 30 30 30 29 29 3b 0a 20 20  blob(30000));.  
0570: 20 20 44 45 4c 45 54 45 20 46 52 4f 4d 20 74 31    DELETE FROM t1
0580: 3b 0a 20 20 7d 0a 20 20 66 69 6c 65 20 73 69 7a  ;.  }.  file siz
0590: 65 20 74 65 73 74 2e 64 62 0a 7d 20 7b 33 32 37  e test.db.} {327
05a0: 36 38 7d 0a 0a 23 20 56 61 63 75 75 6d 20 6f 66  68}..# Vacuum of
05b0: 66 20 61 20 73 69 6e 67 6c 65 20 70 61 67 65 2e  f a single page.
05c0: 0a 23 0a 64 6f 5f 74 65 73 74 20 69 6e 63 72 76  .#.do_test incrv
05d0: 61 63 75 75 6d 32 2d 31 2e 32 20 7b 0a 20 20 65  acuum2-1.2 {.  e
05e0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 50 52 41  xecsql {.    PRA
05f0: 47 4d 41 20 69 6e 63 72 65 6d 65 6e 74 61 6c 5f  GMA incremental_
0600: 76 61 63 75 75 6d 28 31 29 3b 0a 20 20 7d 0a 20  vacuum(1);.  }. 
0610: 20 66 69 6c 65 20 73 69 7a 65 20 74 65 73 74 2e   file size test.
0620: 64 62 0a 7d 20 7b 33 31 37 34 34 7d 0a 0a 23 20  db.} {31744}..# 
0630: 56 61 63 75 75 6d 20 6f 66 66 20 66 69 76 65 20  Vacuum off five 
0640: 70 61 67 65 73 0a 23 0a 64 6f 5f 74 65 73 74 20  pages.#.do_test 
0650: 69 6e 63 72 76 61 63 75 75 6d 32 2d 31 2e 33 20  incrvacuum2-1.3 
0660: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
0670: 20 20 50 52 41 47 4d 41 20 69 6e 63 72 65 6d 65    PRAGMA increme
0680: 6e 74 61 6c 5f 76 61 63 75 75 6d 28 35 29 3b 0a  ntal_vacuum(5);.
0690: 20 20 7d 0a 20 20 66 69 6c 65 20 73 69 7a 65 20    }.  file size 
06a0: 74 65 73 74 2e 64 62 0a 7d 20 7b 32 36 36 32 34  test.db.} {26624
06b0: 7d 0a 0a 23 20 56 61 63 75 75 6d 20 6f 66 66 20  }..# Vacuum off 
06c0: 61 6c 6c 20 74 68 65 20 72 65 73 74 0a 23 0a 64  all the rest.#.d
06d0: 6f 5f 74 65 73 74 20 69 6e 63 72 76 61 63 75 75  o_test incrvacuu
06e0: 6d 32 2d 31 2e 34 20 7b 0a 20 20 65 78 65 63 73  m2-1.4 {.  execs
06f0: 71 6c 20 7b 0a 20 20 20 20 50 52 41 47 4d 41 20  ql {.    PRAGMA 
0700: 69 6e 63 72 65 6d 65 6e 74 61 6c 5f 76 61 63 75  incremental_vacu
0710: 75 6d 28 31 30 30 30 29 3b 0a 20 20 7d 0a 20 20  um(1000);.  }.  
0720: 66 69 6c 65 20 73 69 7a 65 20 74 65 73 74 2e 64  file size test.d
0730: 62 0a 7d 20 7b 33 30 37 32 7d 0a 0a 23 20 4d 61  b.} {3072}..# Ma
0740: 6b 65 20 73 75 72 65 20 69 6e 63 72 65 6d 65 6e  ke sure incremen
0750: 74 61 6c 20 76 61 63 75 75 6d 20 77 6f 72 6b 73  tal vacuum works
0760: 20 6f 6e 20 61 74 74 61 63 68 65 64 20 64 61 74   on attached dat
0770: 61 62 61 73 65 73 2e 0a 23 0a 69 66 63 61 70 61  abases..#.ifcapa
0780: 62 6c 65 20 61 74 74 61 63 68 20 7b 0a 20 20 64  ble attach {.  d
0790: 6f 5f 74 65 73 74 20 69 6e 63 72 76 61 63 75 75  o_test incrvacuu
07a0: 6d 32 2d 32 2e 31 20 7b 0a 20 20 20 20 66 69 6c  m2-2.1 {.    fil
07b0: 65 20 64 65 6c 65 74 65 20 2d 66 6f 72 63 65 20  e delete -force 
07c0: 74 65 73 74 32 2e 64 62 20 74 65 73 74 32 2e 64  test2.db test2.d
07d0: 62 2d 6a 6f 75 72 6e 61 6c 0a 20 20 20 20 65 78  b-journal.    ex
07e0: 65 63 73 71 6c 20 7b 0a 20 20 20 20 20 20 41 54  ecsql {.      AT
07f0: 54 41 43 48 20 44 41 54 41 42 41 53 45 20 27 74  TACH DATABASE 't
0800: 65 73 74 32 2e 64 62 27 20 41 53 20 61 75 78 3b  est2.db' AS aux;
0810: 0a 20 20 20 20 20 20 50 52 41 47 4d 41 20 61 75  .      PRAGMA au
0820: 78 2e 61 75 74 6f 5f 76 61 63 75 75 6d 3d 69 6e  x.auto_vacuum=in
0830: 63 72 65 6d 65 6e 74 61 6c 3b 0a 20 20 20 20 20  cremental;.     
0840: 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 61 75   CREATE TABLE au
0850: 78 2e 74 32 28 78 29 3b 0a 20 20 20 20 20 20 49  x.t2(x);.      I
0860: 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41  NSERT INTO t2 VA
0870: 4c 55 45 53 28 7a 65 72 6f 62 6c 6f 62 28 33 30  LUES(zeroblob(30
0880: 30 30 30 29 29 3b 0a 20 20 20 20 20 20 49 4e 53  000));.      INS
0890: 45 52 54 20 49 4e 54 4f 20 74 31 20 53 45 4c 45  ERT INTO t1 SELE
08a0: 43 54 20 2a 20 46 52 4f 4d 20 74 32 3b 0a 20 20  CT * FROM t2;.  
08b0: 20 20 20 20 44 45 4c 45 54 45 20 46 52 4f 4d 20      DELETE FROM 
08c0: 74 32 3b 0a 20 20 20 20 20 20 44 45 4c 45 54 45  t2;.      DELETE
08d0: 20 46 52 4f 4d 20 74 31 3b 0a 20 20 20 20 7d 0a   FROM t1;.    }.
08e0: 20 20 20 20 6c 69 73 74 20 5b 66 69 6c 65 20 73      list [file s
08f0: 69 7a 65 20 74 65 73 74 2e 64 62 5d 20 5b 66 69  ize test.db] [fi
0900: 6c 65 20 73 69 7a 65 20 74 65 73 74 32 2e 64 62  le size test2.db
0910: 5d 0a 20 20 7d 20 7b 33 32 37 36 38 20 33 32 37  ].  } {32768 327
0920: 36 38 7d 0a 20 20 64 6f 5f 74 65 73 74 20 69 6e  68}.  do_test in
0930: 63 72 76 61 63 75 75 6d 32 2d 32 2e 32 20 7b 0a  crvacuum2-2.2 {.
0940: 20 20 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20      execsql {.  
0950: 20 20 20 20 50 52 41 47 4d 41 20 61 75 78 2e 69      PRAGMA aux.i
0960: 6e 63 72 65 6d 65 6e 74 61 6c 5f 76 61 63 75 75  ncremental_vacuu
0970: 6d 28 31 29 0a 20 20 20 20 7d 0a 20 20 20 20 6c  m(1).    }.    l
0980: 69 73 74 20 5b 66 69 6c 65 20 73 69 7a 65 20 74  ist [file size t
0990: 65 73 74 2e 64 62 5d 20 5b 66 69 6c 65 20 73 69  est.db] [file si
09a0: 7a 65 20 74 65 73 74 32 2e 64 62 5d 0a 20 20 7d  ze test2.db].  }
09b0: 20 7b 33 32 37 36 38 20 33 31 37 34 34 7d 0a 20   {32768 31744}. 
09c0: 20 64 6f 5f 74 65 73 74 20 69 6e 63 72 76 61 63   do_test incrvac
09d0: 75 75 6d 32 2d 32 2e 33 20 7b 0a 20 20 20 20 65  uum2-2.3 {.    e
09e0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 20 20 50  xecsql {.      P
09f0: 52 41 47 4d 41 20 61 75 78 2e 69 6e 63 72 65 6d  RAGMA aux.increm
0a00: 65 6e 74 61 6c 5f 76 61 63 75 75 6d 28 35 29 0a  ental_vacuum(5).
0a10: 20 20 20 20 7d 0a 20 20 20 20 6c 69 73 74 20 5b      }.    list [
0a20: 66 69 6c 65 20 73 69 7a 65 20 74 65 73 74 2e 64  file size test.d
0a30: 62 5d 20 5b 66 69 6c 65 20 73 69 7a 65 20 74 65  b] [file size te
0a40: 73 74 32 2e 64 62 5d 0a 20 20 7d 20 7b 33 32 37  st2.db].  } {327
0a50: 36 38 20 32 36 36 32 34 7d 0a 20 20 64 6f 5f 74  68 26624}.  do_t
0a60: 65 73 74 20 69 6e 63 72 76 61 63 75 75 6d 32 2d  est incrvacuum2-
0a70: 32 2e 34 20 7b 0a 20 20 20 20 65 78 65 63 73 71  2.4 {.    execsq
0a80: 6c 20 7b 0a 20 20 20 20 20 20 50 52 41 47 4d 41  l {.      PRAGMA
0a90: 20 6d 61 69 6e 2e 69 6e 63 72 65 6d 65 6e 74 61   main.incrementa
0aa0: 6c 5f 76 61 63 75 75 6d 28 35 29 0a 20 20 20 20  l_vacuum(5).    
0ab0: 7d 0a 20 20 20 20 6c 69 73 74 20 5b 66 69 6c 65  }.    list [file
0ac0: 20 73 69 7a 65 20 74 65 73 74 2e 64 62 5d 20 5b   size test.db] [
0ad0: 66 69 6c 65 20 73 69 7a 65 20 74 65 73 74 32 2e  file size test2.
0ae0: 64 62 5d 0a 20 20 7d 20 7b 32 37 36 34 38 20 32  db].  } {27648 2
0af0: 36 36 32 34 7d 0a 20 20 64 6f 5f 74 65 73 74 20  6624}.  do_test 
0b00: 69 6e 63 72 76 61 63 75 75 6d 32 2d 32 2e 35 20  incrvacuum2-2.5 
0b10: 7b 0a 20 20 20 20 65 78 65 63 73 71 6c 20 7b 0a  {.    execsql {.
0b20: 20 20 20 20 20 20 50 52 41 47 4d 41 20 61 75 78        PRAGMA aux
0b30: 2e 69 6e 63 72 65 6d 65 6e 74 61 6c 5f 76 61 63  .incremental_vac
0b40: 75 75 6d 0a 20 20 20 20 7d 0a 20 20 20 20 6c 69  uum.    }.    li
0b50: 73 74 20 5b 66 69 6c 65 20 73 69 7a 65 20 74 65  st [file size te
0b60: 73 74 2e 64 62 5d 20 5b 66 69 6c 65 20 73 69 7a  st.db] [file siz
0b70: 65 20 74 65 73 74 32 2e 64 62 5d 0a 20 20 7d 20  e test2.db].  } 
0b80: 7b 32 37 36 34 38 20 33 30 37 32 7d 0a 20 20 64  {27648 3072}.  d
0b90: 6f 5f 74 65 73 74 20 69 6e 63 72 76 61 63 75 75  o_test incrvacuu
0ba0: 6d 32 2d 32 2e 36 20 7b 0a 20 20 20 20 65 78 65  m2-2.6 {.    exe
0bb0: 63 73 71 6c 20 7b 0a 20 20 20 20 20 20 50 52 41  csql {.      PRA
0bc0: 47 4d 41 20 69 6e 63 72 65 6d 65 6e 74 61 6c 5f  GMA incremental_
0bd0: 76 61 63 75 75 6d 28 31 29 0a 20 20 20 20 7d 0a  vacuum(1).    }.
0be0: 20 20 20 20 6c 69 73 74 20 5b 66 69 6c 65 20 73      list [file s
0bf0: 69 7a 65 20 74 65 73 74 2e 64 62 5d 20 5b 66 69  ize test.db] [fi
0c00: 6c 65 20 73 69 7a 65 20 74 65 73 74 32 2e 64 62  le size test2.db
0c10: 5d 0a 20 20 7d 20 7b 32 36 36 32 34 20 33 30 37  ].  } {26624 307
0c20: 32 7d 0a 7d 0a 0a 64 6f 5f 74 65 73 74 20 69 6e  2}.}..do_test in
0c30: 63 72 76 61 63 75 75 6d 32 2d 33 2e 31 20 7b 0a  crvacuum2-3.1 {.
0c40: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
0c50: 50 52 41 47 4d 41 20 61 75 74 6f 5f 76 61 63 75  PRAGMA auto_vacu
0c60: 75 6d 20 3d 20 27 66 75 6c 6c 27 3b 0a 20 20 20  um = 'full';.   
0c70: 20 42 45 47 49 4e 3b 0a 20 20 20 20 43 52 45 41   BEGIN;.    CREA
0c80: 54 45 20 54 41 42 4c 45 20 61 62 63 28 61 29 3b  TE TABLE abc(a);
0c90: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
0ca0: 20 61 62 63 20 56 41 4c 55 45 53 28 72 61 6e 64   abc VALUES(rand
0cb0: 73 74 72 28 31 35 30 30 2c 31 35 30 30 29 29 3b  str(1500,1500));
0cc0: 0a 20 20 20 20 43 4f 4d 4d 49 54 3b 0a 20 20 7d  .    COMMIT;.  }
0cd0: 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20 69 6e  .} {}.do_test in
0ce0: 63 72 76 61 63 75 75 6d 32 2d 33 2e 32 20 7b 0a  crvacuum2-3.2 {.
0cf0: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
0d00: 42 45 47 49 4e 3b 0a 20 20 20 20 44 45 4c 45 54  BEGIN;.    DELET
0d10: 45 20 46 52 4f 4d 20 61 62 63 3b 0a 20 20 20 20  E FROM abc;.    
0d20: 50 52 41 47 4d 41 20 69 6e 63 72 65 6d 65 6e 74  PRAGMA increment
0d30: 61 6c 5f 76 61 63 75 75 6d 3b 0a 20 20 20 20 43  al_vacuum;.    C
0d40: 4f 4d 4d 49 54 3b 0a 20 20 7d 0a 7d 20 7b 7d 0a  OMMIT;.  }.} {}.
0d50: 0a 69 6e 74 65 67 72 69 74 79 5f 63 68 65 63 6b  .integrity_check
0d60: 20 69 6e 63 72 65 6d 65 6e 74 61 6c 32 2d 33 2e   incremental2-3.
0d70: 33 0a 0a 66 69 6e 69 73 68 5f 74 65 73 74 0a     3..finish_test.