1e1ab2193Sdan# 2001 September 15 2e1ab2193Sdan# 3e1ab2193Sdan# The author disclaims copyright to this source code. In place of 4e1ab2193Sdan# a legal notice, here is a blessing: 5e1ab2193Sdan# 6e1ab2193Sdan# May you do good and not evil. 7e1ab2193Sdan# May you find forgiveness for yourself and forgive others. 8e1ab2193Sdan# May you share freely, never taking more than you give. 9e1ab2193Sdan# 10e1ab2193Sdan#*********************************************************************** 11e1ab2193Sdan# 123d6e060bSdan# This file implements regression tests for SQLite library. The 133d6e060bSdan# focus of this file is testing the effects of a failure in 143d6e060bSdan# sqlite3_initialize(). 153d6e060bSdan# 163d6e060bSdan# 17e1ab2193Sdan 18e1ab2193Sdanset testdir [file dirname $argv0] 19e1ab2193Sdansource $testdir/tester.tcl 20*acd63a5aSdrhif {[db eval {SELECT sqlite_compileoption_used('THREADSAFE=0')}]} { 21*acd63a5aSdrh finish_test 22*acd63a5aSdrh return 23*acd63a5aSdrh} 24e1ab2193Sdan 25e1ab2193Sdandb close 26e1ab2193Sdan 27e1ab2193Sdanforeach {t failed rc started} { 283d6e060bSdan 1.1 {} SQLITE_OK {mutex mem pcache} 29e1ab2193Sdan 1.2 {mutex} SQLITE_ERROR {} 30e1ab2193Sdan 1.3 {mem} SQLITE_ERROR {mutex} 31e1ab2193Sdan 1.4 {pcache} SQLITE_ERROR {mutex mem} 32e1ab2193Sdan} { 33e1ab2193Sdan do_test init-$t.1 { 34e1ab2193Sdan eval init_wrapper_install $failed 35e1ab2193Sdan sqlite3_initialize 36e1ab2193Sdan } $rc 37e1ab2193Sdan do_test init-$t.2 { 38e1ab2193Sdan init_wrapper_query 39e1ab2193Sdan } $started 40e1ab2193Sdan do_test init-$t.3 { 41e1ab2193Sdan sqlite3_shutdown 42e1ab2193Sdan init_wrapper_query 43e1ab2193Sdan } {} 44e1ab2193Sdan do_test init-$t.4 { 45e1ab2193Sdan sqlite3_initialize 46e1ab2193Sdan } $rc 47e1ab2193Sdan do_test init-$t.5 { 48e1ab2193Sdan init_wrapper_query 49e1ab2193Sdan } $started 50e1ab2193Sdan do_test init-$t.6 { 51e1ab2193Sdan init_wrapper_clear 52e1ab2193Sdan sqlite3_initialize 53e1ab2193Sdan } SQLITE_OK 54e1ab2193Sdan do_test init-$t.7 { 55e1ab2193Sdan init_wrapper_query 563d6e060bSdan } {mutex mem pcache} 57e1ab2193Sdan do_test init-$t.8 { 58e1ab2193Sdan init_wrapper_uninstall 59e1ab2193Sdan } {} 60e1ab2193Sdan} 61e1ab2193Sdan 623d6e060bSdansource $testdir/malloc_common.tcl 633d6e060bSdanif {$MEMDEBUG} { 643d6e060bSdan do_malloc_test init-2 -tclprep { 653d6e060bSdan db close 663d6e060bSdan init_wrapper_install 673d6e060bSdan } -tclbody { 683d6e060bSdan set rc [sqlite3_initialize] 693d6e060bSdan if {[string match "SQLITE*NOMEM" $rc]} {error "out of memory"} 703d6e060bSdan } -cleanup { 713d6e060bSdan set zRepeat "transient" 723d6e060bSdan if {$::iRepeat} {set zRepeat "persistent"} 733d6e060bSdan do_test init-2.$zRepeat.$::n.x { 743d6e060bSdan init_wrapper_clear 753d6e060bSdan sqlite3_initialize 763d6e060bSdan } SQLITE_OK 773d6e060bSdan init_wrapper_uninstall 783d6e060bSdan } 793d6e060bSdan} 803d6e060bSdan 81e1ab2193Sdanautoinstall_test_functions 82e1ab2193Sdanfinish_test 83