add PRAGMA cipher_memory_security to control settings; lock/unlock memory in manager
[sqlcipher.git] / test / openv2.test
blob2a9e22d6b0de69a313c94bd1bf0659a42af63864
1 # 2007 Sep 3
3 # The author disclaims copyright to this source code.  In place of
4 # a legal notice, here is a blessing:
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.
10 #***********************************************************************
12 # Tests on the sqlite3_open_v2() interface.
14 # $Id: openv2.test,v 1.2 2009/06/11 17:32:45 drh Exp $
16 set testdir [file dirname $argv0]
17 source $testdir/tester.tcl
19 db close
20 forcedelete test.db test.db-journal
21 do_test openv2-1.1 {
22   set rc [catch {sqlite3 db test.db -create 0} msg]
23   lappend rc $msg
24 } {1 {unable to open database file}}
25 do_test openv2-1.2 {
26   info commands db
27 } {}
28 do_test openv2-1.3 {
29   sqlite3 db test.db
30   db eval {CREATE TABLE t1(x)}
31   db close
32   sqlite3 db test.db -readonly 1
33   db eval {SELECT name FROM sqlite_master}
34 } {t1}
35 do_test openv2-1.4 {
36   catchsql {
37     INSERT INTO t1 VALUES(123)
38   }
39 } {1 {attempt to write a readonly database}}
41 # Ticket #3908
42 # Honor SQLITE_OPEN_READONLY even on an in-memory database, even though
43 # this is pointless.
45 do_test openv2-2.1 {
46   db close
47   sqlite3 db :memory: -readonly 1
48   db eval {SELECT * FROM sqlite_master}
49 } {}
50 do_test openv2-2.2 {
51   catchsql {CREATE TABLE t1(x)}
52 } {1 {attempt to write a readonly database}}
55 finish_test