xref: /sqlite-3.40.0/test/securedel.test (revision cb45eef4)
1af034ed6Sdrh# 2010 January 12
2af034ed6Sdrh#
3af034ed6Sdrh# The author disclaims copyright to this source code.  In place of
4af034ed6Sdrh# a legal notice, here is a blessing:
5af034ed6Sdrh#
6af034ed6Sdrh#    May you do good and not evil.
7af034ed6Sdrh#    May you find forgiveness for yourself and forgive others.
8af034ed6Sdrh#    May you share freely, never taking more than you give.
9af034ed6Sdrh#
10af034ed6Sdrh#*************************************************************************
11af034ed6Sdrh#
12af034ed6Sdrh# Tests for the secure_delete pragma.
13af034ed6Sdrh#
14af034ed6Sdrh
15af034ed6Sdrhset testdir [file dirname $argv0]
16af034ed6Sdrhsource $testdir/tester.tcl
17af034ed6Sdrh
18af034ed6Sdrhunset -nocomplain DEFAULT_SECDEL
19af034ed6Sdrhset DEFAULT_SECDEL 0
20*cb45eef4Sdrhifcapable fast_secure_delete {
21*cb45eef4Sdrh  set DEFAULT_SECDEL 2
22*cb45eef4Sdrh} else {
23af034ed6Sdrh  ifcapable secure_delete {
24af034ed6Sdrh    set DEFAULT_SECDEL 1
25af034ed6Sdrh  }
26*cb45eef4Sdrh}
27af034ed6Sdrh
28af034ed6Sdrh
29af034ed6Sdrhdo_test securedel-1.0 {
30af034ed6Sdrh  db eval {PRAGMA secure_delete;}
31af034ed6Sdrh} $DEFAULT_SECDEL
32af034ed6Sdrh
33fda06befSmistachkinforcedelete test2.db test2.db-journal
34af034ed6Sdrhdo_test securedel-1.1 {
35af034ed6Sdrh  db eval {
36af034ed6Sdrh    ATTACH 'test2.db' AS db2;
37af034ed6Sdrh    PRAGMA main.secure_delete=ON;
38af034ed6Sdrh    PRAGMA db2.secure_delete;
39af034ed6Sdrh  }
40af034ed6Sdrh} [list 1 $DEFAULT_SECDEL]
41af034ed6Sdrhdo_test securedel-1.2 {
42af034ed6Sdrh  db eval {
43af034ed6Sdrh    PRAGMA main.secure_delete=OFF;
44af034ed6Sdrh    PRAGMA db2.secure_delete;
45af034ed6Sdrh  }
46af034ed6Sdrh} [list 0 $DEFAULT_SECDEL]
47af034ed6Sdrhdo_test securedel-1.3 {
48af034ed6Sdrh  db eval {
49af034ed6Sdrh    PRAGMA secure_delete=OFF;
50af034ed6Sdrh    PRAGMA db2.secure_delete;
51af034ed6Sdrh  }
52af034ed6Sdrh} {0 0}
53af034ed6Sdrhdo_test securedel-1.4 {
54af034ed6Sdrh  db eval {
55af034ed6Sdrh    PRAGMA secure_delete=ON;
56af034ed6Sdrh    PRAGMA db2.secure_delete;
57af034ed6Sdrh  }
58af034ed6Sdrh} {1 1}
5912ca0fc2Sdrhdo_test securedel-1.5 {
6012ca0fc2Sdrh  db eval {
6112ca0fc2Sdrh    PRAGMA secure_delete=FAST;
6212ca0fc2Sdrh    PRAGMA db2.secure_delete;
6312ca0fc2Sdrh  }
6412ca0fc2Sdrh} {2 2}
6512ca0fc2Sdrhdo_test securedel-1.6 {
6612ca0fc2Sdrh  db eval {
6712ca0fc2Sdrh    PRAGMA secure_delete=ON;
6812ca0fc2Sdrh    PRAGMA db2.secure_delete;
6912ca0fc2Sdrh  }
7012ca0fc2Sdrh} {1 1}
7112ca0fc2Sdrhdo_test securedel-1.7 {
7212ca0fc2Sdrh  db eval {
7312ca0fc2Sdrh    PRAGMA main.secure_delete=FAST;
7412ca0fc2Sdrh    PRAGMA db2.secure_delete;
7512ca0fc2Sdrh  }
7612ca0fc2Sdrh} {2 1}
7712ca0fc2Sdrhdo_test securedel-1.8 {
7812ca0fc2Sdrh  db eval {
7912ca0fc2Sdrh    PRAGMA main.secure_delete=ON;
8012ca0fc2Sdrh    PRAGMA db2.secure_delete;
8112ca0fc2Sdrh  }
8212ca0fc2Sdrh} {1 1}
83af034ed6Sdrh
84af034ed6Sdrhdo_test securedel-2.1 {
85af034ed6Sdrh  db eval {
86af034ed6Sdrh    DETACH db2;
87af034ed6Sdrh    ATTACH 'test2.db' AS db2;
88af034ed6Sdrh    PRAGMA db2.secure_delete;
89af034ed6Sdrh  }
90af034ed6Sdrh} 1
91af034ed6Sdrhdo_test securedel-2.2 {
92af034ed6Sdrh  db eval {
93af034ed6Sdrh    DETACH db2;
94af034ed6Sdrh    PRAGMA main.secure_delete=OFF;
95af034ed6Sdrh    ATTACH 'test2.db' AS db2;
96af034ed6Sdrh    PRAGMA db2.secure_delete;
97af034ed6Sdrh  }
98af034ed6Sdrh} {0 0}
99af034ed6Sdrh
100af034ed6Sdrhfinish_test
101