xref: /sqlite-3.40.0/test/close.test (revision 7aa3ebee)
1# 2013 May 14
2#
3# The author disclaims copyright to this source code.  In place of
4# 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# Test some specific circumstances to do with shared cache mode.
13#
14
15
16set testdir [file dirname $argv0]
17source $testdir/tester.tcl
18set ::testprefix close
19
20do_execsql_test 1.0 {
21  CREATE TABLE t1(x);
22  INSERT INTO t1 VALUES('one');
23  INSERT INTO t1 VALUES('two');
24  INSERT INTO t1 VALUES('three');
25}
26db close
27
28do_test 1.1 {
29  set DB [sqlite3_open test.db]
30  sqlite3_close_v2 $DB
31} {SQLITE_OK}
32
33do_test 1.2.1 {
34  set DB [sqlite3_open test.db]
35  set STMT [sqlite3_prepare $DB "SELECT * FROM t1" -1 dummy]
36  sqlite3_close_v2 $DB
37} {SQLITE_OK}
38do_test 1.2.2 {
39  sqlite3_finalize $STMT
40} {SQLITE_OK}
41
42do_test 1.3.1 {
43  set DB [sqlite3_open test.db]
44  set STMT [sqlite3_prepare $DB "SELECT * FROM t1" -1 dummy]
45  sqlite3_step $STMT
46  sqlite3_close_v2 $DB
47} {SQLITE_OK}
48
49do_test 1.3.2 {
50  sqlite3_column_text $STMT 0
51} {one}
52
53do_test 1.3.3 {
54  sqlite3_finalize $STMT
55} {SQLITE_OK}
56
57do_test 1.4.1 {
58  set DB [sqlite3_open test.db]
59  set STMT [sqlite3_prepare $DB "SELECT * FROM t1" -1 dummy]
60  sqlite3_step $STMT
61  sqlite3_close_v2 $DB
62} {SQLITE_OK}
63
64do_test 1.4.2 {
65  list [sqlite3_step $STMT] [sqlite3_column_text $STMT 0]
66} {SQLITE_ROW two}
67
68do_test 1.4.3 {
69  list [catch {
70    sqlite3_prepare $DB "SELECT * FROM sqlite_master" -1 dummy
71  } msg] $msg
72} {1 {(21) library routine called out of sequence}}
73
74do_test 1.4.4 {
75  sqlite3_finalize $STMT
76} {SQLITE_OK}
77
78finish_test
79