File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sqlite3 / test / wal6.test
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:04:16 2012 UTC (12 years, 10 months ago) by misho
Branches: sqlite3, MAIN
CVS tags: v3_7_10, HEAD
sqlite3

    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>