Index: third_party/sqlite/sqlite-src-3170000/ext/rbu/rbuA.test |
diff --git a/third_party/sqlite/sqlite-src-3170000/ext/rbu/rbuA.test b/third_party/sqlite/sqlite-src-3170000/ext/rbu/rbuA.test |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d15a7dbb75881ada8143a0cc76dde51456513114 |
--- /dev/null |
+++ b/third_party/sqlite/sqlite-src-3170000/ext/rbu/rbuA.test |
@@ -0,0 +1,84 @@ |
+# 2014 August 30 |
+# |
+# The author disclaims copyright to this source code. In place of |
+# a legal notice, here is a blessing: |
+# |
+# May you do good and not evil. |
+# May you find forgiveness for yourself and forgive others. |
+# May you share freely, never taking more than you give. |
+# |
+#*********************************************************************** |
+# |
+# This file contains tests for the RBU module. More specifically, it |
+# contains tests to ensure that it is an error to attempt to update |
+# a wal mode database via RBU. |
+# |
+ |
+if {![info exists testdir]} { |
+ set testdir [file join [file dirname [info script]] .. .. test] |
+} |
+source $testdir/tester.tcl |
+set ::testprefix rbuA |
+ |
+set db_sql { |
+ CREATE TABLE t1(a PRIMARY KEY, b, c); |
+} |
+set rbu_sql { |
+ CREATE TABLE data_t1(a, b, c, rbu_control); |
+ INSERT INTO data_t1 VALUES(1, 2, 3, 0); |
+ INSERT INTO data_t1 VALUES(4, 5, 6, 0); |
+ INSERT INTO data_t1 VALUES(7, 8, 9, 0); |
+} |
+ |
+do_test 1.0 { |
+ db close |
+ forcedelete test.db rbu.db |
+ |
+ sqlite3 db test.db |
+ db eval $db_sql |
+ db eval { PRAGMA journal_mode = wal } |
+ db close |
+ |
+ sqlite3 db rbu.db |
+ db eval $rbu_sql |
+ db close |
+ |
+ sqlite3rbu rbu test.db rbu.db |
+ rbu step |
+} {SQLITE_ERROR} |
+do_test 1.1 { |
+ list [catch { rbu close } msg] $msg |
+} {1 {SQLITE_ERROR - cannot update wal mode database}} |
+ |
+do_test 2.0 { |
+ forcedelete test.db rbu.db |
+ |
+ sqlite3 db test.db |
+ db eval $db_sql |
+ db close |
+ |
+ sqlite3 db rbu.db |
+ db eval $rbu_sql |
+ db close |
+ |
+ sqlite3rbu rbu test.db rbu.db |
+ rbu step |
+ rbu close |
+} {SQLITE_OK} |
+ |
+do_test 2.1 { |
+ sqlite3 db test.db |
+ db eval {PRAGMA journal_mode = wal} |
+ db close |
+ breakpoint |
+ sqlite3rbu rbu test.db rbu.db |
+ rbu step |
+} {SQLITE_ERROR} |
+ |
+do_test 2.2 { |
+ list [catch { rbu close } msg] $msg |
+} {1 {SQLITE_ERROR - cannot update wal mode database}} |
+ |
+ |
+finish_test |
+ |