Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add tests for very small cache-sizes (less than 10 pages). |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
46b3fbdafe191cd0974cc3f46bc6aa52 |
User & Date: | dan 2010-11-29 16:10:02.000 |
Context
2010-11-29
| ||
17:55 | Fix compiler warnings discovered while building SQLite on http://www.devio.us/. (check-in: 5602ec95aa user: dan tags: trunk) | |
16:10 | Add tests for very small cache-sizes (less than 10 pages). (check-in: 46b3fbdafe user: dan tags: trunk) | |
12:06 | Add new test file e_droptrigger.test. (check-in: d23ef9b88c user: dan tags: trunk) | |
Changes
Changes to test/cache.test.
︙ | ︙ | |||
47 48 49 50 51 52 53 | # 2000 pages by default). # # This tests that once the pager-cache is initialised, it can be locked # and unlocked repeatedly without internally allocating any new pages. # set cache_size [pager_cache_size db] for {set ii 0} {$ii < 10} {incr ii} { | < | | > > > > > > > > > > > > > > > > > > > > > | > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | # 2000 pages by default). # # This tests that once the pager-cache is initialised, it can be locked # and unlocked repeatedly without internally allocating any new pages. # set cache_size [pager_cache_size db] for {set ii 0} {$ii < 10} {incr ii} { do_test cache-1.3.$ii { execsql {SELECT * FROM abc} pager_cache_size db } $::cache_size } #------------------------------------------------------------------------- # This block of tests checks that it is possible to set the cache_size of a # database to a small (< 10) value. More specifically: # # cache-2.1.*: Test that "PRAGMA cache_size" appears to work with small # values. # cache-2.2.*: Test that "PRAGMA main.cache_size" appears to work with # small values. # cache-2.3.*: Test cache_size=1 correctly spills/flushes the cache. # cache-2.4.*: Test cache_size=0 correctly spills/flushes the cache. # # db_delete_and_reopen do_execsql_test cache-2.0 { PRAGMA auto_vacuum=OFF; PRAGMA journal_mode=DELETE; CREATE TABLE t1(a, b); CREATE TABLE t2(c, d); INSERT INTO t1 VALUES('x', 'y'); INSERT INTO t2 VALUES('i', 'j'); } {delete} for {set i 0} {$i < 20} {incr i} { do_execsql_test cache-2.1.$i.1 "PRAGMA cache_size = $i" do_execsql_test cache-2.1.$i.2 "PRAGMA cache_size" $i do_execsql_test cache-2.1.$i.3 "SELECT * FROM t1" {x y} do_execsql_test cache-2.1.$i.4 "PRAGMA cache_size" $i } for {set i 0} {$i < 20} {incr i} { do_execsql_test cache-2.2.$i.1 "PRAGMA main.cache_size = $i" do_execsql_test cache-2.2.$i.2 "PRAGMA main.cache_size" $i do_execsql_test cache-2.2.$i.3 "SELECT * FROM t1" {x y} do_execsql_test cache-2.2.$i.4 "PRAGMA main.cache_size" $i } # Tests for cache_size = 1. # do_execsql_test cache-2.3.1 { PRAGMA cache_size = 1; BEGIN; INSERT INTO t1 VALUES(1, 2); PRAGMA lock_status; } {main reserved temp closed} do_test cache-2.3.2 { pager_cache_size db } 2 do_execsql_test cache-2.3.3 { INSERT INTO t2 VALUES(1, 2); PRAGMA lock_status; } {main exclusive temp closed} do_test cache-2.3.4 { pager_cache_size db } 2 do_execsql_test cache-2.3.5 COMMIT do_test cache-2.3.6 { pager_cache_size db } 1 do_execsql_test cache-2.3.7 { SELECT * FROM t1 UNION SELECT * FROM t2; } {1 2 i j x y} do_test cache-2.3.8 { pager_cache_size db } 1 # Tests for cache_size = 0. # do_execsql_test cache-2.4.1 { PRAGMA cache_size = 0; BEGIN; INSERT INTO t1 VALUES(1, 2); PRAGMA lock_status; } {main reserved temp closed} do_test cache-2.4.2 { pager_cache_size db } 2 do_execsql_test cache-2.4.3 { INSERT INTO t2 VALUES(1, 2); PRAGMA lock_status; } {main exclusive temp closed} do_test cache-2.4.4 { pager_cache_size db } 2 do_execsql_test cache-2.4.5 COMMIT do_test cache-2.4.6 { pager_cache_size db } 0 do_execsql_test cache-2.4.7 { SELECT * FROM t1 UNION SELECT * FROM t2; } {1 2 i j x y} do_test cache-2.4.8 { pager_cache_size db } 0 sqlite3_soft_heap_limit $cmdlinearg(soft-heap-limit) finish_test |