xref: /sqlite-3.40.0/ext/session/sessionbig.test (revision bc85a515)
1# 2014 August 16
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#
12# This file implements regression tests for sessions SQLite extension.
13# Specifically, this file contains tests for "patchset" changes.
14#
15
16if {![info exists testdir]} {
17  set testdir [file join [file dirname [info script]] .. .. test]
18}
19source [file join [file dirname [info script]] session_common.tcl]
20source $testdir/tester.tcl
21ifcapable !session {finish_test; return}
22
23if {[permutation]=="session_strm" || [permutation]=="session_eec"} {
24  finish_test
25  return
26}
27
28set testprefix sessionbig
29
30forcedelete test.db2
31sqlite3 db2 test.db2
32
33do_execsql_test 1.0 {
34  CREATE TABLE t1(a INTEGER PRIMARY KEY, b);
35}
36do_execsql_test -db db2 1.1 {
37  CREATE TABLE t1(a INTEGER PRIMARY KEY, b);
38}
39
40do_test 1.2 {
41  do_then_apply_sql {
42    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
43    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
44    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
45    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
46    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
47
48    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
49    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
50    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
51    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
52    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
53
54    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
55    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
56    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
57    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
58    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
59  }
60} {}
61
62do_test 1.3 {
63  execsql { DELETE FROM t1 }
64  execsql2 { DELETE FROM t1 }
65} {}
66
67do_test 1.4 {
68  set rc [catch {
69  do_then_apply_sql {
70    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
71    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
72    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
73    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
74    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
75
76    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
77    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
78    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
79    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
80    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
81
82    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
83    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
84    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
85    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
86    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
87
88    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
89    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
90    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
91    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
92    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
93
94    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
95    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
96  }
97  } msg]
98  list $rc $msg
99} {1 SQLITE_NOMEM}
100
101
102finish_test
103
104