Merge latest trunk changes with this branch.
[sqlite.git] / test / upsertfault.test
blob52bb4a5e35242d09f35f219e59e77ea067fb6f90
1 # 2018-04-17
3 # The author disclaims copyright to this source code.  In place of
4 # a legal notice, here is a blessing:
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.
10 #***********************************************************************
12 # Test cases for UPSERT
14 set testdir [file dirname $argv0]
15 source $testdir/tester.tcl
16 set testprefix upsertfault
18 do_execsql_test 1.0 {
19   CREATE TABLE t1(a PRIMARY KEY, b, c, d, UNIQUE(b, c));
20   INSERT INTO t1 VALUES(1, 1, 1, 1);
21   INSERT INTO t1 VALUES(2, 2, 2, 2);
23 faultsim_save_and_close
25 do_faultsim_test 1 -faults oom* -prep {
26   faultsim_restore_and_reopen
27   db eval { SELECT * FROM sqlite_master } 
28 } -body {
29   execsql {
30      INSERT INTO t1 VALUES(3, 2, 2, NULL) ON CONFLICT(b, c) DO
31        UPDATE SET d=d+1;
32   }
33 } -test {
34   faultsim_test_result {0 {}}
38 finish_test