aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/sqlite/unix/sqlite-3.5.1/test/pager2.test
diff options
context:
space:
mode:
authordan miller2007-10-20 02:49:29 +0000
committerdan miller2007-10-20 02:49:29 +0000
commite36d23a85ebff914d74bb541558c2b6082b78edb (patch)
tree54b58fdf162e78af64055282a6035c8d2443389d /libraries/sqlite/unix/sqlite-3.5.1/test/pager2.test
parent* Fixed an issue whereby avatar chat distances were being calculated against ... (diff)
downloadopensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.zip
opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.gz
opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.bz2
opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.xz
sqlite source (unix build) added to libraries
Diffstat (limited to 'libraries/sqlite/unix/sqlite-3.5.1/test/pager2.test')
-rw-r--r--libraries/sqlite/unix/sqlite-3.5.1/test/pager2.test408
1 files changed, 408 insertions, 0 deletions
diff --git a/libraries/sqlite/unix/sqlite-3.5.1/test/pager2.test b/libraries/sqlite/unix/sqlite-3.5.1/test/pager2.test
new file mode 100644
index 0000000..52dfe73
--- /dev/null
+++ b/libraries/sqlite/unix/sqlite-3.5.1/test/pager2.test
@@ -0,0 +1,408 @@
1# 2001 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# This file implements regression tests for SQLite library. The
12# focus of this script is page cache subsystem.
13#
14# $Id: pager2.test,v 1.6 2007/03/23 18:12:07 danielk1977 Exp $
15
16
17set testdir [file dirname $argv0]
18source $testdir/tester.tcl
19
20# Don't run this test file if the pager test interface [pager_open] is not
21# available, or the library was compiled without in-memory database support.
22#
23if {[info commands pager_open]!=""} {
24ifcapable memorydb {
25db close
26
27# Basic sanity check. Open and close a pager.
28#
29do_test pager2-1.0 {
30 set v [catch {
31 set ::p1 [pager_open :memory: 10]
32 } msg]
33} {0}
34do_test pager2-1.1 {
35 pager_stats $::p1
36} {ref 0 page 0 max 10 size 0 state 0 err 0 hit 0 miss 0 ovfl 0}
37do_test pager2-1.2 {
38 pager_pagecount $::p1
39} {0}
40do_test pager2-1.3 {
41 pager_stats $::p1
42} {ref 0 page 0 max 10 size 0 state 0 err 0 hit 0 miss 0 ovfl 0}
43do_test pager2-1.4 {
44 pager_close $::p1
45} {}
46
47# Try to write a few pages.
48#
49do_test pager2-2.1 {
50 set v [catch {
51 set ::p1 [pager_open :memory: 10]
52 } msg]
53} {0}
54#do_test pager2-2.2 {
55# set v [catch {
56# set ::g1 [page_get $::p1 0]
57# } msg]
58# lappend v $msg
59#} {1 SQLITE_ERROR}
60do_test pager2-2.3.1 {
61 set ::gx [page_lookup $::p1 1]
62} {}
63do_test pager2-2.3.2 {
64 pager_stats $::p1
65} {ref 0 page 0 max 10 size 0 state 0 err 0 hit 0 miss 0 ovfl 0}
66do_test pager2-2.3.3 {
67 set v [catch {
68 set ::g1 [page_get $::p1 1]
69 } msg]
70 if {$v} {lappend v $msg}
71 set v
72} {0}
73do_test pager2-2.3.3 {
74 pager_stats $::p1
75} {ref 1 page 1 max 10 size 0 state 1 err 0 hit 0 miss 1 ovfl 0}
76do_test pager2-2.3.4 {
77 set ::gx [page_lookup $::p1 1]
78 expr {$::gx!=""}
79} {1}
80do_test pager2-2.3.5 {
81 pager_stats $::p1
82} {ref 1 page 1 max 10 size 0 state 1 err 0 hit 0 miss 1 ovfl 0}
83do_test pager2-2.3.6 {
84 expr {$::g1==$::gx}
85} {1}
86do_test pager2-2.3.7 {
87 page_unref $::gx
88 pager_stats $::p1
89} {ref 1 page 1 max 10 size 0 state 1 err 0 hit 0 miss 1 ovfl 0}
90do_test pager2-2.4 {
91 pager_stats $::p1
92} {ref 1 page 1 max 10 size 0 state 1 err 0 hit 0 miss 1 ovfl 0}
93do_test pager2-2.5 {
94 pager_pagecount $::p1
95} {0}
96do_test pager2-2.6 {
97 pager_stats $::p1
98} {ref 1 page 1 max 10 size 0 state 1 err 0 hit 0 miss 1 ovfl 0}
99do_test pager2-2.7 {
100 page_number $::g1
101} {1}
102do_test pager2-2.8 {
103 page_read $::g1
104} {}
105do_test pager2-2.9 {
106 page_unref $::g1
107} {}
108do_test pager2-2.10 {
109 pager_stats $::p1
110} {ref 0 page 1 max 10 size 0 state 0 err 0 hit 0 miss 1 ovfl 0}
111do_test pager2-2.11 {
112 set ::g1 [page_get $::p1 1]
113 expr {$::g1!=0}
114} {1}
115do_test pager2-2.12 {
116 page_number $::g1
117} {1}
118do_test pager2-2.13 {
119 pager_stats $::p1
120} {ref 1 page 1 max 10 size 0 state 1 err 0 hit 1 miss 1 ovfl 0}
121do_test pager2-2.14 {
122 set v [catch {
123 page_write $::g1 "Page-One"
124 } msg]
125 lappend v $msg
126} {0 {}}
127do_test pager2-2.15 {
128 pager_stats $::p1
129} {ref 1 page 1 max 10 size 1 state 4 err 0 hit 1 miss 1 ovfl 0}
130do_test pager2-2.16 {
131 page_read $::g1
132} {Page-One}
133do_test pager2-2.17 {
134 set v [catch {
135 pager_commit $::p1
136 } msg]
137 lappend v $msg
138} {0 {}}
139do_test pager2-2.20 {
140 pager_stats $::p1
141} {ref 1 page 1 max 10 size 1 state 1 err 0 hit 1 miss 1 ovfl 0}
142do_test pager2-2.19 {
143 pager_pagecount $::p1
144} {1}
145do_test pager2-2.21 {
146 pager_stats $::p1
147} {ref 1 page 1 max 10 size 1 state 1 err 0 hit 1 miss 1 ovfl 0}
148do_test pager2-2.22 {
149 page_unref $::g1
150} {}
151do_test pager2-2.23 {
152 pager_stats $::p1
153} {ref 0 page 1 max 10 size 1 state 0 err 0 hit 1 miss 1 ovfl 0}
154do_test pager2-2.24 {
155 set v [catch {
156 page_get $::p1 1
157 } ::g1]
158 if {$v} {lappend v $::g1}
159 set v
160} {0}
161do_test pager2-2.25 {
162 page_read $::g1
163} {Page-One}
164do_test pager2-2.26 {
165 set v [catch {
166 page_write $::g1 {page-one}
167 } msg]
168 lappend v $msg
169} {0 {}}
170do_test pager2-2.27 {
171 page_read $::g1
172} {page-one}
173do_test pager2-2.28 {
174 set v [catch {
175 pager_rollback $::p1
176 } msg]
177 lappend v $msg
178} {0 {}}
179do_test pager2-2.29 {
180 page_unref $::g1
181 set ::g1 [page_get $::p1 1]
182 page_read $::g1
183} {Page-One}
184#do_test pager2-2.99 {
185# pager_close $::p1
186#} {}
187
188#do_test pager2-3.1 {
189# set v [catch {
190# set ::p1 [pager_open :memory: 15]
191# } msg]
192# if {$v} {lappend v $msg}
193# set v
194#} {0}
195do_test pager2-3.2 {
196 pager_pagecount $::p1
197} {1}
198do_test pager2-3.3 {
199 set v [catch {
200 set ::g(1) [page_get $::p1 1]
201 } msg]
202 if {$v} {lappend v $msg}
203 set v
204} {0}
205do_test pager2-3.4 {
206 page_read $::g(1)
207} {Page-One}
208do_test pager2-3.5 {
209 for {set i 2} {$i<=20} {incr i} {
210 set gx [page_get $::p1 $i]
211 page_write $gx "Page-$i"
212 page_unref $gx
213 }
214 pager_commit $::p1
215} {}
216for {set i 2} {$i<=20} {incr i} {
217 do_test pager2-3.6.[expr {$i-1}] [subst {
218 set gx \[page_get $::p1 $i\]
219 set v \[page_read \$gx\]
220 page_unref \$gx
221 set v
222 }] "Page-$i"
223}
224for {set i 1} {$i<=20} {incr i} {
225 regsub -all CNT {
226 set ::g1 [page_get $::p1 CNT]
227 set ::g2 [page_get $::p1 CNT]
228 set ::vx [page_read $::g2]
229 expr {$::g1==$::g2}
230 } $i body;
231 do_test pager2-3.7.$i.1 $body {1}
232 regsub -all CNT {
233 page_unref $::g2
234 set vy [page_read $::g1]
235 expr {$vy==$::vx}
236 } $i body;
237 do_test pager2-3.7.$i.2 $body {1}
238 regsub -all CNT {
239 page_unref $::g1
240 set gx [page_get $::p1 CNT]
241 set vy [page_read $gx]
242 page_unref $gx
243 expr {$vy==$::vx}
244 } $i body;
245 do_test pager2-3.7.$i.3 $body {1}
246}
247do_test pager2-3.99 {
248 pager_close $::p1
249} {}
250
251# tests of the checkpoint mechanism and api
252#
253do_test pager2-4.0 {
254 set v [catch {
255 set ::p1 [pager_open :memory: 15]
256 } msg]
257 if {$v} {lappend v $msg}
258 set v
259} {0}
260do_test pager2-4.1 {
261 set g1 [page_get $::p1 1]
262 page_write $g1 "Page-1 v0"
263 for {set i 2} {$i<=20} {incr i} {
264 set gx [page_get $::p1 $i]
265 page_write $gx "Page-$i v0"
266 page_unref $gx
267 }
268 pager_commit $::p1
269} {}
270for {set i 1} {$i<=20} {incr i} {
271 do_test pager2-4.2.$i {
272 set gx [page_get $p1 $i]
273 set v [page_read $gx]
274 page_unref $gx
275 set v
276 } "Page-$i v0"
277}
278do_test pager2-4.3 {
279 lrange [pager_stats $::p1] 0 1
280} {ref 1}
281do_test pager2-4.4 {
282 lrange [pager_stats $::p1] 8 9
283} {state 1}
284
285for {set i 1} {$i<20} {incr i} {
286 do_test pager2-4.5.$i.0 {
287 set res {}
288 for {set j 2} {$j<=20} {incr j} {
289 set gx [page_get $p1 $j]
290 set value [page_read $gx]
291 page_unref $gx
292 set shouldbe "Page-$j v[expr {$i-1}]"
293 if {$value!=$shouldbe} {
294 lappend res $value $shouldbe
295 }
296 }
297 set res
298 } {}
299 do_test pager2-4.5.$i.1 {
300 page_write $g1 "Page-1 v$i"
301 lrange [pager_stats $p1] 8 9
302 } {state 4}
303 do_test pager2-4.5.$i.2 {
304 for {set j 2} {$j<=20} {incr j} {
305 set gx [page_get $p1 $j]
306 page_write $gx "Page-$j v$i"
307 page_unref $gx
308 if {$j==$i} {
309 pager_stmt_begin $p1
310 }
311 }
312 } {}
313 do_test pager2-4.5.$i.3 {
314 set res {}
315 for {set j 2} {$j<=20} {incr j} {
316 set gx [page_get $p1 $j]
317 set value [page_read $gx]
318 page_unref $gx
319 set shouldbe "Page-$j v$i"
320 if {$value!=$shouldbe} {
321 lappend res $value $shouldbe
322 }
323 }
324 set res
325 } {}
326 do_test pager2-4.5.$i.4 {
327 pager_rollback $p1
328 set res {}
329 for {set j 2} {$j<=20} {incr j} {
330 set gx [page_get $p1 $j]
331 set value [page_read $gx]
332 page_unref $gx
333 set shouldbe "Page-$j v[expr {$i-1}]"
334 if {$value!=$shouldbe} {
335 lappend res $value $shouldbe
336 }
337 }
338 set res
339 } {}
340 do_test pager2-4.5.$i.5 {
341 page_write $g1 "Page-1 v$i"
342 lrange [pager_stats $p1] 8 9
343 } {state 4}
344 do_test pager2-4.5.$i.6 {
345 for {set j 2} {$j<=20} {incr j} {
346 set gx [page_get $p1 $j]
347 page_write $gx "Page-$j v$i"
348 page_unref $gx
349 if {$j==$i} {
350 pager_stmt_begin $p1
351 }
352 }
353 } {}
354 do_test pager2-4.5.$i.7 {
355 pager_stmt_rollback $p1
356 for {set j 2} {$j<=20} {incr j} {
357 set gx [page_get $p1 $j]
358 set value [page_read $gx]
359 page_unref $gx
360 if {$j<=$i || $i==1} {
361 set shouldbe "Page-$j v$i"
362 } else {
363 set shouldbe "Page-$j v[expr {$i-1}]"
364 }
365 if {$value!=$shouldbe} {
366 lappend res $value $shouldbe
367 }
368 }
369 set res
370 } {}
371 do_test pager2-4.5.$i.8 {
372 for {set j 2} {$j<=20} {incr j} {
373 set gx [page_get $p1 $j]
374 page_write $gx "Page-$j v$i"
375 page_unref $gx
376 if {$j==$i} {
377 pager_stmt_begin $p1
378 }
379 }
380 } {}
381 do_test pager2-4.5.$i.9 {
382 pager_stmt_commit $p1
383 for {set j 2} {$j<=20} {incr j} {
384 set gx [page_get $p1 $j]
385 set value [page_read $gx]
386 page_unref $gx
387 set shouldbe "Page-$j v$i"
388 if {$value!=$shouldbe} {
389 lappend res $value $shouldbe
390 }
391 }
392 set res
393 } {}
394 do_test pager2-4.5.$i.10 {
395 pager_commit $p1
396 lrange [pager_stats $p1] 8 9
397 } {state 1}
398}
399
400do_test pager2-4.99 {
401 pager_close $::p1
402} {}
403
404} ;# ifcapable inmemory
405} ;# end if( has pager_open command );
406
407
408finish_test