| # 2007 Aug 29 |
| # |
| # 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. |
| # |
| #*********************************************************************** |
| # |
| # This test script checks that tickets #2794, #2795, #2796, and #2797 |
| # have been fixed. |
| # |
| # $Id: mallocF.test,v 1.4 2008/02/18 22:24:58 drh Exp $ |
| |
| set testdir [file dirname $argv0] |
| source $testdir/tester.tcl |
| source $testdir/malloc_common.tcl |
| |
| # Only run these tests if memory debugging is turned on. |
| # |
| if {!$MEMDEBUG} { |
| puts "Skipping mallocF tests: not compiled with -DSQLITE_MEMDEBUG..." |
| finish_test |
| return |
| } |
| |
| # tickets #2794 and #2795 and #2797 |
| # |
| set PREP { |
| CREATE TABLE t1(x,y); |
| INSERT INTO t1 VALUES('abc123', 5); |
| INSERT INTO t1 VALUES('xyz987', 42); |
| } |
| do_malloc_test malloeF-1 -sqlprep $PREP -sqlbody { |
| SELECT * FROM t1 WHERE x GLOB 'abc*' |
| } |
| |
| # ticket #2796 |
| # |
| set PREP { |
| CREATE TABLE t1(x PRIMARY KEY,y UNIQUE); |
| INSERT INTO t1 VALUES('abc123', 5); |
| INSERT INTO t1 VALUES('xyz987', 42); |
| } |
| do_malloc_test malloeF-2 -sqlprep $PREP -sqlbody { |
| SELECT x FROM t1 |
| WHERE y=1 OR y=2 OR y=3 OR y=4 OR y=5 |
| OR y=6 OR y=7 OR y=8 OR y=9 OR y=10 |
| OR y=11 OR y=12 OR y=13 OR y=14 OR y=15 |
| OR y=x |
| } |
| |
| set PREP { |
| CREATE TABLE t1(x PRIMARY KEY,y UNIQUE); |
| INSERT INTO t1 VALUES('abc123', 5); |
| INSERT INTO t1 VALUES('xyz987', 42); |
| } |
| do_malloc_test malloeF-3 -sqlprep $PREP -sqlbody { |
| SELECT x FROM t1 WHERE y BETWEEN 10 AND 29 |
| } |
| |
| # Ticket #2843 |
| # |
| set PREP { |
| CREATE TABLE t1(x); |
| CREATE TRIGGER r1 BEFORE INSERT ON t1 BEGIN |
| SELECT 'hello'; |
| END; |
| } |
| do_malloc_test mallocF-4 -sqlprep $PREP -sqlbody { |
| INSERT INTO t1 VALUES(random()); |
| } |
| |
| finish_test |