add PRAGMA cipher_memory_security to control settings; lock/unlock memory in manager
[sqlcipher.git] / test / securedel.test
bloba78f466031acb9658e774bf6af571fc6f909581f
1 # 2010 January 12
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 for the secure_delete pragma.
15 set testdir [file dirname $argv0]
16 source $testdir/tester.tcl
18 unset -nocomplain DEFAULT_SECDEL
19 set DEFAULT_SECDEL 0
20 ifcapable secure_delete {
21   set DEFAULT_SECDEL 1
25 do_test securedel-1.0 {
26   db eval {PRAGMA secure_delete;}
27 } $DEFAULT_SECDEL
29 forcedelete test2.db test2.db-journal
30 do_test securedel-1.1 {
31   db eval {
32     ATTACH 'test2.db' AS db2;
33     PRAGMA main.secure_delete=ON;
34     PRAGMA db2.secure_delete;
35   }
36 } [list 1 $DEFAULT_SECDEL]
37 do_test securedel-1.2 {
38   db eval {
39     PRAGMA main.secure_delete=OFF;
40     PRAGMA db2.secure_delete;
41   }
42 } [list 0 $DEFAULT_SECDEL]
43 do_test securedel-1.3 {
44   db eval {
45     PRAGMA secure_delete=OFF;
46     PRAGMA db2.secure_delete;
47   }
48 } {0 0}
49 do_test securedel-1.4 {
50   db eval {
51     PRAGMA secure_delete=ON;
52     PRAGMA db2.secure_delete;
53   }
54 } {1 1}
55 do_test securedel-1.5 {
56   db eval {
57     PRAGMA secure_delete=FAST;
58     PRAGMA db2.secure_delete;
59   }
60 } {2 2}
61 do_test securedel-1.6 {
62   db eval {
63     PRAGMA secure_delete=ON;
64     PRAGMA db2.secure_delete;
65   }
66 } {1 1}
67 do_test securedel-1.7 {
68   db eval {
69     PRAGMA main.secure_delete=FAST;
70     PRAGMA db2.secure_delete;
71   }
72 } {2 1}
73 do_test securedel-1.8 {
74   db eval {
75     PRAGMA main.secure_delete=ON;
76     PRAGMA db2.secure_delete;
77   }
78 } {1 1}
80 do_test securedel-2.1 {
81   db eval {
82     DETACH db2;
83     ATTACH 'test2.db' AS db2;
84     PRAGMA db2.secure_delete;
85   }
86 } 1
87 do_test securedel-2.2 {
88   db eval {
89     DETACH db2;
90     PRAGMA main.secure_delete=OFF;
91     ATTACH 'test2.db' AS db2;
92     PRAGMA db2.secure_delete;
93   }
94 } {0 0}
96 finish_test