xref: /sqlite-3.40.0/ext/session/sessionbig.test (revision 7379b455)
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
28if {$::tcl_platform(pointerSize)<8} {
29  finish_test
30  return
31}
32
33set testprefix sessionbig
34
35forcedelete test.db2
36sqlite3 db2 test.db2
37
38do_execsql_test 1.0 {
39  CREATE TABLE t1(a INTEGER PRIMARY KEY, b);
40}
41do_execsql_test -db db2 1.1 {
42  CREATE TABLE t1(a INTEGER PRIMARY KEY, b);
43}
44
45do_test 1.2 {
46  do_then_apply_sql {
47    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
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
53    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
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
59    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
60    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
61    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
62    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
63    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
64  }
65} {}
66
67do_test 1.3 {
68  execsql { DELETE FROM t1 }
69  execsql2 { DELETE FROM t1 }
70} {}
71
72do_test 1.4 {
73  set rc [catch {
74  do_then_apply_sql {
75    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
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
81    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
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
87    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
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
93    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
94    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
95    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
96    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
97    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
98
99    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
100    INSERT INTO t1(b) VALUES( zeroblob(100*1000*1000) );
101  }
102  } msg]
103  list $rc $msg
104} {1 SQLITE_NOMEM}
105
106
107finish_test
108
109