modernc.org/cc@v1.0.1/v2/testdata/_sqlite/test/vtab_err.test (about)

     1  # 2006 June 10
     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  # $Id: vtab_err.test,v 1.8 2007/09/03 16:12:10 drh Exp $
    13  
    14  set testdir [file dirname $argv0]
    15  source $testdir/tester.tcl
    16  
    17  ifcapable !vtab {
    18    finish_test
    19    return
    20  }
    21  
    22  
    23  
    24  unset -nocomplain echo_module_begin_fail
    25  do_ioerr_test vtab_err-1 -tclprep {
    26    register_echo_module [sqlite3_connection_pointer db]
    27  } -sqlbody {
    28    BEGIN;
    29    CREATE TABLE r(a PRIMARY KEY, b, c);
    30    CREATE VIRTUAL TABLE e USING echo(r);
    31    INSERT INTO e VALUES(1, 2, 3);
    32    INSERT INTO e VALUES('a', 'b', 'c');
    33    UPDATE e SET c = 10;
    34    DELETE FROM e WHERE a = 'a';
    35    COMMIT;
    36    BEGIN;
    37      CREATE TABLE r2(a, b, c);
    38      INSERT INTO r2 SELECT * FROM e;
    39      INSERT INTO e SELECT a||'x', b, c FROM r2;
    40    COMMIT;
    41  }
    42  
    43  ifcapable !memdebug {
    44     puts "Skipping vtab_err-2 tests: not compiled with -DSQLITE_MEMDEBUG..."
    45     finish_test
    46     return
    47  }
    48  source $testdir/malloc_common.tcl
    49  
    50  
    51  do_malloc_test vtab_err-2 -tclprep { 
    52    register_echo_module [sqlite3_connection_pointer db]
    53  } -sqlbody {
    54    BEGIN;
    55    CREATE TABLE r(a PRIMARY KEY, b, c);
    56    CREATE VIRTUAL TABLE e USING echo(r);
    57    INSERT INTO e VALUES(1, 2, 3);
    58    INSERT INTO e VALUES('a', 'b', 'c');
    59    UPDATE e SET c = 10;
    60    DELETE FROM e WHERE a = 'a';
    61    COMMIT;
    62    BEGIN;
    63      CREATE TABLE r2(a, b, c);
    64      INSERT INTO r2 SELECT * FROM e;
    65      INSERT INTO e SELECT a||'x', b, c FROM r2;
    66    COMMIT;
    67  } 
    68  
    69  sqlite3_memdebug_fail -1
    70  
    71  finish_test