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