Annotation of embedaddon/sqlite3/test/pcache2.test, revision 1.1
1.1 ! misho 1: # 2008 September 15
! 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: #
! 12: # This file is focused on testing the pcache module.
! 13: #
! 14: # $Id: pcache2.test,v 1.5 2009/07/18 14:36:24 danielk1977 Exp $
! 15:
! 16: set testdir [file dirname $argv0]
! 17: source $testdir/tester.tcl
! 18:
! 19: # Set up a pcache memory pool so that we can easily track how many
! 20: # pages are being used for cache.
! 21: #
! 22: do_test pcache2-1.1 {
! 23: db close
! 24: sqlite3_reset_auto_extension
! 25: sqlite3_shutdown
! 26: sqlite3_config_pagecache 6000 100
! 27: sqlite3_initialize
! 28: autoinstall_test_functions
! 29: sqlite3_status SQLITE_STATUS_PAGECACHE_USED 1
! 30: sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0
! 31: } {0 0 0}
! 32:
! 33: # Open up two database connections to separate files.
! 34: #
! 35: do_test pcache2-1.2 {
! 36: forcedelete test.db test.db-journal
! 37: sqlite3 db test.db
! 38: db eval {PRAGMA cache_size=10}
! 39: lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0] 1
! 40: } {2}
! 41: do_test pcache2-1.3 {
! 42: forcedelete test2.db test2.db-journal
! 43: sqlite3 db2 test2.db
! 44: db2 eval {PRAGMA cache_size=50}
! 45: lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0] 1
! 46: } {4}
! 47:
! 48:
! 49: # Make lots of changes on the first connection. Verify that the
! 50: # page cache usage does not grow to consume the page space set aside
! 51: # for the second connection.
! 52: #
! 53: do_test pcache2-1.4 {
! 54: db eval {
! 55: CREATE TABLE t1(a,b);
! 56: CREATE TABLE t2(x,y);
! 57: INSERT INTO t1 VALUES(1, zeroblob(800));
! 58: INSERT INTO t1 VALUES(2, zeroblob(800));
! 59: INSERT INTO t2 SELECT * FROM t1;
! 60: INSERT INTO t1 SELECT x+2, y FROM t2;
! 61: INSERT INTO t2 SELECT a+10, b FROM t1;
! 62: INSERT INTO t1 SELECT x+10, y FROM t2;
! 63: INSERT INTO t2 SELECT a+100, b FROM t1;
! 64: INSERT INTO t1 SELECT x+100, y FROM t2;
! 65: INSERT INTO t2 SELECT a+1000, b FROM t1;
! 66: INSERT INTO t1 SELECT x+1000, y FROM t2;
! 67: }
! 68: sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0
! 69: } {0 13 13}
! 70:
! 71: db close
! 72: catch {db2 close}
! 73: sqlite3_reset_auto_extension
! 74: sqlite3_shutdown
! 75: sqlite3_config_pagecache 0 0
! 76: sqlite3_initialize
! 77: autoinstall_test_functions
! 78:
! 79: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>