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
15set testdir [file dirname $argv0]
16source $testdir/tester.tcl
17source $testdir/malloc_common.tcl
18
19# Only run these tests if memory debugging is turned on.
20#
21if {!$MEMDEBUG} {
22   puts "Skipping malloc6 tests: not compiled with -DSQLITE_MEMDEBUG..."
23   finish_test
24   return
25}
26
27
28set sqlite_os_trace 0
29do_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.
50do_test malloc6-1.X {
51  catch {db close}
52  set sqlite_open_file_count
53} {0}
54
55finish_test
56