xref: /sqlite-3.40.0/test/init.test (revision acd63a5a)
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