diff options
Diffstat (limited to 'test/tkt3929.test')
-rw-r--r-- | test/tkt3929.test | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/test/tkt3929.test b/test/tkt3929.test new file mode 100644 index 0000000..db02bb8 --- /dev/null +++ b/test/tkt3929.test @@ -0,0 +1,52 @@ +# 2009 June 23 +# +# 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. +# +#*********************************************************************** +# +# Tests to verify ticket #3929 is fixed. +# +# $Id: tkt3929.test,v 1.1 2009/06/23 11:53:09 danielk1977 Exp $ + +set testdir [file dirname $argv0] +source $testdir/tester.tcl +ifcapable {!trigger} { + finish_test + return +} + +do_test tkt3929-1.0 { + execsql { + PRAGMA page_size = 1024; + CREATE TABLE t1(a, b); + CREATE INDEX i1 ON t1(a, b); + CREATE TRIGGER t1_t1 AFTER INSERT ON t1 BEGIN + UPDATE t1 SET b = 'value: ' || a WHERE t1.rowid = new.rowid; + END; + } +} {} + +do_test tkt3929-1.1 { + execsql { + INSERT INTO t1(a) VALUES(1); + INSERT INTO t1(a) VALUES(2); + SELECT * FROM t1; + } +} {1 {value: 1} 2 {value: 2}} + +# Before it was fixed, the following provoked the bug, causing either an +# assertion failure or a "database is malformed" error. +# +do_test tkt3930-1.2 { + for {set i 3} {$i < 100} {incr i} { + execsql { INSERT INTO t1(a) VALUES($i) } + } +} {} + +integrity_check tkt3930-1.3 +finish_test |