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/pager.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/pager.test')
-rw-r--r-- | libraries/sqlite/unix/sqlite-3.5.1/test/pager.test | 571 |
1 files changed, 571 insertions, 0 deletions
diff --git a/libraries/sqlite/unix/sqlite-3.5.1/test/pager.test b/libraries/sqlite/unix/sqlite-3.5.1/test/pager.test new file mode 100644 index 0000000..bb92617 --- /dev/null +++ b/libraries/sqlite/unix/sqlite-3.5.1/test/pager.test | |||
@@ -0,0 +1,571 @@ | |||
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: pager.test,v 1.30 2007/08/24 16:29:24 drh Exp $ | ||
15 | |||
16 | |||
17 | set testdir [file dirname $argv0] | ||
18 | source $testdir/tester.tcl | ||
19 | |||
20 | if {[info commands pager_open]!=""} { | ||
21 | db close | ||
22 | |||
23 | # Basic sanity check. Open and close a pager. | ||
24 | # | ||
25 | do_test pager-1.0 { | ||
26 | catch {file delete -force ptf1.db} | ||
27 | catch {file delete -force ptf1.db-journal} | ||
28 | set v [catch { | ||
29 | set ::p1 [pager_open ptf1.db 10] | ||
30 | } msg] | ||
31 | } {0} | ||
32 | do_test pager-1.1 { | ||
33 | pager_stats $::p1 | ||
34 | } {ref 0 page 0 max 10 size -1 state 0 err 0 hit 0 miss 0 ovfl 0} | ||
35 | do_test pager-1.2 { | ||
36 | pager_pagecount $::p1 | ||
37 | } {0} | ||
38 | do_test pager-1.3 { | ||
39 | pager_stats $::p1 | ||
40 | } {ref 0 page 0 max 10 size -1 state 0 err 0 hit 0 miss 0 ovfl 0} | ||
41 | do_test pager-1.4 { | ||
42 | pager_close $::p1 | ||
43 | } {} | ||
44 | |||
45 | # Try to write a few pages. | ||
46 | # | ||
47 | do_test pager-2.1 { | ||
48 | set v [catch { | ||
49 | set ::p1 [pager_open ptf1.db 10] | ||
50 | } msg] | ||
51 | } {0} | ||
52 | #do_test pager-2.2 { | ||
53 | # set v [catch { | ||
54 | # set ::g1 [page_get $::p1 0] | ||
55 | # } msg] | ||
56 | # lappend v $msg | ||
57 | #} {1 SQLITE_ERROR} | ||
58 | do_test pager-2.3.1 { | ||
59 | set ::gx [page_lookup $::p1 1] | ||
60 | } {} | ||
61 | do_test pager-2.3.2 { | ||
62 | pager_stats $::p1 | ||
63 | } {ref 0 page 0 max 10 size -1 state 0 err 0 hit 0 miss 0 ovfl 0} | ||
64 | do_test pager-2.3.3 { | ||
65 | set v [catch { | ||
66 | set ::g1 [page_get $::p1 1] | ||
67 | } msg] | ||
68 | if {$v} {lappend v $msg} | ||
69 | set v | ||
70 | } {0} | ||
71 | do_test pager-2.3.3 { | ||
72 | pager_stats $::p1 | ||
73 | } {ref 1 page 1 max 10 size 0 state 1 err 0 hit 0 miss 1 ovfl 0} | ||
74 | do_test pager-2.3.4 { | ||
75 | set ::gx [page_lookup $::p1 1] | ||
76 | expr {$::gx!=""} | ||
77 | } {1} | ||
78 | do_test pager-2.3.5 { | ||
79 | pager_stats $::p1 | ||
80 | } {ref 1 page 1 max 10 size 0 state 1 err 0 hit 0 miss 1 ovfl 0} | ||
81 | do_test pager-2.3.6 { | ||
82 | expr {$::g1==$::gx} | ||
83 | } {1} | ||
84 | do_test pager-2.3.7 { | ||
85 | page_unref $::gx | ||
86 | pager_stats $::p1 | ||
87 | } {ref 1 page 1 max 10 size 0 state 1 err 0 hit 0 miss 1 ovfl 0} | ||
88 | do_test pager-2.4 { | ||
89 | pager_stats $::p1 | ||
90 | } {ref 1 page 1 max 10 size 0 state 1 err 0 hit 0 miss 1 ovfl 0} | ||
91 | do_test pager-2.5 { | ||
92 | pager_pagecount $::p1 | ||
93 | } {0} | ||
94 | do_test pager-2.6 { | ||
95 | pager_stats $::p1 | ||
96 | } {ref 1 page 1 max 10 size 0 state 1 err 0 hit 0 miss 1 ovfl 0} | ||
97 | do_test pager-2.7 { | ||
98 | page_number $::g1 | ||
99 | } {1} | ||
100 | do_test pager-2.8 { | ||
101 | page_read $::g1 | ||
102 | } {} | ||
103 | do_test pager-2.9 { | ||
104 | page_unref $::g1 | ||
105 | } {} | ||
106 | |||
107 | # Update 24/03/2007: Even though the ref-count has dropped to zero, the | ||
108 | # pager-cache still contains some pages. Previously, it was always true | ||
109 | # that if there were no references to a pager it was empty. | ||
110 | do_test pager-2.10 { | ||
111 | pager_stats $::p1 | ||
112 | } {ref 0 page 1 max 10 size -1 state 0 err 0 hit 0 miss 1 ovfl 0} | ||
113 | do_test pager-2.11 { | ||
114 | set ::g1 [page_get $::p1 1] | ||
115 | expr {$::g1!=0} | ||
116 | } {1} | ||
117 | do_test pager-2.12 { | ||
118 | page_number $::g1 | ||
119 | } {1} | ||
120 | do_test pager-2.13 { | ||
121 | pager_stats $::p1 | ||
122 | } {ref 1 page 1 max 10 size 0 state 1 err 0 hit 1 miss 1 ovfl 0} | ||
123 | do_test pager-2.14 { | ||
124 | set v [catch { | ||
125 | page_write $::g1 "Page-One" | ||
126 | } msg] | ||
127 | lappend v $msg | ||
128 | } {0 {}} | ||
129 | do_test pager-2.15 { | ||
130 | pager_stats $::p1 | ||
131 | } {ref 1 page 1 max 10 size 1 state 2 err 0 hit 1 miss 1 ovfl 0} | ||
132 | do_test pager-2.16 { | ||
133 | page_read $::g1 | ||
134 | } {Page-One} | ||
135 | do_test pager-2.17 { | ||
136 | set v [catch { | ||
137 | pager_commit $::p1 | ||
138 | } msg] | ||
139 | lappend v $msg | ||
140 | } {0 {}} | ||
141 | do_test pager-2.20 { | ||
142 | pager_stats $::p1 | ||
143 | } {ref 1 page 1 max 10 size -1 state 1 err 0 hit 2 miss 1 ovfl 0} | ||
144 | do_test pager-2.19 { | ||
145 | pager_pagecount $::p1 | ||
146 | } {1} | ||
147 | do_test pager-2.21 { | ||
148 | pager_stats $::p1 | ||
149 | } {ref 1 page 1 max 10 size 1 state 1 err 0 hit 2 miss 1 ovfl 0} | ||
150 | do_test pager-2.22 { | ||
151 | page_unref $::g1 | ||
152 | } {} | ||
153 | do_test pager-2.23 { | ||
154 | pager_stats $::p1 | ||
155 | } {ref 0 page 1 max 10 size -1 state 0 err 0 hit 2 miss 1 ovfl 0} | ||
156 | do_test pager-2.24 { | ||
157 | set v [catch { | ||
158 | page_get $::p1 1 | ||
159 | } ::g1] | ||
160 | if {$v} {lappend v $::g1} | ||
161 | set v | ||
162 | } {0} | ||
163 | do_test pager-2.25 { | ||
164 | page_read $::g1 | ||
165 | } {Page-One} | ||
166 | do_test pager-2.26 { | ||
167 | set v [catch { | ||
168 | page_write $::g1 {page-one} | ||
169 | } msg] | ||
170 | lappend v $msg | ||
171 | } {0 {}} | ||
172 | do_test pager-2.27 { | ||
173 | page_read $::g1 | ||
174 | } {page-one} | ||
175 | do_test pager-2.28 { | ||
176 | set v [catch { | ||
177 | pager_rollback $::p1 | ||
178 | } msg] | ||
179 | lappend v $msg | ||
180 | } {0 {}} | ||
181 | do_test pager-2.29 { | ||
182 | page_unref $::g1 | ||
183 | set ::g1 [page_get $::p1 1] | ||
184 | page_read $::g1 | ||
185 | } {Page-One} | ||
186 | do_test pager-2.99 { | ||
187 | pager_close $::p1 | ||
188 | } {} | ||
189 | |||
190 | do_test pager-3.1 { | ||
191 | set v [catch { | ||
192 | set ::p1 [pager_open ptf1.db 15] | ||
193 | } msg] | ||
194 | if {$v} {lappend v $msg} | ||
195 | set v | ||
196 | } {0} | ||
197 | do_test pager-3.2 { | ||
198 | pager_pagecount $::p1 | ||
199 | } {1} | ||
200 | do_test pager-3.3 { | ||
201 | set v [catch { | ||
202 | set ::g(1) [page_get $::p1 1] | ||
203 | } msg] | ||
204 | if {$v} {lappend v $msg} | ||
205 | set v | ||
206 | } {0} | ||
207 | do_test pager-3.4 { | ||
208 | page_read $::g(1) | ||
209 | } {Page-One} | ||
210 | do_test pager-3.5 { | ||
211 | for {set i 2} {$i<=20} {incr i} { | ||
212 | set gx [page_get $::p1 $i] | ||
213 | page_write $gx "Page-$i" | ||
214 | page_unref $gx | ||
215 | } | ||
216 | pager_commit $::p1 | ||
217 | } {} | ||
218 | for {set i 2} {$i<=20} {incr i} { | ||
219 | do_test pager-3.6.[expr {$i-1}] [subst { | ||
220 | set gx \[page_get $::p1 $i\] | ||
221 | set v \[page_read \$gx\] | ||
222 | page_unref \$gx | ||
223 | set v | ||
224 | }] "Page-$i" | ||
225 | } | ||
226 | for {set i 1} {$i<=20} {incr i} { | ||
227 | regsub -all CNT { | ||
228 | set ::g1 [page_get $::p1 CNT] | ||
229 | set ::g2 [page_get $::p1 CNT] | ||
230 | set ::vx [page_read $::g2] | ||
231 | expr {$::g1==$::g2} | ||
232 | } $i body; | ||
233 | do_test pager-3.7.$i.1 $body {1} | ||
234 | regsub -all CNT { | ||
235 | page_unref $::g2 | ||
236 | set vy [page_read $::g1] | ||
237 | expr {$vy==$::vx} | ||
238 | } $i body; | ||
239 | do_test pager-3.7.$i.2 $body {1} | ||
240 | regsub -all CNT { | ||
241 | page_unref $::g1 | ||
242 | set gx [page_get $::p1 CNT] | ||
243 | set vy [page_read $gx] | ||
244 | page_unref $gx | ||
245 | expr {$vy==$::vx} | ||
246 | } $i body; | ||
247 | do_test pager-3.7.$i.3 $body {1} | ||
248 | } | ||
249 | do_test pager-3.99 { | ||
250 | pager_close $::p1 | ||
251 | } {} | ||
252 | |||
253 | # tests of the checkpoint mechanism and api | ||
254 | # | ||
255 | do_test pager-4.0 { | ||
256 | set v [catch { | ||
257 | file delete -force ptf1.db | ||
258 | set ::p1 [pager_open ptf1.db 15] | ||
259 | } msg] | ||
260 | if {$v} {lappend v $msg} | ||
261 | set v | ||
262 | } {0} | ||
263 | do_test pager-4.1 { | ||
264 | set g1 [page_get $::p1 1] | ||
265 | page_write $g1 "Page-1 v0" | ||
266 | for {set i 2} {$i<=20} {incr i} { | ||
267 | set gx [page_get $::p1 $i] | ||
268 | page_write $gx "Page-$i v0" | ||
269 | page_unref $gx | ||
270 | } | ||
271 | pager_commit $::p1 | ||
272 | } {} | ||
273 | for {set i 1} {$i<=20} {incr i} { | ||
274 | do_test pager-4.2.$i { | ||
275 | set gx [page_get $p1 $i] | ||
276 | set v [page_read $gx] | ||
277 | page_unref $gx | ||
278 | set v | ||
279 | } "Page-$i v0" | ||
280 | } | ||
281 | do_test pager-4.3 { | ||
282 | lrange [pager_stats $::p1] 0 1 | ||
283 | } {ref 1} | ||
284 | do_test pager-4.4 { | ||
285 | lrange [pager_stats $::p1] 8 9 | ||
286 | } {state 1} | ||
287 | |||
288 | for {set i 1} {$i<20} {incr i} { | ||
289 | do_test pager-4.5.$i.0 { | ||
290 | set res {} | ||
291 | for {set j 2} {$j<=20} {incr j} { | ||
292 | set gx [page_get $p1 $j] | ||
293 | set value [page_read $gx] | ||
294 | page_unref $gx | ||
295 | set shouldbe "Page-$j v[expr {$i-1}]" | ||
296 | if {$value!=$shouldbe} { | ||
297 | lappend res $value $shouldbe | ||
298 | } | ||
299 | } | ||
300 | set res | ||
301 | } {} | ||
302 | do_test pager-4.5.$i.1 { | ||
303 | page_write $g1 "Page-1 v$i" | ||
304 | lrange [pager_stats $p1] 8 9 | ||
305 | } {state 2} | ||
306 | do_test pager-4.5.$i.2 { | ||
307 | for {set j 2} {$j<=20} {incr j} { | ||
308 | set gx [page_get $p1 $j] | ||
309 | page_write $gx "Page-$j v$i" | ||
310 | page_unref $gx | ||
311 | if {$j==$i} { | ||
312 | pager_stmt_begin $p1 | ||
313 | } | ||
314 | } | ||
315 | } {} | ||
316 | do_test pager-4.5.$i.3 { | ||
317 | set res {} | ||
318 | for {set j 2} {$j<=20} {incr j} { | ||
319 | set gx [page_get $p1 $j] | ||
320 | set value [page_read $gx] | ||
321 | page_unref $gx | ||
322 | set shouldbe "Page-$j v$i" | ||
323 | if {$value!=$shouldbe} { | ||
324 | lappend res $value $shouldbe | ||
325 | } | ||
326 | } | ||
327 | set res | ||
328 | } {} | ||
329 | do_test pager-4.5.$i.4 { | ||
330 | pager_rollback $p1 | ||
331 | set res {} | ||
332 | for {set j 2} {$j<=20} {incr j} { | ||
333 | set gx [page_get $p1 $j] | ||
334 | set value [page_read $gx] | ||
335 | page_unref $gx | ||
336 | set shouldbe "Page-$j v[expr {$i-1}]" | ||
337 | if {$value!=$shouldbe} { | ||
338 | lappend res $value $shouldbe | ||
339 | } | ||
340 | } | ||
341 | set res | ||
342 | } {} | ||
343 | do_test pager-4.5.$i.5 { | ||
344 | page_write $g1 "Page-1 v$i" | ||
345 | lrange [pager_stats $p1] 8 9 | ||
346 | } {state 2} | ||
347 | do_test pager-4.5.$i.6 { | ||
348 | for {set j 2} {$j<=20} {incr j} { | ||
349 | set gx [page_get $p1 $j] | ||
350 | page_write $gx "Page-$j v$i" | ||
351 | page_unref $gx | ||
352 | if {$j==$i} { | ||
353 | pager_stmt_begin $p1 | ||
354 | } | ||
355 | } | ||
356 | } {} | ||
357 | do_test pager-4.5.$i.7 { | ||
358 | pager_stmt_rollback $p1 | ||
359 | for {set j 2} {$j<=20} {incr j} { | ||
360 | set gx [page_get $p1 $j] | ||
361 | set value [page_read $gx] | ||
362 | page_unref $gx | ||
363 | if {$j<=$i || $i==1} { | ||
364 | set shouldbe "Page-$j v$i" | ||
365 | } else { | ||
366 | set shouldbe "Page-$j v[expr {$i-1}]" | ||
367 | } | ||
368 | if {$value!=$shouldbe} { | ||
369 | lappend res $value $shouldbe | ||
370 | } | ||
371 | } | ||
372 | set res | ||
373 | } {} | ||
374 | do_test pager-4.5.$i.8 { | ||
375 | for {set j 2} {$j<=20} {incr j} { | ||
376 | set gx [page_get $p1 $j] | ||
377 | page_write $gx "Page-$j v$i" | ||
378 | page_unref $gx | ||
379 | if {$j==$i} { | ||
380 | pager_stmt_begin $p1 | ||
381 | } | ||
382 | } | ||
383 | } {} | ||
384 | do_test pager-4.5.$i.9 { | ||
385 | pager_stmt_commit $p1 | ||
386 | for {set j 2} {$j<=20} {incr j} { | ||
387 | set gx [page_get $p1 $j] | ||
388 | set value [page_read $gx] | ||
389 | page_unref $gx | ||
390 | set shouldbe "Page-$j v$i" | ||
391 | if {$value!=$shouldbe} { | ||
392 | lappend res $value $shouldbe | ||
393 | } | ||
394 | } | ||
395 | set res | ||
396 | } {} | ||
397 | do_test pager-4.5.$i.10 { | ||
398 | pager_commit $p1 | ||
399 | lrange [pager_stats $p1] 8 9 | ||
400 | } {state 1} | ||
401 | } | ||
402 | |||
403 | # Test that nothing bad happens when sqlite3pager_set_cachesize() is | ||
404 | # called with a negative argument. | ||
405 | do_test pager-4.6.1 { | ||
406 | pager_close [pager_open ptf2.db -15] | ||
407 | } {} | ||
408 | |||
409 | # Test truncate on an in-memory database is Ok. | ||
410 | ifcapable memorydb { | ||
411 | do_test pager-4.6.2 { | ||
412 | set ::p2 [pager_open :memory: 10] | ||
413 | pager_truncate $::p2 5 | ||
414 | } {} | ||
415 | do_test pager-4.6.3 { | ||
416 | for {set i 1} {$i<5} {incr i} { | ||
417 | set p [page_get $::p2 $i] | ||
418 | page_write $p "Page $i" | ||
419 | pager_commit $::p2 | ||
420 | page_unref $p | ||
421 | } | ||
422 | # pager_truncate $::p2 3 | ||
423 | } {} | ||
424 | do_test pager-4.6.4 { | ||
425 | pager_close $::p2 | ||
426 | } {} | ||
427 | } | ||
428 | |||
429 | do_test pager-4.99 { | ||
430 | pager_close $::p1 | ||
431 | } {} | ||
432 | |||
433 | |||
434 | |||
435 | file delete -force ptf1.db | ||
436 | |||
437 | } ;# end if( not mem: and has pager_open command ); | ||
438 | |||
439 | if 0 { | ||
440 | # Ticket #615: an assertion fault inside the pager. It is a benign | ||
441 | # fault, but we might as well test for it. | ||
442 | # | ||
443 | do_test pager-5.1 { | ||
444 | sqlite3 db test.db | ||
445 | execsql { | ||
446 | BEGIN; | ||
447 | CREATE TABLE t1(x); | ||
448 | PRAGMA synchronous=off; | ||
449 | COMMIT; | ||
450 | } | ||
451 | } {} | ||
452 | } | ||
453 | |||
454 | # The following tests cover rolling back hot journal files. | ||
455 | # They can't be run on windows because the windows version of | ||
456 | # SQLite holds a mandatory exclusive lock on journal files it has open. | ||
457 | # | ||
458 | if {$tcl_platform(platform)!="windows"} { | ||
459 | do_test pager-6.1 { | ||
460 | file delete -force test2.db | ||
461 | file delete -force test2.db-journal | ||
462 | sqlite3 db2 test2.db | ||
463 | execsql { | ||
464 | PRAGMA synchronous = 0; | ||
465 | CREATE TABLE abc(a, b, c); | ||
466 | INSERT INTO abc VALUES(1, 2, randstr(200,200)); | ||
467 | INSERT INTO abc VALUES(1, 2, randstr(200,200)); | ||
468 | INSERT INTO abc VALUES(1, 2, randstr(200,200)); | ||
469 | INSERT INTO abc VALUES(1, 2, randstr(200,200)); | ||
470 | INSERT INTO abc VALUES(1, 2, randstr(200,200)); | ||
471 | INSERT INTO abc VALUES(1, 2, randstr(200,200)); | ||
472 | INSERT INTO abc VALUES(1, 2, randstr(200,200)); | ||
473 | INSERT INTO abc VALUES(1, 2, randstr(200,200)); | ||
474 | INSERT INTO abc VALUES(1, 2, randstr(200,200)); | ||
475 | BEGIN; | ||
476 | UPDATE abc SET c = randstr(200,200); | ||
477 | } db2 | ||
478 | copy_file test2.db test.db | ||
479 | copy_file test2.db-journal test.db-journal | ||
480 | |||
481 | set f [open test.db-journal a] | ||
482 | fconfigure $f -encoding binary | ||
483 | seek $f [expr [file size test.db-journal] - 1032] start | ||
484 | puts -nonewline $f "\00\00\00\00" | ||
485 | close $f | ||
486 | |||
487 | sqlite3 db test.db | ||
488 | execsql { | ||
489 | SELECT sql FROM sqlite_master | ||
490 | } | ||
491 | } {{CREATE TABLE abc(a, b, c)}} | ||
492 | |||
493 | do_test pager-6.2 { | ||
494 | copy_file test2.db test.db | ||
495 | copy_file test2.db-journal test.db-journal | ||
496 | |||
497 | set f [open test.db-journal a] | ||
498 | fconfigure $f -encoding binary | ||
499 | seek $f [expr [file size test.db-journal] - 1032] start | ||
500 | puts -nonewline $f "\00\00\00\FF" | ||
501 | close $f | ||
502 | |||
503 | sqlite3 db test.db | ||
504 | execsql { | ||
505 | SELECT sql FROM sqlite_master | ||
506 | } | ||
507 | } {{CREATE TABLE abc(a, b, c)}} | ||
508 | |||
509 | do_test pager-6.3 { | ||
510 | copy_file test2.db test.db | ||
511 | copy_file test2.db-journal test.db-journal | ||
512 | |||
513 | set f [open test.db-journal a] | ||
514 | fconfigure $f -encoding binary | ||
515 | seek $f [expr [file size test.db-journal] - 4] start | ||
516 | puts -nonewline $f "\00\00\00\00" | ||
517 | close $f | ||
518 | |||
519 | sqlite3 db test.db | ||
520 | execsql { | ||
521 | SELECT sql FROM sqlite_master | ||
522 | } | ||
523 | } {{CREATE TABLE abc(a, b, c)}} | ||
524 | |||
525 | do_test pager-6.4.1 { | ||
526 | execsql { | ||
527 | BEGIN; | ||
528 | SELECT sql FROM sqlite_master; | ||
529 | } | ||
530 | copy_file test2.db-journal test.db-journal; | ||
531 | sqlite3 db3 test.db | ||
532 | catchsql { | ||
533 | BEGIN; | ||
534 | SELECT sql FROM sqlite_master; | ||
535 | } db3; | ||
536 | } {1 {database is locked}} | ||
537 | do_test pager-6.4.2 { | ||
538 | file delete -force test.db-journal | ||
539 | catchsql { | ||
540 | SELECT sql FROM sqlite_master; | ||
541 | } db3; | ||
542 | } {0 {{CREATE TABLE abc(a, b, c)}}} | ||
543 | do_test pager-6.4.3 { | ||
544 | db3 close | ||
545 | execsql { | ||
546 | COMMIT; | ||
547 | } | ||
548 | } {} | ||
549 | |||
550 | do_test pager-6.5 { | ||
551 | copy_file test2.db test.db | ||
552 | copy_file test2.db-journal test.db-journal | ||
553 | |||
554 | set f [open test.db-journal a] | ||
555 | fconfigure $f -encoding binary | ||
556 | puts -nonewline $f "hello" | ||
557 | puts -nonewline $f "\x00\x00\x00\x05\x01\x02\x03\x04" | ||
558 | puts -nonewline $f "\xd9\xd5\x05\xf9\x20\xa1\x63\xd7" | ||
559 | close $f | ||
560 | |||
561 | sqlite3 db test.db | ||
562 | execsql { | ||
563 | SELECT sql FROM sqlite_master | ||
564 | } | ||
565 | } {{CREATE TABLE abc(a, b, c)}} | ||
566 | |||
567 | do_test pager-6.5 { | ||
568 | db2 close | ||
569 | } {} | ||
570 | } | ||
571 | finish_test | ||