gitlab.com/CoiaPrant/sqlite3@v1.19.1/testdata/tcl/tkt-6bfb98dfc0.test (about)

     1  # 2013 March 27
     2  #
     3  # The author disclaims copyright to this source code.  In place of
     4  # a legal notice, here is a blessing:
     5  #
     6  #    May you do good and not evil.
     7  #    May you find forgiveness for yourself and forgive others.
     8  #    May you share freely, never taking more than you give.
     9  #
    10  #***********************************************************************
    11  # This file implements regression tests for SQLite library. Specifically,
    12  # it tests that ticket [6bfb98dfc0]
    13  #
    14  # The final INSERT in the script below reports that the database is
    15  # corrupt (SQLITE_CORRUPT) and aborts even though the database is not
    16  # corrupt.
    17  #
    18  #    PRAGMA page_size=512;
    19  #    CREATE TABLE t1(x INTEGER PRIMARY KEY, y);
    20  #    INSERT INTO t1 VALUES(1,randomblob(400));
    21  #    INSERT INTO t1 VALUES(2,randomblob(400));
    22  #    INSERT INTO t1 SELECT x+2, randomblob(400) FROM t1;
    23  #    INSERT INTO t1 SELECT x+4, randomblob(400) FROM t1;
    24  #    INSERT INTO t1 SELECT x+8, randomblob(400) FROM t1;
    25  #    INSERT INTO t1 SELECT x+16, randomblob(400) FROM t1;
    26  #    INSERT INTO t1 SELECT x+32, randomblob(400) FROM t1;
    27  #    INSERT INTO t1 SELECT x+64, randomblob(400) FROM t1 WHERE x<10;
    28  #    CREATE TRIGGER r1 AFTER INSERT ON t1 WHEN new.x=74 BEGIN
    29  #      DELETE FROM t1;
    30  #      INSERT INTO t1 VALUES(75, randomblob(400));
    31  #      INSERT INTO t1 VALUES(76, randomblob(400));
    32  #    END;
    33  #    INSERT INTO t1 VALUES(74, randomblob(400));
    34  #
    35  
    36  set testdir [file dirname $argv0]
    37  source $testdir/tester.tcl
    38  
    39  do_test tkt-6bfb98dfc0.100 {
    40    db eval {
    41      PRAGMA page_size=512;
    42      CREATE TABLE t1(x INTEGER PRIMARY KEY, y);
    43      INSERT INTO t1 VALUES(1,randomblob(400));
    44      INSERT INTO t1 VALUES(2,randomblob(400));
    45      INSERT INTO t1 SELECT x+2, randomblob(400) FROM t1;
    46      INSERT INTO t1 SELECT x+4, randomblob(400) FROM t1;
    47      INSERT INTO t1 SELECT x+8, randomblob(400) FROM t1;
    48      INSERT INTO t1 SELECT x+16, randomblob(400) FROM t1;
    49      INSERT INTO t1 SELECT x+32, randomblob(400) FROM t1;
    50      INSERT INTO t1 SELECT x+64, randomblob(400) FROM t1 WHERE x<10;
    51      CREATE TRIGGER r1 AFTER INSERT ON t1 WHEN new.x=74 BEGIN
    52        DELETE FROM t1;
    53        INSERT INTO t1 VALUES(75, randomblob(400));
    54        INSERT INTO t1 VALUES(76, randomblob(400));
    55      END;
    56      INSERT INTO t1 VALUES(74, randomblob(400));
    57      SELECT x, length(y) FROM t1 ORDER BY x;
    58    }
    59  } {75 400 76 400}
    60      
    61  finish_test