12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- # 2008 August 01
- #
- # 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 malloc failures in various obscure operations.
- #
- # $Id: mallocI.test,v 1.3 2009/08/10 04:26:39 danielk1977 Exp $
- set testdir [file dirname $argv0]
- source $testdir/tester.tcl
- source $testdir/malloc_common.tcl
- # Malloc failures in a view.
- #
- do_malloc_test mallocI-1 -sqlprep {
- CREATE TABLE t1(a,b,c,d);
- CREATE VIEW v1 AS SELECT a*b, c*d FROM t1 ORDER BY b-d;
- } -sqlbody {
- SELECT * FROM v1
- }
- # Malloc failure while trying to service a pragma on a TEMP database.
- #
- do_malloc_test mallocI-2 -sqlbody {
- PRAGMA temp.page_size
- }
- # Malloc failure while creating a table from a SELECT statement.
- #
- do_malloc_test mallocI-3 -sqlprep {
- CREATE TABLE t1(a,b,c);
- } -sqlbody {
- CREATE TABLE t2 AS SELECT b,c FROM t1;
- }
- # This tests that a malloc failure that occurs while passing the schema
- # does not result in a SHARED lock being left on the database file.
- #
- do_malloc_test mallocI-4 -tclprep {
- sqlite3 db2 test.db
- db2 eval {
- CREATE TABLE t1(a, b, c);
- CREATE TABLE t2(a, b, c);
- }
- } -sqlbody {
- SELECT * FROM t1
- } -cleanup {
- do_test mallocI-4.$::n.2 {
- # If this INSERT is possible then [db] does not hold a shared lock
- # on the database file.
- catchsql { INSERT INTO t1 VALUES(1, 2, 3) } db2
- } {0 {}}
- catch {db2 close}
- }
- catch { db2 close }
- finish_test
|