github.com/ncruces/go-sqlite3@v0.15.1-0.20240520133447-53eef1510ff0/vfs/tests/mptest/testdata/crash02.subtest (about) 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