12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- # 2001 September 15
- #
- # The author disclaims copyright to this source code. In place of
- # a legal notice, here is a blessing:
- #
- # May you do good and not evil.
- # May you find forgiveness for yourself and forgive others.
- # May you share freely, never taking more than you give.
- #
- #***********************************************************************
- #
- # This file implements regression tests for SQLite library. The
- # focus of this file is testing the effects of a failure in
- # sqlite3_initialize().
- #
- #
- set testdir [file dirname $argv0]
- source $testdir/tester.tcl
- if {[db eval {SELECT sqlite_compileoption_used('THREADSAFE=0')}]} {
- finish_test
- return
- }
- db close
- foreach {t failed rc started} {
- 1.1 {} SQLITE_OK {mutex mem pcache}
- 1.2 {mutex} SQLITE_ERROR {}
- 1.3 {mem} SQLITE_ERROR {mutex}
- 1.4 {pcache} SQLITE_ERROR {mutex mem}
- } {
- do_test init-$t.1 {
- eval init_wrapper_install $failed
- sqlite3_initialize
- } $rc
- do_test init-$t.2 {
- init_wrapper_query
- } $started
- do_test init-$t.3 {
- sqlite3_shutdown
- init_wrapper_query
- } {}
- do_test init-$t.4 {
- sqlite3_initialize
- } $rc
- do_test init-$t.5 {
- init_wrapper_query
- } $started
- do_test init-$t.6 {
- init_wrapper_clear
- sqlite3_initialize
- } SQLITE_OK
- do_test init-$t.7 {
- init_wrapper_query
- } {mutex mem pcache}
- do_test init-$t.8 {
- init_wrapper_uninstall
- } {}
- }
- source $testdir/malloc_common.tcl
- if {$MEMDEBUG} {
- do_malloc_test init-2 -tclprep {
- db close
- init_wrapper_install
- } -tclbody {
- set rc [sqlite3_initialize]
- if {[string match "SQLITE*NOMEM" $rc]} {error "out of memory"}
- } -cleanup {
- set zRepeat "transient"
- if {$::iRepeat} {set zRepeat "persistent"}
- do_test init-2.$zRepeat.$::n.x {
- init_wrapper_clear
- sqlite3_initialize
- } SQLITE_OK
- init_wrapper_uninstall
- }
- }
- autoinstall_test_functions
- finish_test
|