# 2025 September 5 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this file is testing the operation of the library in # "PRAGMA wal_checkpoint = noop" mode. # set testdir [file dirname $argv0] source $testdir/tester.tcl source $testdir/lock_common.tcl source $testdir/malloc_common.tcl source $testdir/wal_common.tcl set testprefix walckpotnoop ifcapable !wal {finish_test ; return } do_execsql_test 1.0 { CREATE TABLE t1(x INTEGER PRIMARY KEY, y TEXT); CREATE INDEX i1 ON t1(y); PRAGMA journal_mode = wal; WITH s(i) AS ( SELECT 1 UNION ALL SELECT i+1 FROM s WHERE i<1000 ) INSERT INTO t1 SELECT NULL, hex(randomblob(64)) FROM s; } {wal} do_execsql_test 1.1 { PRAGMA wal_checkpoint = noop; } {0 320 0} do_execsql_test 1.2 { PRAGMA wal_checkpoint = noop; } {0 320 0} do_execsql_test 1.3 { PRAGMA wal_checkpoint = passive; } {0 320 320} do_execsql_test 1.4 { PRAGMA wal_checkpoint = noop; } {0 320 320} db_save_and_close db_restore_and_reopen do_execsql_test 1.5 { PRAGMA wal_checkpoint = noop; } {0 320 0} db close sqlite3 db test.db do_execsql_test 1.6 { PRAGMA wal_checkpoint = noop; } {0 0 0} do_catchsql_test 1.7 { BEGIN; DELETE FROM t1; PRAGMA wal_checkpoint = noop; } {1 {database table is locked}} do_catchsql_test 1.8 { COMMIT; PRAGMA wal_checkpoint = noop; } {0 {0 5 0}} explain_i { PRAGMA wal_checkpoint = noop; } do_execsql_test 1.9 { PRAGMA journal_mode = delete; PRAGMA wal_checkpoint = noop; } {delete 0 -1 -1} finish_test