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.1.1.1 2012/02/21 17:04:16 misho 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
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>