Annotation of embedaddon/sqlite3/test/mallocH.test, revision 1.1
1.1 ! misho 1: # 2008 August 01
! 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: # This test script checks malloc failures in various obscure operations.
! 13: #
! 14: # $Id: mallocH.test,v 1.2 2008/08/01 20:10:09 drh Exp $
! 15:
! 16: set testdir [file dirname $argv0]
! 17: source $testdir/tester.tcl
! 18: source $testdir/malloc_common.tcl
! 19:
! 20: # Malloc failures in journaling of in-memory databases.
! 21: #
! 22: do_malloc_test mallocH-1 -tclprep {
! 23: db close
! 24: sqlite3 db :memory:
! 25: db eval {
! 26: CREATE TABLE t1(x UNIQUE, y);
! 27: INSERT INTO t1 VALUES(1,2);
! 28: }
! 29: } -sqlbody {
! 30: INSERT INTO t1 SELECT x+1, y+100 FROM t1;
! 31: }
! 32:
! 33: # Malloc failures while parsing a CASE expression.
! 34: #
! 35: do_malloc_test mallocH-2 -sqlbody {
! 36: SELECT CASE WHEN 1 THEN 1 END;
! 37: }
! 38:
! 39: # Malloc failures while parsing a EXISTS(SELECT ...)
! 40: #
! 41: do_malloc_test mallocH-3 -sqlbody {
! 42: SELECT 3+EXISTS(SELECT * FROM sqlite_master);
! 43: }
! 44:
! 45: # Malloc failures within the replace() function.
! 46: #
! 47: do_malloc_test mallocH-3 -sqlbody {
! 48: SELECT replace('ababa','a','xyzzy');
! 49: }
! 50:
! 51: # Malloc failures during EXPLAIN.
! 52: #
! 53: ifcapable explain {
! 54: do_malloc_test mallocH-4 -sqlprep {
! 55: CREATE TABLE abc(a PRIMARY KEY, b, c);
! 56: } -sqlbody {
! 57: EXPLAIN SELECT * FROM abc AS t2 WHERE rowid=1;
! 58: EXPLAIN QUERY PLAN SELECT * FROM abc AS t2 WHERE rowid=1;
! 59: }
! 60: }
! 61:
! 62: # Malloc failure during integrity_check pragma.
! 63: #
! 64: do_malloc_test mallocH-5 -sqlprep {
! 65: CREATE TABLE t1(a PRIMARY KEY, b UNIQUE);
! 66: CREATE TABLE t2(x,y);
! 67: INSERT INTO t1 VALUES(1,2);
! 68: INSERT INTO t2 SELECT * FROM t1;
! 69: } -sqlbody {
! 70: PRAGMA integrity_check;
! 71: }
! 72:
! 73: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>