CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
mallocI.test76 linesDownload Raw Back to test
1# 2008 August 012#3# The author disclaims copyright to this source code.  In place of4# 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: mallocI.test,v 1.3 2009/08/10 04:26:39 danielk1977 Exp $15 16set testdir [file dirname $argv0]17source $testdir/tester.tcl18source $testdir/malloc_common.tcl19 20# Malloc failures in a view.21#22do_malloc_test mallocI-1 -sqlprep {23  CREATE TABLE t1(a,b,c,d);24  CREATE VIEW v1 AS SELECT a*b, c*d FROM t1 ORDER BY b-d;25} -sqlbody {26  SELECT * FROM v127}28 29# Malloc failure while trying to service a pragma on a TEMP database.30#31do_malloc_test mallocI-2 -sqlbody {32  PRAGMA temp.page_size33}34 35# Malloc failure while creating a table from a SELECT statement.36#37do_malloc_test mallocI-3 -sqlprep {38  CREATE TABLE t1(a,b,c);39} -sqlbody {40  CREATE TABLE t2 AS SELECT b,c FROM t1;41}42 43# This tests that a malloc failure that occurs while passing the schema44# does not result in a SHARED lock being left on the database file.45#46do_malloc_test mallocI-4 -tclprep {47  sqlite3 db2 test.db48  db2 eval {49    CREATE TABLE t1(a, b, c);50    CREATE TABLE t2(a, b, c);51  }52} -sqlbody {53  SELECT * FROM t154} -cleanup {55  do_test mallocI-4.$::n.2 {56    # If this INSERT is possible then [db] does not hold a shared lock57    # on the database file.58    catchsql { INSERT INTO t1 VALUES(1, 2, 3) } db259  } {0 {}}60  catch {db2 close}61}62catch { db2 close }63 64do_faultsim_test mallocI-5 -faults oom* -prep {65  catch { db close }66  sqlite3 db test.db67  sqlite3_db_config_lookaside db 0 0 068} -body {69  db eval { Select CAST(1 AS blob) }70} -test {71  faultsim_test_result {0 1}72}73 74 75finish_test76