Snapshot of upstream SQLite 3.8.4.3
[sqlcipher.git] / test / securedel.test
blob7111e08e718e00fa0c1c3a1de853a7e4664d04fa
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}
56 do_test securedel-2.1 {
57   db eval {
58     DETACH db2;
59     ATTACH 'test2.db' AS db2;
60     PRAGMA db2.secure_delete;
61   }
62 } 1
63 do_test securedel-2.2 {
64   db eval {
65     DETACH db2;
66     PRAGMA main.secure_delete=OFF;
67     ATTACH 'test2.db' AS db2;
68     PRAGMA db2.secure_delete;
69   }
70 } {0 0}
72 finish_test