Prevent deep recursions on nested COLLATE operators.
[sqlite.git] / test / tkt-94c04eaadb.test
blob9de8aea28d297288936a2d62def404f395eedded
1 # 2009 October 19
3 # The author disclaims copyright to this source code.  In place of
4 # a legal notice, here is a blessing:
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.
10 #***********************************************************************
11 # This file implements regression tests for SQLite library.
14 set testdir [file dirname $argv0]
15 source $testdir/tester.tcl
17 if {[info commands sqlite3async_initialize] eq ""} {
18   # The async logic is not built into this system
19   finish_test
20   return
23 # Create a database.
24 do_test tkt-94c94-1.1 {
25   execsql { CREATE TABLE t1(a, b) }
26 } {}
28 # Grow the file to larger than 4096MB (2^32 bytes)
29 db close
30 if {[catch {fake_big_file 4096 [get_pwd]/test.db} msg]} {
31   puts "**** Unable to create a file larger than 4096 MB. *****"
32   finish_test
33   return
36 # Switch to async mode.
37 sqlite3async_initialize "" 1
38 sqlite3 db test.db
39 sqlite3 db2 test.db
41 # Read from and write to the db just past the 4096MB mark.
43 do_test tkt-94c94-2.1 {
44   execsql { CREATE TABLE t2(x, y) } db
45 } {}
46 do_test tkt-94c94-2.2 {
47   execsql { INSERT INTO t2 VALUES(1, 2) } db2
48 } {}
49 do_test tkt-94c94-2.3 {
50   execsql { SELECT * FROM t2 } db
51 } {1 2}
52 do_test tkt-94c94-2.4 {
53   sqlite3async_control halt idle
54   sqlite3async_start
55   sqlite3async_wait
56 } {}
57 do_test tkt-94c94-2.5 {
58   execsql { SELECT * FROM t2 } db
59 } {1 2}
60 do_test tkt-94c94-2.6 {
61   sqlite3async_start
62   sqlite3async_wait
63 } {}
65 db close
66 db2 close
67 sqlite3async_start
68 sqlite3async_wait
69 sqlite3async_control halt never
70 sqlite3async_shutdown
72 finish_test