Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add test cases to mmap1.test and pagerfault.test. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | experimental-mmap |
Files: | files | file ages | folders |
SHA1: |
3050136be962427cc4dcced6077ef29b |
User & Date: | dan 2013-04-02 18:33:55.243 |
Context
2013-04-02
| ||
20:13 | Add assert to the Windows VFS pertaining to the size of the SIZE_T type. (check-in: 4eeea58354 user: mistachkin tags: experimental-mmap) | |
18:33 | Add test cases to mmap1.test and pagerfault.test. (check-in: 3050136be9 user: dan tags: experimental-mmap) | |
18:31 | Change an assert in pager.c to acknowledge that it is possible for sqlite3PagerRollback() to return SQLITE_CORRUPT. (check-in: d641d3d20d user: dan tags: experimental-mmap) | |
Changes
Changes to test/mmap1.test.
︙ | ︙ | |||
125 126 127 128 129 130 131 132 | } } {16} do_execsql_test 2.4 { PRAGMA wal_checkpoint; } {0 24 24} finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > | 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | } } {16} do_execsql_test 2.4 { PRAGMA wal_checkpoint; } {0 24 24} reset_db db func rblob rblob do_execsql_test 3.1 { PRAGMA auto_vacuum = 1; CREATE TABLE t1(a, b, UNIQUE(a, b)); INSERT INTO t1 VALUES(rblob(500), rblob(500)); INSERT INTO t1 SELECT rblob(500), rblob(500) FROM t1; -- 2 INSERT INTO t1 SELECT rblob(500), rblob(500) FROM t1; -- 4 INSERT INTO t1 SELECT rblob(500), rblob(500) FROM t1; -- 8 CREATE TABLE t2(a, b, UNIQUE(a, b)); INSERT INTO t2 SELECT * FROM t1; } {} do_test 3.2 { set nRow 0 db eval {SELECT * FROM t2 ORDER BY a, b} { if {$nRow==4} { db eval { DELETE FROM t1 } } incr nRow } set nRow } {8} finish_test |
Changes to test/pagerfault.test.
︙ | ︙ | |||
1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 | set ::channel [db incrblob t1 a 1] } -body { puts $::channel [string repeat abc 6000] flush $::channel } -test { catchsql { UPDATE t2 SET a = a_string(800), b = a_string(800) } catch { close $::channel } catchsql { ROLLBACK } faultsim_integrity_check } finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 | set ::channel [db incrblob t1 a 1] } -body { puts $::channel [string repeat abc 6000] flush $::channel } -test { catchsql { UPDATE t2 SET a = a_string(800), b = a_string(800) } catch { close $::channel } catchsql { ROLLBACK } faultsim_integrity_check } #------------------------------------------------------------------------- # do_test pagerfault-28-pre { faultsim_delete_and_reopen db func a_string a_string execsql { PRAGMA page_size = 512; PRAGMA journal_mode = wal; PRAGMA wal_autocheckpoint = 0; PRAGMA cache_size = 100000; BEGIN; CREATE TABLE t2(a UNIQUE, b UNIQUE); INSERT INTO t2 VALUES( a_string(800), a_string(800) ); INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2; INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2; INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2; INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2; INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2; INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2; INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2; INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2; INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2; INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2; INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2; COMMIT; CREATE TABLE t1(a PRIMARY KEY, b); } expr {[file size test.db-shm] >= 96*1024} } {1} faultsim_save_and_close do_faultsim_test pagerfault-28 -faults oom* -prep { faultsim_restore_and_reopen execsql { PRAGMA mmap_limit=0 } sqlite3 db2 test.db db2 eval { SELECT count(*) FROM t2 } db func a_string a_string execsql { BEGIN; INSERT INTO t1 VALUES(a_string(2000), a_string(2000)); INSERT INTO t1 VALUES(a_string(2000), a_string(2000)); } set ::STMT [sqlite3_prepare db "SELECT * FROM t1 ORDER BY a" -1 DUMMY] sqlite3_step $::STMT } -body { execsql { ROLLBACK } } -test { db2 close sqlite3_finalize $::STMT catchsql { ROLLBACK } faultsim_integrity_check } finish_test |