Annotation of embedaddon/sqlite3/test/mallocG.test, revision 1.1.1.1

1.1       misho       1: # 2007 Aug 29
                      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: mallocG.test,v 1.5 2008/08/01 18:47:02 drh Exp $
                     15: 
                     16: set testdir [file dirname $argv0]
                     17: source $testdir/tester.tcl
                     18: source $testdir/malloc_common.tcl
                     19: 
                     20: # Only run these tests if memory debugging is turned on.
                     21: #
                     22: if {!$MEMDEBUG} {
                     23:    puts "Skipping mallocG tests: not compiled with -DSQLITE_MEMDEBUG..."
                     24:    finish_test
                     25:    return
                     26: }
                     27: 
                     28: # Malloc failures while opening a database connection.
                     29: #
                     30: do_malloc_test mallocG-1 -tclbody {
                     31:   db close
                     32:   sqlite3 db test.db
                     33: }
                     34: 
                     35: do_malloc_test mallocG-2 -sqlprep {
                     36:   CREATE TABLE t1(x, y);
                     37:   CREATE TABLE t2(x INTEGER PRIMARY KEY);
                     38: } -sqlbody {
                     39:   SELECT y FROM t1 WHERE x IN t2;
                     40: }
                     41: 
                     42: do_malloc_test mallocG-3 -sqlprep {
                     43:   CREATE TABLE t1(x UNIQUE);
                     44:   INSERT INTO t1 VALUES ('hello');
                     45:   INSERT INTO t1 VALUES ('out there');
                     46: } -sqlbody {
                     47:   SELECT * FROM t1
                     48:    WHERE x BETWEEN 'a' AND 'z'
                     49:      AND x BETWEEN 'c' AND 'w'
                     50:      AND x BETWEEN 'e' AND 'u'
                     51:      AND x BETWEEN 'g' AND 'r'
                     52:      AND x BETWEEN 'i' AND 'q'
                     53:      AND x BETWEEN 'i' AND 'm'
                     54: }
                     55: 
                     56: proc utf16 {utf8} {
                     57:   set utf16 [encoding convertto unicode $utf8]
                     58:   append utf16 "\x00\x00"
                     59:   return $utf16
                     60: }
                     61: 
                     62: do_malloc_test mallocG-4 -tclbody {
                     63:   set rc [sqlite3_complete16 [utf16 "SELECT * FROM t1;"]]
                     64:   if {$rc==1} {set rc 0} {error "out of memory"}
                     65:   set rc
                     66: }
                     67: 
                     68: finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>