Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add tests to pager1.test. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | experimental |
Files: | files | file ages | folders |
SHA1: |
582fca89195af54e9668af249691654c |
User & Date: | dan 2010-06-18 18:59:49.000 |
Context
2010-06-19
| ||
11:30 | Add tests to pager1.test and pagerfault.test. (check-in: 58c0b5bfed user: dan tags: experimental) | |
2010-06-18
| ||
18:59 | Add tests to pager1.test. (check-in: 582fca8919 user: dan tags: experimental) | |
16:13 | Rearrange some code in OP_JournalMode to avoid incorrect returns from subsequent invocations of "PRAGMA journal_mode" following an IO error. (check-in: ce0a4a9b5f user: dan tags: experimental) | |
Changes
Changes to test/pager1.test.
︙ | ︙ | |||
18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # # pager1-1.*: Test inter-process locking (clients in multiple processes). # # pager1-2.*: Test intra-process locking (multiple clients in this process). # # pager1-3.*: Savepoint related tests. # proc do_execsql_test {testname sql result} { uplevel do_test $testname [list "execsql {$sql}"] [list $result] } proc do_catchsql_test {testname sql result} { uplevel do_test $testname [list "catchsql {$sql}"] [list $result] } | > > | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | # # pager1-1.*: Test inter-process locking (clients in multiple processes). # # pager1-2.*: Test intra-process locking (multiple clients in this process). # # pager1-3.*: Savepoint related tests. # # pager1-4.*: Hot-journal related tests. # proc do_execsql_test {testname sql result} { uplevel do_test $testname [list "execsql {$sql}"] [list $result] } proc do_catchsql_test {testname sql result} { uplevel do_test $testname [list "catchsql {$sql}"] [list $result] } |
︙ | ︙ | |||
205 206 207 208 209 210 211 212 213 214 215 216 217 218 | } {3 0} do_catchsql_test pager1-3.3 { INSERT INTO t1 SELECT a+3, randomblob(1500) FROM t1 } {1 {constraint failed}} do_execsql_test pager1-3.4 { SELECT * FROM counter } {3 0} do_execsql_test pager1-3.5 { SELECT a FROM t1 } {1 2 3} do_execsql_test pager1-3.6 { COMMIT } {} #------------------------------------------------------------------------- # Hot journal rollback related test cases. # # pager1.4.1.*: Test that the pager module deletes very small invalid # journal files. # | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 | } {3 0} do_catchsql_test pager1-3.3 { INSERT INTO t1 SELECT a+3, randomblob(1500) FROM t1 } {1 {constraint failed}} do_execsql_test pager1-3.4 { SELECT * FROM counter } {3 0} do_execsql_test pager1-3.5 { SELECT a FROM t1 } {1 2 3} do_execsql_test pager1-3.6 { COMMIT } {} testvfs tv -default 1 foreach code [list { set s 512 set sql { PRAGMA synchronous = off } } { set s 1024 set sql { PRAGMA journal_mode = memory } } { set s 2048 tv devchar safe_append } { set s 4096 set sql { PRAGMA journal_mode = WAL } }] { eval $code tv sectorsize $s do_test pager1-3.7.$s.1 { faultsim_delete_and_reopen execsql $sql execsql { PRAGMA cache_size = 10; CREATE TABLE t1(i INTEGER PRIMARY KEY, j blob); } } {} set tn 0 set lowpoint 0 foreach x { 70 22 96 59 96 50 22 56 21 16 37 64 43 40 0 38 22 38 55 0 6 43 62 32 93 54 18 13 29 45 66 29 25 61 31 53 82 75 25 96 86 10 69 2 29 6 60 80 95 42 82 85 50 68 96 90 39 78 69 87 97 48 74 65 43 x 86 34 26 50 41 85 58 44 89 22 6 51 45 46 58 32 97 6 1 12 32 2 69 39 48 71 33 31 5 58 90 43 24 54 12 9 18 57 4 38 91 42 27 45 50 38 56 29 10 0 26 37 83 1 78 15 47 30 75 62 46 29 68 5 30 4 27 96 33 95 79 75 56 10 29 70 32 75 52 88 5 36 50 57 46 63 88 65 x 44 95 64 20 24 35 69 61 61 2 35 92 42 46 23 98 78 1 38 72 79 35 94 37 13 59 5 93 27 58 80 75 58 7 67 13 10 76 84 4 8 70 81 45 8 41 98 5 60 26 92 29 91 90 2 62 40 4 5 22 80 15 83 76 52 88 29 5 68 73 72 7 54 17 89 32 81 94 51 28 53 71 8 42 54 59 70 79 x 35 59 37 22 8 72 10 48 79 6 87 96 59 95 45 56 6 4 86 68 25 28 43 75 47 9 53 18 69 51 11 94 86 65 23 87 49 19 20 20 33 14 11 86 42 23 8 40 94 55 4 38 52 30 6 25 44 79 57 82 30 87 86 75 40 92 29 26 82 91 67 64 15 51 17 11 15 27 32 7 38 1 52 82 26 99 17 18 38 13 20 65 91 98 50 81 49 15 94 45 84 35 31 67 13 43 78 3 94 77 47 18 96 66 99 77 11 11 70 18 1 29 79 57 59 86 94 34 91 15 24 53 61 73 58 46 36 79 90 89 12 0 91 0 86 44 71 83 75 76 97 65 13 80 42 39 15 44 90 18 67 69 1 72 17 99 12 72 77 17 3 34 75 59 92 76 18 86 60 12 20 98 48 14 12 67 45 44 10 2 5 88 7 45 5 47 45 75 19 25 42 62 66 17 94 63 0 53 38 81 26 11 97 33 13 36 81 82 73 26 78 90 28 78 26 61 9 74 70 53 17 86 51 90 3 30 99 5 25 44 6 72 84 32 74 46 16 44 74 82 84 9 58 90 85 82 53 40 37 } { incr tn set now [db one {SELECT count(i) FROM t1}] if {$x == "x"} { execsql { COMMIT ; BEGIN } set lowpoint $now do_test pager1.3.7.$s.2.$tn { sqlite3 db2 test.db execsql { SELECT COALESCE(max(i), 0) FROM t1; PRAGMA integrity_check; } } [list $lowpoint ok] db2 close } else { if {$now > $x } { if { $x>=$lowpoint } { execsql "ROLLBACK TO sp_$x" } else { execsql "DELETE FROM t1 WHERE i>$x" set lowpoint $x } } elseif {$now < $x} { for {set k $now} {$k < $x} {incr k} { execsql "SAVEPOINT sp_$k" execsql { INSERT INTO t1(j) VALUES(randomblob(1500)) } } } do_execsql_test pager1.3.7.$s.2.$tn { SELECT COALESCE(max(i), 0) FROM t1; PRAGMA integrity_check; } [list $x ok] } } } db close tv delete #------------------------------------------------------------------------- # Hot journal rollback related test cases. # # pager1.4.1.*: Test that the pager module deletes very small invalid # journal files. # |
︙ | ︙ |