~ubuntu-branches/ubuntu/oneiric/likewise-open/oneiric

« back to all changes in this revision

Viewing changes to sqlite/test/pcache2.test

  • Committer: Bazaar Package Importer
  • Author(s): Scott Salley
  • Date: 2010-11-22 12:06:00 UTC
  • mfrom: (1.1.6 upstream)
  • Revision ID: james.westby@ubuntu.com-20101122120600-8lba1fpceot71wlb
Tags: 6.0.0.53010-1
Likewise Open 6.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
} {2}
 
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
} {4}
 
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 13 13}
 
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