Annotation of embedaddon/sqlite3/test/dbstatus2.test, revision 1.1

1.1     ! misho       1: # 2011 September 20
        !             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: # Tests for the sqlite3_stmt_status() function
        !            13: #
        !            14: 
        !            15: set testdir [file dirname $argv0]
        !            16: source $testdir/tester.tcl
        !            17: 
        !            18: set ::testprefix dbstatus2
        !            19: 
        !            20: do_execsql_test 1.0 {
        !            21:   PRAGMA page_size = 1024;
        !            22:   PRAGMA auto_vacuum = 0;
        !            23: 
        !            24:   CREATE TABLE t1(a PRIMARY KEY, b);
        !            25:   INSERT INTO t1 VALUES(1, randomblob(600));
        !            26:   INSERT INTO t1 VALUES(2, randomblob(600));
        !            27:   INSERT INTO t1 VALUES(3, randomblob(600));
        !            28: }
        !            29: 
        !            30: proc db_hit_miss {db {reset 0}} {
        !            31:   set nHit  [sqlite3_db_status $db CACHE_HIT $reset]
        !            32:   set nMiss [sqlite3_db_status $db CACHE_MISS $reset]
        !            33:   list $nHit $nMiss
        !            34: }
        !            35: 
        !            36: do_test 1.1 {
        !            37:   db close
        !            38:   sqlite3 db test.db
        !            39:   expr {[file size test.db] / 1024}
        !            40: } 6
        !            41: 
        !            42: do_test 1.2 {
        !            43:   execsql { SELECT b FROM t1 WHERE a=2 }
        !            44:   db_hit_miss db
        !            45: } {{0 2 0} {0 4 0}}
        !            46: 
        !            47: do_test 1.3 { 
        !            48:   execsql { SELECT b FROM t1 WHERE a=2 }
        !            49:   db_hit_miss db
        !            50: } {{0 6 0} {0 4 0}}
        !            51: 
        !            52: do_test 1.4 { 
        !            53:   execsql { SELECT b FROM t1 WHERE a=2 }
        !            54:   db_hit_miss db
        !            55: } {{0 10 0} {0 4 0}}
        !            56: 
        !            57: do_test 1.5 { 
        !            58:   db_hit_miss db 1
        !            59: } {{0 10 0} {0 4 0}}
        !            60: 
        !            61: do_test 1.6 { 
        !            62:   db_hit_miss db 0
        !            63: } {{0 0 0} {0 0 0}}
        !            64: 
        !            65: do_test 1.7 {
        !            66:   set fd [db incrblob main t1 b 1]
        !            67:   fconfigure $fd -translation binary
        !            68:   set len [string length [read $fd]]
        !            69:   close $fd
        !            70:   set len
        !            71: } 600
        !            72: do_test 1.8 { sqlite3_db_status db CACHE_HIT  0 } {0 2 0}
        !            73: do_test 1.9 { sqlite3_db_status db CACHE_MISS 0 } {0 1 0}
        !            74: 
        !            75:  
        !            76: finish_test

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