Annotation of embedaddon/sqlite3/test/mallocG.test, revision 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>