xref: /sqlite-3.40.0/test/malloc6.test (revision ed138fb3)
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.2 2007/08/22 22:04:37 drh Exp $
14
15set testdir [file dirname $argv0]
16source $testdir/tester.tcl
17
18# Only run these tests if memory debugging is turned on.
19#
20ifcapable !memdebug {
21   puts "Skipping malloc tests: not compiled with -DSQLITE_MEMDEBUG..."
22   finish_test
23   return
24}
25source $testdir/malloc_common.tcl
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} -sqlbody {
36  DROP TABLE IF EXISTS t1;
37  CREATE TABLE IF NOT EXISTS t1(
38     a int, b float, c double, d text, e varchar(20),
39     primary key(a,b,c)
40  );
41  CREATE TABLE IF NOT EXISTS t1(
42     a int, b float, c double, d text, e varchar(20),
43     primary key(a,b,c)
44  );
45  DROP TABLE IF EXISTS t1;
46}
47
48# Ensure that no file descriptors were leaked.
49do_test malloc6-1.X {
50  catch {db close}
51  set sqlite_open_file_count
52} {0}
53
54finish_test
55