72 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # 2006 June 10
 | |
| #
 | |
| # 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.
 | |
| #
 | |
| #***********************************************************************
 | |
| #
 | |
| # $Id: vtab_err.test,v 1.8 2007/09/03 16:12:10 drh Exp $
 | |
| 
 | |
| set testdir [file dirname $argv0]
 | |
| source $testdir/tester.tcl
 | |
| 
 | |
| ifcapable !vtab {
 | |
|   finish_test
 | |
|   return
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| unset -nocomplain echo_module_begin_fail
 | |
| do_ioerr_test vtab_err-1 -tclprep {
 | |
|   register_echo_module [sqlite3_connection_pointer db]
 | |
| } -sqlbody {
 | |
|   BEGIN;
 | |
|   CREATE TABLE r(a PRIMARY KEY, b, c);
 | |
|   CREATE VIRTUAL TABLE e USING echo(r);
 | |
|   INSERT INTO e VALUES(1, 2, 3);
 | |
|   INSERT INTO e VALUES('a', 'b', 'c');
 | |
|   UPDATE e SET c = 10;
 | |
|   DELETE FROM e WHERE a = 'a';
 | |
|   COMMIT;
 | |
|   BEGIN;
 | |
|     CREATE TABLE r2(a, b, c);
 | |
|     INSERT INTO r2 SELECT * FROM e;
 | |
|     INSERT INTO e SELECT a||'x', b, c FROM r2;
 | |
|   COMMIT;
 | |
| }
 | |
| 
 | |
| ifcapable !memdebug {
 | |
|    puts "Skipping vtab_err-2 tests: not compiled with -DSQLITE_MEMDEBUG..."
 | |
|    finish_test
 | |
|    return
 | |
| }
 | |
| source $testdir/malloc_common.tcl
 | |
| 
 | |
| 
 | |
| do_malloc_test vtab_err-2 -tclprep { 
 | |
|   register_echo_module [sqlite3_connection_pointer db]
 | |
| } -sqlbody {
 | |
|   BEGIN;
 | |
|   CREATE TABLE r(a PRIMARY KEY, b, c);
 | |
|   CREATE VIRTUAL TABLE e USING echo(r);
 | |
|   INSERT INTO e VALUES(1, 2, 3);
 | |
|   INSERT INTO e VALUES('a', 'b', 'c');
 | |
|   UPDATE e SET c = 10;
 | |
|   DELETE FROM e WHERE a = 'a';
 | |
|   COMMIT;
 | |
|   BEGIN;
 | |
|     CREATE TABLE r2(a, b, c);
 | |
|     INSERT INTO r2 SELECT * FROM e;
 | |
|     INSERT INTO e SELECT a||'x', b, c FROM r2;
 | |
|   COMMIT;
 | |
| } 
 | |
| 
 | |
| sqlite3_memdebug_fail -1
 | |
| 
 | |
| finish_test
 | 
