xref: /sqlite-3.40.0/mptest/crash02.subtest (revision 4c5298f3)
1/*
2** This script is called from crash01.test and config02.test and perhaps other
3** script.  After the database file has been set up, make a big rollback
4** journal in client 1, then crash client 1.
5** Then in the other clients, do an integrity check.
6*/
7--task 1 leave-hot-journal
8  --sleep 5
9  --finish
10  PRAGMA cache_size=10;
11  BEGIN;
12  UPDATE t1 SET b=randomblob(20000);
13  UPDATE t2 SET b=randomblob(20000);
14  UPDATE t3 SET b=randomblob(20000);
15  UPDATE t4 SET b=randomblob(20000);
16  UPDATE t5 SET b=randomblob(20000);
17  UPDATE t1 SET b=NULL;
18  UPDATE t2 SET b=NULL;
19  UPDATE t3 SET b=NULL;
20  UPDATE t4 SET b=NULL;
21  UPDATE t5 SET b=NULL;
22  --print Task one crashing an incomplete transaction
23  --exit 1
24--end
25--task 2 integrity_check-2
26  SELECT count(*) FROM t1;
27  --match 64
28  --sleep 100
29  PRAGMA integrity_check(10);
30  --match ok
31--end
32--task 3 integrity_check-3
33  SELECT count(*) FROM t1;
34  --match 64
35  --sleep 100
36  PRAGMA integrity_check(10);
37  --match ok
38--end
39--task 4 integrity_check-4
40  SELECT count(*) FROM t1;
41  --match 64
42  --sleep 100
43  PRAGMA integrity_check(10);
44  --match ok
45--end
46--task 5 integrity_check-5
47  SELECT count(*) FROM t1;
48  --match 64
49  --sleep 100
50  PRAGMA integrity_check(10);
51  --match ok
52--end
53--wait all
54