xref: /sqlite-3.40.0/test/mallocM.test (revision 116b56a2)
1c3becddbSdan# 2017 March 13
2c3becddbSdan#
3c3becddbSdan# The author disclaims copyright to this source code.  In place of
4c3becddbSdan# a legal notice, here is a blessing:
5c3becddbSdan#
6c3becddbSdan#    May you do good and not evil.
7c3becddbSdan#    May you find forgiveness for yourself and forgive others.
8c3becddbSdan#    May you share freely, never taking more than you give.
9c3becddbSdan#
10c3becddbSdan#***********************************************************************
11c3becddbSdan# Further OOM tests.
12c3becddbSdan#
13c3becddbSdan
14c3becddbSdanset testdir [file dirname $argv0]
15c3becddbSdansource $testdir/tester.tcl
16c3becddbSdansource $testdir/malloc_common.tcl
17c3becddbSdanset testprefix mallocM
18c3becddbSdan
19c3becddbSdansqlite3_db_config_lookaside db 0 0 0
20c3becddbSdan
21c3becddbSdando_execsql_test 1.0 {
22c3becddbSdan  CREATE TABLE t1(x);
23c3becddbSdan}
24*116b56a2Sdando_faultsim_test 1 -faults oom* -body {
25c3becddbSdan  execsql {
26c3becddbSdan    SELECT 'abc' FROM ( SELECT 'xyz' FROM t1 WHERE (SELECT 1) )
27c3becddbSdan  }
28c3becddbSdan} -test {
29c3becddbSdan  faultsim_test_result {0 {}}
30c3becddbSdan}
31c3becddbSdan
32*116b56a2Sdando_execsql_test 2.0.1 { SELECT instr(x'', x'') }         {1}
33*116b56a2Sdando_execsql_test 2.0.2 { SELECT instr(x'12345678', x'') } {1}
34*116b56a2Sdando_execsql_test 2.0.3 { SELECT instr(x'', x'1234') }     {0}
35*116b56a2Sdan
36*116b56a2Sdando_faultsim_test 2.1 -faults oom* -body {
37*116b56a2Sdan  execsql { SELECT instr (x'00', zeroblob(1)) }
38*116b56a2Sdan} -test {
39*116b56a2Sdan  faultsim_test_result {0 1}
40*116b56a2Sdan}
41*116b56a2Sdan
42*116b56a2Sdando_faultsim_test 2.2 -faults oom* -body {
43*116b56a2Sdan  execsql { SELECT instr (zeroblob(1), x'00') }
44*116b56a2Sdan} -test {
45*116b56a2Sdan  faultsim_test_result {0 1}
46*116b56a2Sdan}
47*116b56a2Sdan
48c3becddbSdanfinish_test
49