gitlab.com/CoiaPrant/sqlite3@v1.19.1/testdata/tcl/upsertfault.test (about)

     1  # 2018-04-17
     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  # Test cases for UPSERT
    13  
    14  set testdir [file dirname $argv0]
    15  source $testdir/tester.tcl
    16  set testprefix upsertfault
    17  
    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);
    22  }
    23  faultsim_save_and_close
    24  
    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 {}}
    35  }
    36  
    37  
    38  finish_test