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

1.1       misho       1: # 2005 August 28
                      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: # This file implements tests to verify that fsync is disabled when
                     14: # pragma synchronous=off even for multi-database commits.
                     15: #
                     16: # $Id: sync.test,v 1.6 2007/10/09 08:29:33 danielk1977 Exp $
                     17: 
                     18: set testdir [file dirname $argv0]
                     19: source $testdir/tester.tcl
                     20: 
                     21: #
                     22: # These tests are only applicable when pager pragma are
                     23: # enabled. Also, since every test uses an ATTACHed database, they
                     24: # are only run when ATTACH is enabled.
                     25: #
                     26: ifcapable !pager_pragmas||!attach {
                     27:   finish_test
                     28:   return
                     29: }
                     30: 
                     31: set sqlite_sync_count 0
                     32: proc cond_incr_sync_count {adj} {
                     33:   global sqlite_sync_count
                     34:   if {$::tcl_platform(platform) == "windows"} {
                     35:     incr sqlite_sync_count $adj
                     36:   } {
                     37:     ifcapable !dirsync {
                     38:       incr sqlite_sync_count $adj
                     39:     }
                     40:   }
                     41: }
                     42: 
                     43: do_test sync-1.1 {
                     44:   set sqlite_sync_count 0
                     45:   forcedelete test2.db
                     46:   forcedelete test2.db-journal
                     47:   execsql {
                     48:     PRAGMA fullfsync=OFF;
                     49:     CREATE TABLE t1(a,b);
                     50:     ATTACH DATABASE 'test2.db' AS db2;
                     51:     CREATE TABLE db2.t2(x,y);
                     52:   }
                     53:   cond_incr_sync_count 2
                     54:   set sqlite_sync_count
                     55: } 8
                     56: ifcapable pager_pragmas {
                     57:   do_test sync-1.2 {
                     58:     set sqlite_sync_count 0
                     59:     execsql {
                     60:       PRAGMA main.synchronous=on;
                     61:       PRAGMA db2.synchronous=on;
                     62:       BEGIN;
                     63:       INSERT INTO t1 VALUES(1,2);
                     64:       INSERT INTO t2 VALUES(3,4);
                     65:       COMMIT;
                     66:     }
                     67:     cond_incr_sync_count 3
                     68:     set sqlite_sync_count
                     69:   } 8
                     70: }
                     71: do_test sync-1.3 {
                     72:   set sqlite_sync_count 0
                     73:   execsql {
                     74:     PRAGMA main.synchronous=full;
                     75:     PRAGMA db2.synchronous=full;
                     76:     BEGIN;
                     77:     INSERT INTO t1 VALUES(3,4);
                     78:     INSERT INTO t2 VALUES(5,6);
                     79:     COMMIT;
                     80:   }
                     81:   cond_incr_sync_count 3
                     82:   set sqlite_sync_count
                     83: } 10
                     84: ifcapable pager_pragmas {
                     85:   do_test sync-1.4 {
                     86:     set sqlite_sync_count 0
                     87:     execsql {
                     88:       PRAGMA main.synchronous=off;
                     89:       PRAGMA db2.synchronous=off;
                     90:       BEGIN;
                     91:       INSERT INTO t1 VALUES(5,6);
                     92:       INSERT INTO t2 VALUES(7,8);
                     93:       COMMIT;
                     94:     }
                     95:     set sqlite_sync_count
                     96:   } 0
                     97: }
                     98: 
                     99: 
                    100: finish_test

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