xref: /sqlite-3.40.0/test/memjournal.test (revision c00727ab)
1*c00727abSdan# 2021 May 24
2*c00727abSdan#
3*c00727abSdan# The author disclaims copyright to this source code.  In place of
4*c00727abSdan# a legal notice, here is a blessing:
5*c00727abSdan#
6*c00727abSdan#    May you do good and not evil.
7*c00727abSdan#    May you find forgiveness for yourself and forgive others.
8*c00727abSdan#    May you share freely, never taking more than you give.
9*c00727abSdan#
10*c00727abSdan#***********************************************************************
11*c00727abSdan# Tests focused on the in-memory journal.
12*c00727abSdan#
13*c00727abSdan
14*c00727abSdanset testdir [file dirname $argv0]
15*c00727abSdansource $testdir/tester.tcl
16*c00727abSdansource $testdir/malloc_common.tcl
17*c00727abSdanset testprefix memjournal
18*c00727abSdan
19*c00727abSdan
20*c00727abSdando_execsql_test 1.0 {
21*c00727abSdan  PRAGMA journal_mode = memory;
22*c00727abSdan  CREATE TABLE t1(a);
23*c00727abSdan} {memory}
24*c00727abSdan
25*c00727abSdanset nRow [expr 1]
26*c00727abSdan
27*c00727abSdando_execsql_test 1.1 {
28*c00727abSdan  BEGIN;
29*c00727abSdan    INSERT INTO t1 VALUES( randomblob(500) );
30*c00727abSdan} {}
31*c00727abSdan
32*c00727abSdando_test 1.2 {
33*c00727abSdan  for {set i 1} {$i <= 500} {incr i} {
34*c00727abSdan    execsql {
35*c00727abSdan      SAVEPOINT one;
36*c00727abSdan      UPDATE t1 SET a=randomblob(500);
37*c00727abSdan    }
38*c00727abSdan    execsql { SAVEPOINT abc }
39*c00727abSdan    execsql { UPDATE t1 SET a=randomblob(500) WHERE rowid<=$i AND 0 }
40*c00727abSdan    execsql { RELEASE abc }
41*c00727abSdan  }
42*c00727abSdan} {}
43*c00727abSdan
44*c00727abSdando_execsql_test 1.3 {
45*c00727abSdan  COMMIT;
46*c00727abSdan}
47*c00727abSdan
48*c00727abSdanfinish_test
49