SQLite4
Hex Artifact Content
Not logged in

Artifact 9263d3dbfb8263589cf6cec6d36d18ae59fc90cf:


0000: 0a 0a 4f 72 67 61 6e 69 7a 61 74 69 6f 6e 20 6f  ..Organization o
0010: 66 20 74 65 73 74 20 63 61 73 65 20 66 69 6c 65  f test case file
0020: 73 3a 0a 0a 20 20 6c 73 6d 74 65 73 74 31 2e 63  s:..  lsmtest1.c
0030: 3a 20 44 61 74 61 20 74 65 73 74 73 2e 20 54 65  : Data tests. Te
0040: 73 74 73 20 74 68 61 74 20 70 65 72 66 6f 72 6d  sts that perform
0050: 20 6d 61 6e 79 20 69 6e 73 65 72 74 73 20 61 6e   many inserts an
0060: 64 20 64 65 6c 65 74 65 73 20 6f 6e 20 61 20 0a  d deletes on a .
0070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61                da
0080: 74 61 62 61 73 65 20 66 69 6c 65 2c 20 74 68 65  tabase file, the
0090: 6e 20 76 65 72 69 66 79 20 74 68 61 74 20 74 68  n verify that th
00a0: 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68  e contents of th
00b0: 65 20 64 61 74 61 62 61 73 65 20 63 61 6e 0a 20  e database can. 
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 20               be 
00d0: 71 75 65 72 69 65 64 2e 0a 0a 20 20 6c 73 6d 74  queried...  lsmt
00e0: 65 73 74 32 2e 63 3a 20 43 72 61 73 68 20 74 65  est2.c: Crash te
00f0: 73 74 73 2e 20 54 65 73 74 73 20 74 68 61 74 20  sts. Tests that 
0100: 61 74 74 65 6d 70 74 20 74 6f 20 76 65 72 69 66  attempt to verif
0110: 79 20 74 68 61 74 20 74 68 65 20 64 61 74 61 62  y that the datab
0120: 61 73 65 20 0a 20 20 20 20 20 20 20 20 20 20 20  ase .           
0130: 20 20 20 72 65 63 6f 76 65 72 73 20 63 6f 72 72     recovers corr
0140: 65 63 74 6c 79 20 66 6f 6c 6c 6f 77 69 6e 67 20  ectly following 
0150: 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 6f  an application o
0160: 72 20 73 79 73 74 65 6d 20 63 72 61 73 68 2e 0a  r system crash..
0170: 0a 20 20 6c 73 6d 74 65 73 74 33 2e 63 3a 20 52  .  lsmtest3.c: R
0180: 6f 6c 6c 62 61 63 6b 20 74 65 73 74 73 2e 20 54  ollback tests. T
0190: 65 73 74 73 20 74 68 61 74 20 66 6f 63 75 73 20  ests that focus 
01a0: 6f 6e 20 74 68 65 20 65 78 70 6c 69 63 69 74 20  on the explicit 
01b0: 72 6f 6c 6c 62 61 63 6b 20 6f 66 0a 20 20 20 20  rollback of.    
01c0: 20 20 20 20 20 20 20 20 20 20 74 72 61 6e 73 61            transa
01d0: 63 74 69 6f 6e 73 20 61 6e 64 20 73 75 62 2d 74  ctions and sub-t
01e0: 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a 20 20  ransactions...  
01f0: 6c 73 6d 74 65 73 74 34 2e 63 3a 20 4d 75 6c 74  lsmtest4.c: Mult
0200: 69 2d 63 6c 69 65 6e 74 20 74 65 73 74 73 2e 0a  i-client tests..
0210: 0a 20 20 6c 73 6d 74 65 73 74 35 2e 63 3a 20 4d  .  lsmtest5.c: M
0220: 75 6c 74 69 2d 63 6c 69 65 6e 74 20 74 65 73 74  ulti-client test
0230: 73 20 77 69 74 68 20 61 20 64 69 66 66 65 72 65  s with a differe
0240: 6e 74 20 74 68 72 65 61 64 20 66 6f 72 20 65 61  nt thread for ea
0250: 63 68 20 63 6c 69 65 6e 74 2e 0a 0a 20 20 6c 73  ch client...  ls
0260: 6d 74 65 73 74 36 2e 63 3a 20 4f 4f 4d 20 69 6e  mtest6.c: OOM in
0270: 6a 65 63 74 69 6f 6e 20 74 65 73 74 73 2e 0a 0a  jection tests...
0280: 20 20 6c 73 6d 74 65 73 74 37 2e 63 3a 20 41 50    lsmtest7.c: AP
0290: 49 20 74 65 73 74 73 2e 0a 0a 20 20 6c 73 6d 74  I tests...  lsmt
02a0: 65 73 74 38 2e 63 3a 20 57 72 69 74 65 72 20 63  est8.c: Writer c
02b0: 72 61 73 68 20 74 65 73 74 73 2e 20 54 65 73 74  rash tests. Test
02c0: 73 20 69 6e 20 74 68 69 73 20 66 69 6c 65 20 61  s in this file a
02d0: 74 74 65 6d 70 74 20 74 6f 20 76 65 72 69 66 79  ttempt to verify
02e0: 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20   that.          
02f0: 20 20 20 20 74 68 65 20 73 79 73 74 65 6d 20 72      the system r
0300: 65 63 6f 76 65 72 73 20 61 6e 64 20 6f 74 68 65  ecovers and othe
0310: 72 20 63 6c 69 65 6e 74 73 20 70 72 6f 63 65 65  r clients procee
0320: 64 20 75 6e 61 66 66 65 63 74 65 64 20 69 66 0a  d unaffected if.
0330: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 20                a 
0340: 70 72 6f 63 65 73 73 20 66 61 69 6c 73 20 69 6e  process fails in
0350: 20 74 68 65 20 6d 69 64 64 6c 65 20 6f 66 20 61   the middle of a
0360: 20 77 72 69 74 65 20 74 72 61 6e 73 61 63 74 69   write transacti
0370: 6f 6e 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 20  on...           
0380: 20 20 20 54 68 65 20 64 69 66 66 65 72 65 6e 63     The differenc
0390: 65 20 66 72 6f 6d 20 6c 73 6d 74 65 73 74 32 2e  e from lsmtest2.
03a0: 63 20 69 73 20 74 68 61 74 20 74 68 69 73 20 66  c is that this f
03b0: 69 6c 65 20 74 65 73 74 73 0a 20 20 20 20 20 20  ile tests.      
03c0: 20 20 20 20 20 20 20 20 6c 69 76 65 2d 72 65 63          live-rec
03d0: 6f 76 65 72 79 20 28 72 65 63 6f 76 65 72 79 20  overy (recovery 
03e0: 66 72 6f 6d 20 61 20 66 61 69 6c 75 72 65 20 74  from a failure t
03f0: 68 61 74 20 6f 63 63 75 72 73 20 77 68 69 6c 65  hat occurs while
0400: 20 6f 74 68 65 72 0a 20 20 20 20 20 20 20 20 20   other.         
0410: 20 20 20 20 20 63 6c 69 65 6e 74 73 20 61 72 65       clients are
0420: 20 73 74 69 6c 6c 20 72 75 6e 6e 69 6e 67 29 20   still running) 
0430: 77 68 65 72 65 61 73 20 6c 73 6d 74 65 73 74 32  whereas lsmtest2
0440: 2e 63 20 74 65 73 74 73 20 72 65 63 6f 76 65 72  .c tests recover
0450: 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  y.              
0460: 66 72 6f 6d 20 61 20 73 79 73 74 65 6d 20 6f 72  from a system or
0470: 20 70 6f 77 65 72 20 66 61 69 6c 75 72 65 2e 0a   power failure..
0480: 0a 20 20 6c 73 6d 74 65 73 74 39 2e 63 3a 20 4d  .  lsmtest9.c: M
0490: 6f 72 65 20 64 61 74 61 20 74 65 73 74 73 2e 20  ore data tests. 
04a0: 54 68 65 73 65 20 66 6f 63 75 73 20 6f 6e 20 74  These focus on t
04b0: 65 73 74 69 6e 67 20 74 68 61 74 20 63 61 6c 6c  esting that call
04c0: 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20  ing.            
04d0: 20 20 6c 73 6d 5f 77 6f 72 6b 28 6e 4d 65 72 67    lsm_work(nMerg
04e0: 65 3d 31 29 20 74 6f 20 63 6f 6d 70 61 63 74 20  e=1) to compact 
04f0: 74 68 65 20 64 61 74 61 62 61 73 65 20 64 6f 65  the database doe
0500: 73 20 6e 6f 74 20 63 6f 72 72 75 70 74 20 69 74  s not corrupt it
0510: 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
0520: 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 20  In other words, 
0530: 74 68 61 74 20 64 61 74 61 62 61 73 65 73 20 63  that databases c
0540: 6f 6e 74 61 69 6e 69 6e 67 20 62 6c 6f 63 6b 2d  ontaining block-
0550: 72 65 64 69 72 65 63 74 73 0a 20 20 20 20 20 20  redirects.      
0560: 20 20 20 20 20 20 20 20 63 61 6e 20 62 65 20 72          can be r
0570: 65 61 64 20 61 6e 64 20 77 72 69 74 74 65 6e 2e  ead and written.
0580: 0a 0a 0a 0a 0a 0a                                ......