wasCSharpSQLite – Blame information for rev 7
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 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 | |||
20 | # Set up a pcache memory pool so that we can easily track how many |
||
21 | # pages are being used for cache. |
||
22 | # |
||
23 | do_test pcache2-1.1 { |
||
24 | db close |
||
25 | sqlite3_reset_auto_extension |
||
26 | sqlite3_shutdown |
||
27 | sqlite3_config_pagecache 6000 100 |
||
28 | sqlite3_initialize |
||
29 | autoinstall_test_functions |
||
30 | sqlite3_status SQLITE_STATUS_PAGECACHE_USED 1 |
||
31 | sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0 |
||
32 | } {0 0 0} |
||
33 | |||
34 | # Open up two database connections to separate files. |
||
35 | # |
||
36 | do_test pcache2-1.2 { |
||
37 | file delete -force test.db test.db-journal |
||
38 | sqlite3 db test.db |
||
39 | db eval {PRAGMA cache_size=10} |
||
40 | lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0] 1 |
||
41 | } {1} |
||
42 | do_test pcache2-1.3 { |
||
43 | file delete -force test2.db test2.db-journal |
||
44 | sqlite3 db2 test2.db |
||
45 | db2 eval {PRAGMA cache_size=50} |
||
46 | lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0] 1 |
||
47 | } {2} |
||
48 | |||
49 | |||
50 | # Make lots of changes on the first connection. Verify that the |
||
51 | # page cache usage does not grow to consume the page space set aside |
||
52 | # for the second connection. |
||
53 | # |
||
54 | do_test pcache2-1.4 { |
||
55 | db eval { |
||
56 | CREATE TABLE t1(a,b); |
||
57 | CREATE TABLE t2(x,y); |
||
58 | INSERT INTO t1 VALUES(1, zeroblob(800)); |
||
59 | INSERT INTO t1 VALUES(2, zeroblob(800)); |
||
60 | INSERT INTO t2 SELECT * FROM t1; |
||
61 | INSERT INTO t1 SELECT x+2, y FROM t2; |
||
62 | INSERT INTO t2 SELECT a+10, b FROM t1; |
||
63 | INSERT INTO t1 SELECT x+10, y FROM t2; |
||
64 | INSERT INTO t2 SELECT a+100, b FROM t1; |
||
65 | INSERT INTO t1 SELECT x+100, y FROM t2; |
||
66 | INSERT INTO t2 SELECT a+1000, b FROM t1; |
||
67 | INSERT INTO t1 SELECT x+1000, y FROM t2; |
||
68 | } |
||
69 | sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0 |
||
70 | } {0 10 10} |
||
71 | |||
72 | db close |
||
73 | catch {db2 close} |
||
74 | sqlite3_reset_auto_extension |
||
75 | sqlite3_shutdown |
||
76 | sqlite3_config_pagecache 0 0 |
||
77 | sqlite3_initialize |
||
78 | autoinstall_test_functions |
||
79 | |||
80 | finish_test |