diff options
author | dan miller | 2007-10-20 02:49:29 +0000 |
---|---|---|
committer | dan miller | 2007-10-20 02:49:29 +0000 |
commit | e36d23a85ebff914d74bb541558c2b6082b78edb (patch) | |
tree | 54b58fdf162e78af64055282a6035c8d2443389d /libraries/sqlite/unix/sqlite-3.5.1/test/pager2.test | |
parent | * Fixed an issue whereby avatar chat distances were being calculated against ... (diff) | |
download | opensim-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.test | 408 |
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 | |||
17 | set testdir [file dirname $argv0] | ||
18 | source $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 | # | ||
23 | if {[info commands pager_open]!=""} { | ||
24 | ifcapable memorydb { | ||
25 | db close | ||
26 | |||
27 | # Basic sanity check. Open and close a pager. | ||
28 | # | ||
29 | do_test pager2-1.0 { | ||
30 | set v [catch { | ||
31 | set ::p1 [pager_open :memory: 10] | ||
32 | } msg] | ||
33 | } {0} | ||
34 | do_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} | ||
37 | do_test pager2-1.2 { | ||
38 | pager_pagecount $::p1 | ||
39 | } {0} | ||
40 | do_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} | ||
43 | do_test pager2-1.4 { | ||
44 | pager_close $::p1 | ||
45 | } {} | ||
46 | |||
47 | # Try to write a few pages. | ||
48 | # | ||
49 | do_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} | ||
60 | do_test pager2-2.3.1 { | ||
61 | set ::gx [page_lookup $::p1 1] | ||
62 | } {} | ||
63 | do_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} | ||
66 | do_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} | ||
73 | do_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} | ||
76 | do_test pager2-2.3.4 { | ||
77 | set ::gx [page_lookup $::p1 1] | ||
78 | expr {$::gx!=""} | ||
79 | } {1} | ||
80 | do_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} | ||
83 | do_test pager2-2.3.6 { | ||
84 | expr {$::g1==$::gx} | ||
85 | } {1} | ||
86 | do_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} | ||
90 | do_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} | ||
93 | do_test pager2-2.5 { | ||
94 | pager_pagecount $::p1 | ||
95 | } {0} | ||
96 | do_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} | ||
99 | do_test pager2-2.7 { | ||
100 | page_number $::g1 | ||
101 | } {1} | ||
102 | do_test pager2-2.8 { | ||
103 | page_read $::g1 | ||
104 | } {} | ||
105 | do_test pager2-2.9 { | ||
106 | page_unref $::g1 | ||
107 | } {} | ||
108 | do_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} | ||
111 | do_test pager2-2.11 { | ||
112 | set ::g1 [page_get $::p1 1] | ||
113 | expr {$::g1!=0} | ||
114 | } {1} | ||
115 | do_test pager2-2.12 { | ||
116 | page_number $::g1 | ||
117 | } {1} | ||
118 | do_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} | ||
121 | do_test pager2-2.14 { | ||
122 | set v [catch { | ||
123 | page_write $::g1 "Page-One" | ||
124 | } msg] | ||
125 | lappend v $msg | ||
126 | } {0 {}} | ||
127 | do_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} | ||
130 | do_test pager2-2.16 { | ||
131 | page_read $::g1 | ||
132 | } {Page-One} | ||
133 | do_test pager2-2.17 { | ||
134 | set v [catch { | ||
135 | pager_commit $::p1 | ||
136 | } msg] | ||
137 | lappend v $msg | ||
138 | } {0 {}} | ||
139 | do_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} | ||
142 | do_test pager2-2.19 { | ||
143 | pager_pagecount $::p1 | ||
144 | } {1} | ||
145 | do_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} | ||
148 | do_test pager2-2.22 { | ||
149 | page_unref $::g1 | ||
150 | } {} | ||
151 | do_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} | ||
154 | do_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} | ||
161 | do_test pager2-2.25 { | ||
162 | page_read $::g1 | ||
163 | } {Page-One} | ||
164 | do_test pager2-2.26 { | ||
165 | set v [catch { | ||
166 | page_write $::g1 {page-one} | ||
167 | } msg] | ||
168 | lappend v $msg | ||
169 | } {0 {}} | ||
170 | do_test pager2-2.27 { | ||
171 | page_read $::g1 | ||
172 | } {page-one} | ||
173 | do_test pager2-2.28 { | ||
174 | set v [catch { | ||
175 | pager_rollback $::p1 | ||
176 | } msg] | ||
177 | lappend v $msg | ||
178 | } {0 {}} | ||
179 | do_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} | ||
195 | do_test pager2-3.2 { | ||
196 | pager_pagecount $::p1 | ||
197 | } {1} | ||
198 | do_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} | ||
205 | do_test pager2-3.4 { | ||
206 | page_read $::g(1) | ||
207 | } {Page-One} | ||
208 | do_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 | } {} | ||
216 | for {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 | } | ||
224 | for {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 | } | ||
247 | do_test pager2-3.99 { | ||
248 | pager_close $::p1 | ||
249 | } {} | ||
250 | |||
251 | # tests of the checkpoint mechanism and api | ||
252 | # | ||
253 | do_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} | ||
260 | do_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 | } {} | ||
270 | for {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 | } | ||
278 | do_test pager2-4.3 { | ||
279 | lrange [pager_stats $::p1] 0 1 | ||
280 | } {ref 1} | ||
281 | do_test pager2-4.4 { | ||
282 | lrange [pager_stats $::p1] 8 9 | ||
283 | } {state 1} | ||
284 | |||
285 | for {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 | |||
400 | do_test pager2-4.99 { | ||
401 | pager_close $::p1 | ||
402 | } {} | ||
403 | |||
404 | } ;# ifcapable inmemory | ||
405 | } ;# end if( has pager_open command ); | ||
406 | |||
407 | |||
408 | finish_test | ||