CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
carrayfault.test88 linesDownload Raw Back to test
1# 2025-10-072#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 13set testdir [file dirname $argv0]14source $testdir/tester.tcl15set testprefix carrayfault16 17ifcapable {!carray||!vtab} {18  finish_test; return19}20 21sqlite3 db test.db22 23do_execsql_test 2.0 {24  CREATE TABLE t1(a);25}26 27set STMT [sqlite3_prepare_v2 db "SELECT value FROM carray(?)" -1 TAIL]28 29# Test OOM faults in sqlite3_carray_bind() when binding an integer30# array.31#32foreach {tn mem} {33  1 -static34  2 -transient35  3 -malloc36} {37  do_faultsim_test 2.$tn -faults oom* -prep {38  } -body {39    sqlite3_carray_bind $::mem -int64 $::STMT 1   100 200 300 40040  } -test {41    faultsim_test_result {0 {}} {1 {out of memory}}42  }43}44 45# Test OOM faults in sqlite3_carray_bind() when binding a text array.46#47do_faultsim_test 3 -faults oom* -prep {48} -body {49    sqlite3_carray_bind -transient -text $::STMT 1 "hello" "world"50} -test {51  faultsim_test_result {0 {}} {1 {initialization of carray failed: }}52}53 54sqlite3_finalize $STMT55 56 57# Test OOM faults when running queries against carray.58#59do_faultsim_test 4 -faults oom* -prep {60  set ::STMT [sqlite3_prepare_v2 db "SELECT value FROM carray(?)" -1 TAIL]61  sqlite3_carray_bind -transient -text $::STMT 1 "hello" "world"62} -body {63    set myres [list]64    while { "SQLITE_ROW"==[sqlite3_step $::STMT] } {65      lappend myres [sqlite3_column_text $::STMT 1]66    }67    sqlite3_reset $::STMT68} -test {69  faultsim_test_result {0 SQLITE_OK} {0 SQLITE_NOMEM}70  sqlite3_finalize $::STMT71}72 73# Test OOM faults when preparing queries against carray.74#75do_faultsim_test 5 -faults oom* -prep {76  sqlite3 db test.db77} -body {78  execsql "SELECT value FROM carray(?)"79} -test {80  faultsim_test_result {0 {}}81}82 83 84 85sqlite3_carray_bind86 87finish_test88