Home | History | Annotate | Download | only in test
      1 # 2009 October 19
      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 # This file implements regression tests for SQLite library.
     12 #
     13 
     14 set testdir [file dirname $argv0]
     15 source $testdir/tester.tcl
     16 
     17 if {[info commands sqlite3async_initialize] eq ""} {
     18   # The async logic is not built into this system
     19   finish_test
     20   return
     21 }
     22 
     23 # Create a database.
     24 do_test tkt-94c94-1.1 {
     25   execsql { CREATE TABLE t1(a, b) }
     26 } {}
     27 
     28 # Grow the file to larger than 4096MB (2^32 bytes)
     29 db close
     30 if {[catch {fake_big_file 4096 [pwd]/test.db} msg]} {
     31   puts "**** Unable to create a file larger than 4096 MB. *****"
     32   finish_test
     33   return
     34 }
     35 
     36 # Switch to async mode.
     37 sqlite3async_initialize "" 1
     38 sqlite3 db test.db
     39 sqlite3 db2 test.db
     40 
     41 # Read from and write to the db just past the 4096MB mark.
     42 #
     43 do_test tkt-94c94-2.1 {
     44   execsql { CREATE TABLE t2(x, y) } db
     45 } {}
     46 do_test tkt-94c94-2.2 {
     47 breakpoint
     48   execsql { INSERT INTO t2 VALUES(1, 2) } db2
     49 } {}
     50 do_test tkt-94c94-2.3 {
     51   execsql { SELECT * FROM t2 } db
     52 } {1 2}
     53 do_test tkt-94c94-2.4 {
     54   sqlite3async_control halt idle
     55   sqlite3async_start
     56   sqlite3async_wait
     57 } {}
     58 do_test tkt-94c94-2.5 {
     59   execsql { SELECT * FROM t2 } db
     60 } {1 2}
     61 do_test tkt-94c94-2.6 {
     62   sqlite3async_start
     63   sqlite3async_wait
     64 } {}
     65 
     66 db close
     67 db2 close
     68 sqlite3async_start
     69 sqlite3async_wait
     70 sqlite3async_control halt never
     71 sqlite3async_shutdown
     72 
     73 finish_test
     74