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

Side by Side Diff: third_party/sqlite/sqlite-src-3170000/ext/rbu/rbu_common.tcl

Issue 2747283002: [sql] Import reference version of SQLite 3.17.. (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
(Empty)
1 # 2015 Aug 8
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 #
12
13 if {![info exists testdir]} {
14 set testdir [file join [file dirname [info script]] .. .. test]
15 }
16 source $testdir/tester.tcl
17
18 proc check_prestep_state {target state} {
19 set oal_exists [file exists $target-oal]
20 set wal_exists [file exists $target-wal]
21 set progress [rbu progress]
22
23 if {($progress==0 && $state!="oal" && $state!="done")
24 || ($oal_exists && $wal_exists)
25 || ($progress>0 && $state=="oal" && (!$oal_exists || $wal_exists))
26 || ($state=="move" && (!$oal_exists || $wal_exists))
27 || ($state=="checkpoint" && ($oal_exists || !$wal_exists))
28 || ($state=="done" && ($oal_exists && $progress!=0))
29 } {
30 error "B: state=$state progress=$progress oal=$oal_exists wal=$wal_exists"
31 }
32 }
33
34 proc check_poststep_state {rc target state} {
35 if {$rc=="SQLITE_OK" || $rc=="SQLITE_DONE"} {
36 set oal_exists [file exists $target-oal]
37 set wal_exists [file exists $target-wal]
38 if {$state=="move" && ($oal_exists || !$wal_exists)} {
39 error "A: state=$state progress=$progress oal=$oal_exists wal=$wal_exists"
40 }
41 }
42 }
43
44 # Run the RBU in file $rbu on target database $target until completion.
45 #
46 proc run_rbu {target rbu} {
47 sqlite3rbu rbu $target $rbu
48 while 1 {
49 set state [rbu state]
50
51 check_prestep_state $target $state
52 set rc [rbu step]
53 check_poststep_state $rc $target $state
54
55 if {$rc!="SQLITE_OK"} break
56 }
57 rbu close
58 }
59
60 proc step_rbu {target rbu} {
61 while 1 {
62 sqlite3rbu rbu $target $rbu
63 set state [rbu state]
64 check_prestep_state $target $state
65 set rc [rbu step]
66 check_poststep_state $rc $target $state
67 rbu close
68 if {$rc != "SQLITE_OK"} break
69 }
70 set rc
71 }
72
73 proc do_rbu_vacuum_test {tn step} {
74 uplevel [list do_test $tn.1 {
75 if {$step==0} { sqlite3rbu_vacuum rbu test.db state.db }
76 while 1 {
77 if {$step==1} { sqlite3rbu_vacuum rbu test.db state.db }
78 set state [rbu state]
79 check_prestep_state test.db $state
80 set rc [rbu step]
81 check_poststep_state $rc test.db $state
82 if {$rc!="SQLITE_OK"} break
83 if {$step==1} { rbu close }
84 }
85 rbu close
86 } {SQLITE_DONE}]
87
88 uplevel [list do_execsql_test $tn.2 {
89 PRAGMA integrity_check
90 } ok]
91 }
92
OLDNEW
« no previous file with comments | « third_party/sqlite/sqlite-src-3170000/ext/rbu/rbuC.test ('k') | third_party/sqlite/sqlite-src-3170000/ext/rbu/rbucrash.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698