CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
snapshot4.test75 linesDownload Raw Back to test
1# 2018 August 282#3# The author disclaims copyright to this source code.  In place of4# 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. The focus12# of this file is the sqlite3_snapshot_xxx() APIs.13#14 15set testdir [file dirname $argv0]16source $testdir/tester.tcl17ifcapable !snapshot {finish_test; return}18set testprefix snapshot419 20# This test does not work with the inmemory_journal permutation. The reason21# is that each connection opened as part of this permutation executes22# "PRAGMA journal_mode=memory", which fails if the database is in wal mode23# and there are one or more existing connections.24if {[permutation]=="inmemory_journal"} {25  finish_test26  return27}28 29sqlite3 db2 test.db30 31do_execsql_test 1.0 {32  PRAGMA cache_size = 10;33  CREATE TABLE t1(a, b);34  INSERT INTO t1 VALUES(1, randomblob(400));35  PRAGMA journal_mode = wal;36  WITH s(i) AS (37    SELECT 2 UNION ALL SELECT i+1 FROM s WHERE i<10038  ) 39  INSERT INTO t1 SELECT i, randomblob(400) FROM s;40} {wal}41 42do_test 1.1 {43  execsql {44    BEGIN;45      SELECT count(*) FROM t1;46  }47} {100}48 49do_test 1.2 {50  db2 eval { 51    SELECT count(*) FROM t1;52    CREATE TABLE t2(x); 53  }54} {100}55 56do_test 1.3 {57  set ::snap [sqlite3_snapshot_get_blob db main]58  db2 eval { PRAGMA wal_checkpoint }59} {0 54 52}60 61do_test 1.4 {62  execsql {63    COMMIT;64    SELECT * FROM sqlite_master;65    BEGIN;66  }67  sqlite3_snapshot_open_blob db main $::snap68  execsql {69    SELECT count(*) FROM t170  } 71} {100}72 73 74finish_test75