Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: third_party/sqlite/src/test/walcksum.test

Issue 2765553002: [sql] Import SQLite 3.17.0. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # 2010 May 24 1 # 2010 May 24
2 # 2 #
3 # The author disclaims copyright to this source code. In place of 3 # The author disclaims copyright to this source code. In place of
4 # a legal notice, here is a blessing: 4 # a legal notice, here is a blessing:
5 # 5 #
6 # May you do good and not evil. 6 # May you do good and not evil.
7 # May you find forgiveness for yourself and forgive others. 7 # May you find forgiveness for yourself and forgive others.
8 # May you share freely, never taking more than you give. 8 # May you share freely, never taking more than you give.
9 # 9 #
10 #*********************************************************************** 10 #***********************************************************************
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 327
328 sqlite3 db2 test2.db 328 sqlite3 db2 test2.db
329 execsql { 329 execsql {
330 PRAGMA integrity_check; 330 PRAGMA integrity_check;
331 SELECT count(*) FROM t1; 331 SELECT count(*) FROM t1;
332 } db2 332 } db2
333 } {ok 256} 333 } {ok 256}
334 catch { db close } 334 catch { db close }
335 catch { db2 close } 335 catch { db2 close }
336 336
337 #-------------------------------------------------------------------------
338 # Test case walcksum-3.* tests that the checksum calculation detects single
339 # byte changes to frame or frame-header data and considers the frame
340 # invalid as a result.
341 #
342 do_test walcksum-3.1 {
343 forcedelete test.db test.db-wal test.db-journal
344 sqlite3 db test.db
345
346 execsql {
347 PRAGMA synchronous = NORMAL;
348 PRAGMA page_size = 1024;
349 CREATE TABLE t1(a, b);
350 INSERT INTO t1 VALUES(1, randomblob(300));
351 INSERT INTO t1 VALUES(2, randomblob(300));
352 PRAGMA journal_mode = WAL;
353 INSERT INTO t1 VALUES(3, randomblob(300));
354 }
355
356 file size test.db-wal
357 } [wal_file_size 1 1024]
358 do_test walcksum-3.2 {
359 forcecopy test.db-wal test2.db-wal
360 forcecopy test.db test2.db
361 sqlite3 db2 test2.db
362 execsql { SELECT a FROM t1 } db2
363 } {1 2 3}
364 db2 close
365 forcecopy test.db test2.db
366
367
368 foreach incr {1 2 3 20 40 60 80 100 120 140 160 180 200 220 240 253 254 255} {
369 do_test walcksum-3.3.$incr {
370 set FAIL 0
371 for {set iOff 0} {$iOff < [wal_file_size 1 1024]} {incr iOff} {
372
373 forcecopy test.db-wal test2.db-wal
374 set fd [open test2.db-wal r+]
375 fconfigure $fd -encoding binary
376 fconfigure $fd -translation binary
377
378 seek $fd $iOff
379 binary scan [read $fd 1] c x
380 seek $fd $iOff
381 puts -nonewline $fd [binary format c [expr {($x+$incr)&0xFF}]]
382 close $fd
383
384 sqlite3 db2 test2.db
385 if { [execsql { SELECT a FROM t1 } db2] != "1 2" } {set FAIL 1}
386 db2 close
387 }
388 set FAIL
389 } {0}
390 }
391 337
392 finish_test 338 finish_test
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698