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

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

Issue 901033002: Import SQLite 3.8.7.4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Chromium changes to support SQLite 3.8.7.4. Created 5 years, 10 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 03 1 # 2010 May 03
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 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 } -body { 116 } -body {
117 db eval { 117 db eval {
118 DELETE FROM abc; 118 DELETE FROM abc;
119 PRAGMA wal_checkpoint; 119 PRAGMA wal_checkpoint;
120 } 120 }
121 set {} {} 121 set {} {}
122 } -test { 122 } -test {
123 faultsim_test_result {0 {}} 123 faultsim_test_result {0 {}}
124 } 124 }
125 125
126
127 #-------------------------------------------------------------------------- 126 #--------------------------------------------------------------------------
128 # 127 #
129 if {[permutation] != "inmemory_journal"} { 128 if {[permutation] != "inmemory_journal"} {
130 faultsim_delete_and_reopen 129 faultsim_delete_and_reopen
131 faultsim_save_and_close 130 faultsim_save_and_close
132 do_faultsim_test walfault-4 -prep { 131 do_faultsim_test walfault-4 -prep {
133 faultsim_restore_and_reopen 132 faultsim_restore_and_reopen
134 } -body { 133 } -body {
135 execsql { 134 execsql {
136 PRAGMA auto_vacuum = 0; 135 PRAGMA auto_vacuum = 0;
137 PRAGMA journal_mode = WAL; 136 PRAGMA journal_mode = WAL;
138 CREATE TABLE t1(a PRIMARY KEY, b); 137 CREATE TABLE t1(a PRIMARY KEY, b);
139 INSERT INTO t1 VALUES('a', 'b'); 138 INSERT INTO t1 VALUES('a', 'b');
140 PRAGMA wal_checkpoint; 139 PRAGMA wal_checkpoint;
141 SELECT * FROM t1; 140 SELECT * FROM t1;
142 } 141 }
143 } -test { 142 } -test {
144 faultsim_test_result {0 {wal 0 7 7 a b}} 143 # Update: The following changed from {0 {wal 0 7 7 a b}} as a result
144 # of PSOW being set by default.
145 faultsim_test_result {0 {wal 0 5 5 a b}}
145 faultsim_integrity_check 146 faultsim_integrity_check
146 } 147 }
147 } 148 }
148 149
149 #-------------------------------------------------------------------------- 150 #--------------------------------------------------------------------------
150 # 151 #
151 do_test walfault-5-pre-1 { 152 do_test walfault-5-pre-1 {
152 faultsim_delete_and_reopen 153 faultsim_delete_and_reopen
153 execsql { 154 execsql {
154 PRAGMA page_size = 512; 155 PRAGMA page_size = 512;
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 execsql { 459 execsql {
459 PRAGMA journal_mode = WAL; 460 PRAGMA journal_mode = WAL;
460 PRAGMA wal_autocheckpoint = 0; 461 PRAGMA wal_autocheckpoint = 0;
461 BEGIN; 462 BEGIN;
462 CREATE TABLE abc(a PRIMARY KEY); 463 CREATE TABLE abc(a PRIMARY KEY);
463 INSERT INTO abc VALUES(randomblob(1500)); 464 INSERT INTO abc VALUES(randomblob(1500));
464 INSERT INTO abc VALUES(randomblob(1500)); 465 INSERT INTO abc VALUES(randomblob(1500));
465 COMMIT; 466 COMMIT;
466 } 467 }
467 faultsim_save_and_close 468 faultsim_save_and_close
468 file delete sv_test.db-shm 469 delete_file sv_test.db-shm
469 } {} 470 } {}
470 471
471 do_faultsim_test walfault-13.1 -prep { 472 do_faultsim_test walfault-13.1 -prep {
472 faultsim_restore_and_reopen 473 faultsim_restore_and_reopen
473 } -body { 474 } -body {
474 db eval { PRAGMA locking_mode = exclusive } 475 db eval { PRAGMA locking_mode = exclusive }
475 db eval { SELECT count(*) FROM abc } 476 db eval { SELECT count(*) FROM abc }
476 } -test { 477 } -test {
477 faultsim_test_result {0 2} 478 faultsim_test_result {0 2}
478 if {[file exists test.db-shm]} { error "Not using heap-memory mode" } 479 if {[file exists test.db-shm]} { error "Not using heap-memory mode" }
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 faultsim_save_and_close 536 faultsim_save_and_close
536 } {} 537 } {}
537 do_faultsim_test walfault-14 -prep { 538 do_faultsim_test walfault-14 -prep {
538 faultsim_restore_and_reopen 539 faultsim_restore_and_reopen
539 } -body { 540 } -body {
540 db eval { 541 db eval {
541 PRAGMA wal_checkpoint = full; 542 PRAGMA wal_checkpoint = full;
542 INSERT INTO abc VALUES(randomblob(1500)); 543 INSERT INTO abc VALUES(randomblob(1500));
543 } 544 }
544 } -test { 545 } -test {
545 faultsim_test_result {0 {0 10 10}} 546 faultsim_test_result {0 {0 9 9}}
546 faultsim_integrity_check 547 faultsim_integrity_check
547 set nRow [db eval {SELECT count(*) FROM abc}] 548 set nRow [db eval {SELECT count(*) FROM abc}]
548 if {!(($nRow==2 && $testrc) || $nRow==3)} { error "Bad db content" } 549 if {!(($nRow==2 && $testrc) || $nRow==3)} { error "Bad db content" }
549 } 550 }
550 551
552 #-------------------------------------------------------------------------
553 # Test fault-handling when switching out of exclusive-locking mode.
554 #
555 do_test walfault-14-pre {
556 faultsim_delete_and_reopen
557 execsql {
558 PRAGMA auto_vacuum = 0;
559 PRAGMA journal_mode = WAL;
560 BEGIN;
561 CREATE TABLE abc(a PRIMARY KEY);
562 INSERT INTO abc VALUES(randomblob(1500));
563 INSERT INTO abc VALUES(randomblob(1500));
564 COMMIT;
565 }
566 faultsim_save_and_close
567 } {}
568 do_faultsim_test walfault-14 -prep {
569 faultsim_restore_and_reopen
570 execsql {
571 SELECT count(*) FROM abc;
572 PRAGMA locking_mode = exclusive;
573 BEGIN;
574 INSERT INTO abc VALUES(randomblob(1500));
575 COMMIT;
576 }
577 } -body {
578 db eval {
579 PRAGMA locking_mode = normal;
580 BEGIN;
581 INSERT INTO abc VALUES(randomblob(1500));
582 COMMIT;
583 }
584 } -test {
585 faultsim_integrity_check
586 set nRow [db eval {SELECT count(*) FROM abc}]
587 if {$nRow!=3 && $nRow!=4} { error "Bad db content" }
588 }
589
551 finish_test 590 finish_test
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698