Snapshot of upstream SQLite 3.43.2
[sqlcipher.git] / test / securedel.test
blob8323a3049723fcc7f1a543761cbc41cfaee5408e
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 fast_secure_delete {
21   set DEFAULT_SECDEL 2
22 } else {
23   ifcapable secure_delete {
24     set DEFAULT_SECDEL 1
25   }
29 do_test securedel-1.0 {
30   db eval {PRAGMA secure_delete;}
31 } $DEFAULT_SECDEL
33 forcedelete test2.db test2.db-journal
34 do_test securedel-1.1 {
35   db eval {
36     ATTACH 'test2.db' AS db2;
37     PRAGMA main.secure_delete=ON;
38     PRAGMA db2.secure_delete;
39   }
40 } [list 1 $DEFAULT_SECDEL]
41 do_test securedel-1.2 {
42   db eval {
43     PRAGMA main.secure_delete=OFF;
44     PRAGMA db2.secure_delete;
45   }
46 } [list 0 $DEFAULT_SECDEL]
47 do_test securedel-1.3 {
48   db eval {
49     PRAGMA secure_delete=OFF;
50     PRAGMA db2.secure_delete;
51   }
52 } {0 0}
53 do_test securedel-1.4 {
54   db eval {
55     PRAGMA secure_delete=ON;
56     PRAGMA db2.secure_delete;
57   }
58 } {1 1}
59 do_test securedel-1.5 {
60   db eval {
61     PRAGMA secure_delete=FAST;
62     PRAGMA db2.secure_delete;
63   }
64 } {2 2}
65 do_test securedel-1.6 {
66   db eval {
67     PRAGMA secure_delete=ON;
68     PRAGMA db2.secure_delete;
69   }
70 } {1 1}
71 do_test securedel-1.7 {
72   db eval {
73     PRAGMA main.secure_delete=FAST;
74     PRAGMA db2.secure_delete;
75   }
76 } {2 1}
77 do_test securedel-1.8 {
78   db eval {
79     PRAGMA main.secure_delete=ON;
80     PRAGMA db2.secure_delete;
81   }
82 } {1 1}
84 do_test securedel-2.1 {
85   db eval {
86     DETACH db2;
87     ATTACH 'test2.db' AS db2;
88     PRAGMA db2.secure_delete;
89   }
90 } 1
91 do_test securedel-2.2 {
92   db eval {
93     DETACH db2;
94     PRAGMA main.secure_delete=OFF;
95     ATTACH 'test2.db' AS db2;
96     PRAGMA db2.secure_delete;
97   }
98 } {0 0}
100 finish_test