/ Hex Artifact Content
Login

Artifact 4415dfe36c48785f751e16e32c20b077c28ae504:


0000: 2f 2a 0a 2a 2a 20 43 6f 6e 66 69 67 75 72 65 20  /*.** Configure 
0010: 66 69 76 65 20 74 61 73 6b 73 20 69 6e 20 64 69  five tasks in di
0020: 66 66 65 72 65 6e 74 20 77 61 79 73 2c 20 74 68  fferent ways, th
0030: 65 6e 20 72 75 6e 20 74 65 73 74 73 2e 0a 2a 2f  en run tests..*/
0040: 0a 50 52 41 47 4d 41 20 70 61 67 65 5f 73 69 7a  .PRAGMA page_siz
0050: 65 3d 35 31 32 3b 0a 2d 2d 74 61 73 6b 20 31 0a  e=512;.--task 1.
0060: 20 20 50 52 41 47 4d 41 20 6d 6d 61 70 5f 73 69    PRAGMA mmap_si
0070: 7a 65 3d 30 3b 0a 2d 2d 65 6e 64 0a 2d 2d 74 61  ze=0;.--end.--ta
0080: 73 6b 20 32 0a 20 20 50 52 41 47 4d 41 20 6d 6d  sk 2.  PRAGMA mm
0090: 61 70 5f 73 69 7a 65 3d 32 38 36 37 32 3b 0a 2d  ap_size=28672;.-
00a0: 2d 65 6e 64 0a 2d 2d 74 61 73 6b 20 33 0a 20 20  -end.--task 3.  
00b0: 50 52 41 47 4d 41 20 6d 6d 61 70 5f 73 69 7a 65  PRAGMA mmap_size
00c0: 3d 38 31 39 32 3b 0a 2d 2d 65 6e 64 0a 2d 2d 74  =8192;.--end.--t
00d0: 61 73 6b 20 34 0a 20 20 50 52 41 47 4d 41 20 6d  ask 4.  PRAGMA m
00e0: 6d 61 70 5f 73 69 7a 65 3d 36 35 35 33 36 3b 0a  map_size=65536;.
00f0: 2d 2d 65 6e 64 0a 2d 2d 74 61 73 6b 20 35 0a 20  --end.--task 5. 
0100: 20 50 52 41 47 4d 41 20 6d 6d 61 70 5f 73 69 7a   PRAGMA mmap_siz
0110: 65 3d 32 36 38 34 33 35 34 35 36 3b 0a 2d 2d 65  e=268435456;.--e
0120: 6e 64 0a 2d 2d 73 6f 75 72 63 65 20 6d 75 6c 74  nd.--source mult
0130: 69 77 72 69 74 65 30 31 2e 74 65 73 74 0a 2d 2d  iwrite01.test.--
0140: 73 6f 75 72 63 65 20 63 72 61 73 68 30 32 2e 73  source crash02.s
0150: 75 62 74 65 73 74 0a 50 52 41 47 4d 41 20 70 61  ubtest.PRAGMA pa
0160: 67 65 5f 73 69 7a 65 3d 31 30 32 34 3b 0a 56 41  ge_size=1024;.VA
0170: 43 55 55 4d 3b 0a 43 52 45 41 54 45 20 54 41 42  CUUM;.CREATE TAB
0180: 4c 45 20 70 67 73 7a 28 74 61 73 6b 69 64 2c 20  LE pgsz(taskid, 
0190: 73 7a 20 49 4e 54 45 47 45 52 29 3b 0a 2d 2d 74  sz INTEGER);.--t
01a0: 61 73 6b 20 31 0a 20 20 49 4e 53 45 52 54 20 49  ask 1.  INSERT I
01b0: 4e 54 4f 20 70 67 73 7a 20 56 41 4c 55 45 53 28  NTO pgsz VALUES(
01c0: 31 2c 20 65 76 61 6c 28 27 50 52 41 47 4d 41 20  1, eval('PRAGMA 
01d0: 70 61 67 65 5f 73 69 7a 65 27 29 29 3b 0a 2d 2d  page_size'));.--
01e0: 65 6e 64 0a 2d 2d 74 61 73 6b 20 32 0a 20 20 49  end.--task 2.  I
01f0: 4e 53 45 52 54 20 49 4e 54 4f 20 70 67 73 7a 20  NSERT INTO pgsz 
0200: 56 41 4c 55 45 53 28 32 2c 20 65 76 61 6c 28 27  VALUES(2, eval('
0210: 50 52 41 47 4d 41 20 70 61 67 65 5f 73 69 7a 65  PRAGMA page_size
0220: 27 29 29 3b 0a 2d 2d 65 6e 64 0a 2d 2d 74 61 73  '));.--end.--tas
0230: 6b 20 33 0a 20 20 49 4e 53 45 52 54 20 49 4e 54  k 3.  INSERT INT
0240: 4f 20 70 67 73 7a 20 56 41 4c 55 45 53 28 33 2c  O pgsz VALUES(3,
0250: 20 65 76 61 6c 28 27 50 52 41 47 4d 41 20 70 61   eval('PRAGMA pa
0260: 67 65 5f 73 69 7a 65 27 29 29 3b 0a 2d 2d 65 6e  ge_size'));.--en
0270: 64 0a 2d 2d 74 61 73 6b 20 34 0a 20 20 49 4e 53  d.--task 4.  INS
0280: 45 52 54 20 49 4e 54 4f 20 70 67 73 7a 20 56 41  ERT INTO pgsz VA
0290: 4c 55 45 53 28 34 2c 20 65 76 61 6c 28 27 50 52  LUES(4, eval('PR
02a0: 41 47 4d 41 20 70 61 67 65 5f 73 69 7a 65 27 29  AGMA page_size')
02b0: 29 3b 0a 2d 2d 65 6e 64 0a 2d 2d 74 61 73 6b 20  );.--end.--task 
02c0: 35 0a 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20  5.  INSERT INTO 
02d0: 70 67 73 7a 20 56 41 4c 55 45 53 28 35 2c 20 65  pgsz VALUES(5, e
02e0: 76 61 6c 28 27 50 52 41 47 4d 41 20 70 61 67 65  val('PRAGMA page
02f0: 5f 73 69 7a 65 27 29 29 3b 0a 2d 2d 65 6e 64 0a  _size'));.--end.
0300: 2d 2d 73 6f 75 72 63 65 20 6d 75 6c 74 69 77 72  --source multiwr
0310: 69 74 65 30 31 2e 74 65 73 74 0a 2d 2d 73 6f 75  ite01.test.--sou
0320: 72 63 65 20 63 72 61 73 68 30 32 2e 73 75 62 74  rce crash02.subt
0330: 65 73 74 0a 2d 2d 77 61 69 74 20 61 6c 6c 0a 53  est.--wait all.S
0340: 45 4c 45 43 54 20 73 7a 20 46 52 4f 4d 20 70 67  ELECT sz FROM pg
0350: 73 7a 3b 0a 2d 2d 6d 61 74 63 68 20 31 30 32 34  sz;.--match 1024
0360: 20 31 30 32 34 20 31 30 32 34 20 31 30 32 34 20   1024 1024 1024 
0370: 31 30 32 34 0a 50 52 41 47 4d 41 20 70 61 67 65  1024.PRAGMA page
0380: 5f 73 69 7a 65 3d 32 30 34 38 3b 0a 56 41 43 55  _size=2048;.VACU
0390: 55 4d 3b 0a 44 45 4c 45 54 45 20 46 52 4f 4d 20  UM;.DELETE FROM 
03a0: 70 67 73 7a 3b 0a 2d 2d 74 61 73 6b 20 31 0a 20  pgsz;.--task 1. 
03b0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 67 73   INSERT INTO pgs
03c0: 7a 20 56 41 4c 55 45 53 28 31 2c 20 65 76 61 6c  z VALUES(1, eval
03d0: 28 27 50 52 41 47 4d 41 20 70 61 67 65 5f 73 69  ('PRAGMA page_si
03e0: 7a 65 27 29 29 3b 0a 2d 2d 65 6e 64 0a 2d 2d 74  ze'));.--end.--t
03f0: 61 73 6b 20 32 0a 20 20 49 4e 53 45 52 54 20 49  ask 2.  INSERT I
0400: 4e 54 4f 20 70 67 73 7a 20 56 41 4c 55 45 53 28  NTO pgsz VALUES(
0410: 32 2c 20 65 76 61 6c 28 27 50 52 41 47 4d 41 20  2, eval('PRAGMA 
0420: 70 61 67 65 5f 73 69 7a 65 27 29 29 3b 0a 2d 2d  page_size'));.--
0430: 65 6e 64 0a 2d 2d 74 61 73 6b 20 33 0a 20 20 49  end.--task 3.  I
0440: 4e 53 45 52 54 20 49 4e 54 4f 20 70 67 73 7a 20  NSERT INTO pgsz 
0450: 56 41 4c 55 45 53 28 33 2c 20 65 76 61 6c 28 27  VALUES(3, eval('
0460: 50 52 41 47 4d 41 20 70 61 67 65 5f 73 69 7a 65  PRAGMA page_size
0470: 27 29 29 3b 0a 2d 2d 65 6e 64 0a 2d 2d 74 61 73  '));.--end.--tas
0480: 6b 20 34 0a 20 20 49 4e 53 45 52 54 20 49 4e 54  k 4.  INSERT INT
0490: 4f 20 70 67 73 7a 20 56 41 4c 55 45 53 28 34 2c  O pgsz VALUES(4,
04a0: 20 65 76 61 6c 28 27 50 52 41 47 4d 41 20 70 61   eval('PRAGMA pa
04b0: 67 65 5f 73 69 7a 65 27 29 29 3b 0a 2d 2d 65 6e  ge_size'));.--en
04c0: 64 0a 2d 2d 74 61 73 6b 20 35 0a 20 20 49 4e 53  d.--task 5.  INS
04d0: 45 52 54 20 49 4e 54 4f 20 70 67 73 7a 20 56 41  ERT INTO pgsz VA
04e0: 4c 55 45 53 28 35 2c 20 65 76 61 6c 28 27 50 52  LUES(5, eval('PR
04f0: 41 47 4d 41 20 70 61 67 65 5f 73 69 7a 65 27 29  AGMA page_size')
0500: 29 3b 0a 2d 2d 65 6e 64 0a 2d 2d 73 6f 75 72 63  );.--end.--sourc
0510: 65 20 6d 75 6c 74 69 77 72 69 74 65 30 31 2e 74  e multiwrite01.t
0520: 65 73 74 0a 2d 2d 73 6f 75 72 63 65 20 63 72 61  est.--source cra
0530: 73 68 30 32 2e 73 75 62 74 65 73 74 0a 2d 2d 77  sh02.subtest.--w
0540: 61 69 74 20 61 6c 6c 0a 53 45 4c 45 43 54 20 73  ait all.SELECT s
0550: 7a 20 46 52 4f 4d 20 70 67 73 7a 3b 0a 2d 2d 6d  z FROM pgsz;.--m
0560: 61 74 63 68 20 32 30 34 38 20 32 30 34 38 20 32  atch 2048 2048 2
0570: 30 34 38 20 32 30 34 38 20 32 30 34 38 0a 50 52  048 2048 2048.PR
0580: 41 47 4d 41 20 70 61 67 65 5f 73 69 7a 65 3d 38  AGMA page_size=8
0590: 31 39 32 3b 0a 56 41 43 55 55 4d 3b 0a 44 45 4c  192;.VACUUM;.DEL
05a0: 45 54 45 20 46 52 4f 4d 20 70 67 73 7a 3b 0a 2d  ETE FROM pgsz;.-
05b0: 2d 74 61 73 6b 20 31 0a 20 20 49 4e 53 45 52 54  -task 1.  INSERT
05c0: 20 49 4e 54 4f 20 70 67 73 7a 20 56 41 4c 55 45   INTO pgsz VALUE
05d0: 53 28 31 2c 20 65 76 61 6c 28 27 50 52 41 47 4d  S(1, eval('PRAGM
05e0: 41 20 70 61 67 65 5f 73 69 7a 65 27 29 29 3b 0a  A page_size'));.
05f0: 2d 2d 65 6e 64 0a 2d 2d 74 61 73 6b 20 32 0a 20  --end.--task 2. 
0600: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 67 73   INSERT INTO pgs
0610: 7a 20 56 41 4c 55 45 53 28 32 2c 20 65 76 61 6c  z VALUES(2, eval
0620: 28 27 50 52 41 47 4d 41 20 70 61 67 65 5f 73 69  ('PRAGMA page_si
0630: 7a 65 27 29 29 3b 0a 2d 2d 65 6e 64 0a 2d 2d 74  ze'));.--end.--t
0640: 61 73 6b 20 33 0a 20 20 49 4e 53 45 52 54 20 49  ask 3.  INSERT I
0650: 4e 54 4f 20 70 67 73 7a 20 56 41 4c 55 45 53 28  NTO pgsz VALUES(
0660: 33 2c 20 65 76 61 6c 28 27 50 52 41 47 4d 41 20  3, eval('PRAGMA 
0670: 70 61 67 65 5f 73 69 7a 65 27 29 29 3b 0a 2d 2d  page_size'));.--
0680: 65 6e 64 0a 2d 2d 74 61 73 6b 20 34 0a 20 20 49  end.--task 4.  I
0690: 4e 53 45 52 54 20 49 4e 54 4f 20 70 67 73 7a 20  NSERT INTO pgsz 
06a0: 56 41 4c 55 45 53 28 34 2c 20 65 76 61 6c 28 27  VALUES(4, eval('
06b0: 50 52 41 47 4d 41 20 70 61 67 65 5f 73 69 7a 65  PRAGMA page_size
06c0: 27 29 29 3b 0a 2d 2d 65 6e 64 0a 2d 2d 74 61 73  '));.--end.--tas
06d0: 6b 20 35 0a 20 20 49 4e 53 45 52 54 20 49 4e 54  k 5.  INSERT INT
06e0: 4f 20 70 67 73 7a 20 56 41 4c 55 45 53 28 35 2c  O pgsz VALUES(5,
06f0: 20 65 76 61 6c 28 27 50 52 41 47 4d 41 20 70 61   eval('PRAGMA pa
0700: 67 65 5f 73 69 7a 65 27 29 29 3b 0a 2d 2d 65 6e  ge_size'));.--en
0710: 64 0a 2d 2d 73 6f 75 72 63 65 20 6d 75 6c 74 69  d.--source multi
0720: 77 72 69 74 65 30 31 2e 74 65 73 74 0a 2d 2d 73  write01.test.--s
0730: 6f 75 72 63 65 20 63 72 61 73 68 30 32 2e 73 75  ource crash02.su
0740: 62 74 65 73 74 0a 2d 2d 77 61 69 74 20 61 6c 6c  btest.--wait all
0750: 0a 53 45 4c 45 43 54 20 73 7a 20 46 52 4f 4d 20  .SELECT sz FROM 
0760: 70 67 73 7a 3b 0a 2d 2d 6d 61 74 63 68 20 38 31  pgsz;.--match 81
0770: 39 32 20 38 31 39 32 20 38 31 39 32 20 38 31 39  92 8192 8192 819
0780: 32 20 38 31 39 32 0a 50 52 41 47 4d 41 20 70 61  2 8192.PRAGMA pa
0790: 67 65 5f 73 69 7a 65 3d 31 36 33 38 34 3b 0a 56  ge_size=16384;.V
07a0: 41 43 55 55 4d 3b 0a 44 45 4c 45 54 45 20 46 52  ACUUM;.DELETE FR
07b0: 4f 4d 20 70 67 73 7a 3b 0a 2d 2d 74 61 73 6b 20  OM pgsz;.--task 
07c0: 31 0a 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20  1.  INSERT INTO 
07d0: 70 67 73 7a 20 56 41 4c 55 45 53 28 31 2c 20 65  pgsz VALUES(1, e
07e0: 76 61 6c 28 27 50 52 41 47 4d 41 20 70 61 67 65  val('PRAGMA page
07f0: 5f 73 69 7a 65 27 29 29 3b 0a 2d 2d 65 6e 64 0a  _size'));.--end.
0800: 2d 2d 74 61 73 6b 20 32 0a 20 20 49 4e 53 45 52  --task 2.  INSER
0810: 54 20 49 4e 54 4f 20 70 67 73 7a 20 56 41 4c 55  T INTO pgsz VALU
0820: 45 53 28 32 2c 20 65 76 61 6c 28 27 50 52 41 47  ES(2, eval('PRAG
0830: 4d 41 20 70 61 67 65 5f 73 69 7a 65 27 29 29 3b  MA page_size'));
0840: 0a 2d 2d 65 6e 64 0a 2d 2d 74 61 73 6b 20 33 0a  .--end.--task 3.
0850: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 67    INSERT INTO pg
0860: 73 7a 20 56 41 4c 55 45 53 28 33 2c 20 65 76 61  sz VALUES(3, eva
0870: 6c 28 27 50 52 41 47 4d 41 20 70 61 67 65 5f 73  l('PRAGMA page_s
0880: 69 7a 65 27 29 29 3b 0a 2d 2d 65 6e 64 0a 2d 2d  ize'));.--end.--
0890: 74 61 73 6b 20 34 0a 20 20 49 4e 53 45 52 54 20  task 4.  INSERT 
08a0: 49 4e 54 4f 20 70 67 73 7a 20 56 41 4c 55 45 53  INTO pgsz VALUES
08b0: 28 34 2c 20 65 76 61 6c 28 27 50 52 41 47 4d 41  (4, eval('PRAGMA
08c0: 20 70 61 67 65 5f 73 69 7a 65 27 29 29 3b 0a 2d   page_size'));.-
08d0: 2d 65 6e 64 0a 2d 2d 74 61 73 6b 20 35 0a 20 20  -end.--task 5.  
08e0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 67 73 7a  INSERT INTO pgsz
08f0: 20 56 41 4c 55 45 53 28 35 2c 20 65 76 61 6c 28   VALUES(5, eval(
0900: 27 50 52 41 47 4d 41 20 70 61 67 65 5f 73 69 7a  'PRAGMA page_siz
0910: 65 27 29 29 3b 0a 2d 2d 65 6e 64 0a 2d 2d 73 6f  e'));.--end.--so
0920: 75 72 63 65 20 6d 75 6c 74 69 77 72 69 74 65 30  urce multiwrite0
0930: 31 2e 74 65 73 74 0a 2d 2d 73 6f 75 72 63 65 20  1.test.--source 
0940: 63 72 61 73 68 30 32 2e 73 75 62 74 65 73 74 0a  crash02.subtest.
0950: 2d 2d 77 61 69 74 20 61 6c 6c 0a 53 45 4c 45 43  --wait all.SELEC
0960: 54 20 73 7a 20 46 52 4f 4d 20 70 67 73 7a 3b 0a  T sz FROM pgsz;.
0970: 2d 2d 6d 61 74 63 68 20 31 36 33 38 34 20 31 36  --match 16384 16
0980: 33 38 34 20 31 36 33 38 34 20 31 36 33 38 34 20  384 16384 16384 
0990: 31 36 33 38 34 0a 50 52 41 47 4d 41 20 61 75 74  16384.PRAGMA aut
09a0: 6f 5f 76 61 63 75 75 6d 3d 46 55 4c 4c 3b 0a 56  o_vacuum=FULL;.V
09b0: 41 43 55 55 4d 3b 0a 2d 2d 73 6f 75 72 63 65 20  ACUUM;.--source 
09c0: 6d 75 6c 74 69 77 72 69 74 65 30 31 2e 74 65 73  multiwrite01.tes
09d0: 74 0a 2d 2d 73 6f 75 72 63 65 20 63 72 61 73 68  t.--source crash
09e0: 30 32 2e 73 75 62 74 65 73 74 0a 2d 2d 77 61 69  02.subtest.--wai
09f0: 74 20 61 6c 6c 0a 50 52 41 47 4d 41 20 61 75 74  t all.PRAGMA aut
0a00: 6f 5f 76 61 63 75 75 6d 3d 46 55 4c 4c 3b 0a 50  o_vacuum=FULL;.P
0a10: 52 41 47 4d 41 20 70 61 67 65 5f 73 69 7a 65 3d  RAGMA page_size=
0a20: 35 31 32 3b 0a 56 41 43 55 55 4d 3b 0a 2d 2d 73  512;.VACUUM;.--s
0a30: 6f 75 72 63 65 20 6d 75 6c 74 69 77 72 69 74 65  ource multiwrite
0a40: 30 31 2e 74 65 73 74 0a 2d 2d 73 6f 75 72 63 65  01.test.--source
0a50: 20 63 72 61 73 68 30 32 2e 73 75 62 74 65 73 74   crash02.subtest
0a60: 0a                                               .