1 # 2006 June 25 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 # This file attempts to check the library in an out-of-memory situation. 12 # 13 # $Id: malloc6.test,v 1.5 2008/02/18 22:24:58 drh Exp $ 14 15 set testdir [file dirname $argv0] 16 source $testdir/tester.tcl 17 source $testdir/malloc_common.tcl 18 19 # Only run these tests if memory debugging is turned on. 20 # 21 if {!$MEMDEBUG} { 22 puts "Skipping malloc6 tests: not compiled with -DSQLITE_MEMDEBUG..." 23 finish_test 24 return 25 } 26 27 28 set sqlite_os_trace 0 29 do_malloc_test malloc6-1 -tclprep { 30 db close 31 } -tclbody { 32 if {[catch {sqlite3 db test.db}]} { 33 error "out of memory" 34 } 35 sqlite3_extended_result_codes db 1 36 } -sqlbody { 37 DROP TABLE IF EXISTS t1; 38 CREATE TABLE IF NOT EXISTS t1( 39 a int, b float, c double, d text, e varchar(20), 40 primary key(a,b,c) 41 ); 42 CREATE TABLE IF NOT EXISTS t1( 43 a int, b float, c double, d text, e varchar(20), 44 primary key(a,b,c) 45 ); 46 DROP TABLE IF EXISTS t1; 47 } 48 49 # Ensure that no file descriptors were leaked. 50 do_test malloc6-1.X { 51 catch {db close} 52 set sqlite_open_file_count 53 } {0} 54 55 finish_test 56