aboutsummaryrefslogtreecommitdiff
path: root/ext/session/sessionfault.test
diff options
context:
space:
mode:
authordan <dan@noemail.net>2011-03-21 19:41:29 +0000
committerdan <dan@noemail.net>2011-03-21 19:41:29 +0000
commitdb04571c79364fcfffc2dfd7fc655dc9d1b7d071 (patch)
treeaeca8f526e19189a31bc9e24feb3f4757fec7784 /ext/session/sessionfault.test
parent8cc9c1aa1545dc5d05849f1914f8a25371984ed5 (diff)
downloadsqlite-db04571c79364fcfffc2dfd7fc655dc9d1b7d071.tar.gz
sqlite-db04571c79364fcfffc2dfd7fc655dc9d1b7d071.zip
Remove some unreachable code in sqlite3session.c. Add test cases.
FossilOrigin-Name: 39cdfa5324ae91bfbbac733b1e3e2d33ca883340
Diffstat (limited to 'ext/session/sessionfault.test')
-rw-r--r--ext/session/sessionfault.test52
1 files changed, 52 insertions, 0 deletions
diff --git a/ext/session/sessionfault.test b/ext/session/sessionfault.test
index d6dd361b0..8f38fe63e 100644
--- a/ext/session/sessionfault.test
+++ b/ext/session/sessionfault.test
@@ -82,4 +82,56 @@ do_faultsim_test pagerfault-2 -faults oom-* -prep {
faultsim_integrity_check
}
+catch { db close }
+catch { db2 close }
+forcedelete test.db2 test.db
+sqlite3 db2 test.db2
+sqlite3 db test.db
+
+proc xConflict {op tbl type args} {
+ if { $type=="CONFLICT" || $type=="DATA" } {
+ return "REPLACE"
+ }
+ return "OMIT"
+}
+
+do_test 3.0 {
+ execsql {
+ PRAGMA encoding = 'utf16';
+ CREATE TABLE t1(a PRIMARY KEY, b);
+ INSERT INTO t1 VALUES(5, 32);
+ }
+ execsql {
+ PRAGMA encoding = 'utf16';
+ CREATE TABLE t1(a PRIMARY KEY, b NOT NULL);
+ INSERT INTO t1 VALUES(1, 2);
+ INSERT INTO t1 VALUES(2, 4);
+ INSERT INTO t1 VALUES(4, 16);
+ } db2
+} {}
+
+faultsim_save_and_close
+db2 close
+
+do_faultsim_test pagerfault-3 -faults oom-transient -prep {
+ catch {db2 close}
+ catch {db close}
+ faultsim_restore_and_reopen
+ sqlite3 db2 test.db2
+ sqlite3session S db main
+ S attach t1
+ execsql {
+ INSERT INTO t1 VALUES(1, 45);
+ INSERT INTO t1 VALUES(2, 55);
+ INSERT INTO t1 VALUES(3, 55);
+ UPDATE t1 SET a = 4 WHERE a = 5;
+ }
+} -body {
+ sqlite3changeset_apply db2 [S changeset] xConflict
+} -test {
+ catch { S delete }
+ faultsim_test_result {0 {}} {1 SQLITE_NOMEM}
+ if {$testrc==0} { compare_db db db2 }
+}
+
finish_test