Annotation of embedaddon/sqlite3/test/wal6.test, revision 1.1.1.1

1.1       misho       1: # 2010 December 1
                      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.  The
                     12: # focus of this file is testing the operation of the library in
                     13: # "PRAGMA journal_mode=WAL" mode.
                     14: #
                     15: 
                     16: set testdir [file dirname $argv0]
                     17: source $testdir/tester.tcl
                     18: source $testdir/lock_common.tcl
                     19: source $testdir/wal_common.tcl
                     20: source $testdir/malloc_common.tcl
                     21: ifcapable !wal {finish_test ; return }
                     22: 
                     23: #-------------------------------------------------------------------------
                     24: # Changing to WAL mode in one connection forces the change in others.
                     25: #
                     26: db close
                     27: forcedelete test.db
                     28: 
                     29: set all_journal_modes {delete persist truncate memory off}
                     30: foreach jmode $all_journal_modes {
                     31: 
                     32:        do_test wal6-1.0.$jmode {
                     33:     sqlite3 db test.db
                     34:     execsql "PRAGMA journal_mode = $jmode;"
                     35:        } $jmode
                     36: 
                     37:        do_test wal6-1.1.$jmode {
                     38:          execsql {
                     39:            CREATE TABLE t1(a INTEGER PRIMARY KEY, b);
                     40:            INSERT INTO t1 VALUES(1,2);
                     41:            SELECT * FROM t1;
                     42:          }
                     43:        } {1 2}
                     44: 
                     45: # Under Windows, you'll get an error trying to delete
                     46: # a file this is already opened.  Close the first connection
                     47: # so the other tests work.
                     48: if {$tcl_platform(platform)=="windows"} {
                     49:   if {$jmode=="persist" || $jmode=="truncate"} {
                     50:     db close
                     51:   }
                     52: }
                     53: 
                     54:        do_test wal6-1.2.$jmode {
                     55:          sqlite3 db2 test.db
                     56:          execsql {
                     57:                PRAGMA journal_mode=WAL;
                     58:                INSERT INTO t1 VALUES(3,4);
                     59:                SELECT * FROM t1 ORDER BY a;
                     60:          } db2
                     61:        } {wal 1 2 3 4}
                     62: 
                     63: if {$tcl_platform(platform)=="windows"} {
                     64:   if {$jmode=="persist" || $jmode=="truncate"} {
                     65:          sqlite3 db test.db
                     66:   }
                     67: }
                     68: 
                     69:        do_test wal6-1.3.$jmode {
                     70:          execsql {
                     71:                  SELECT * FROM t1 ORDER BY a;
                     72:          }
                     73:        } {1 2 3 4}
                     74: 
                     75:        db close
                     76:        db2 close
                     77:   forcedelete test.db
                     78: 
                     79: }
                     80: 
                     81: finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>