1# 2010 January 12 2# 3# The author disclaims copyright to this source code. In place of 4# a legal notice, here is a blessing: 5# 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. 9# 10#************************************************************************* 11# 12# Tests for the secure_delete pragma. 13# 14 15set testdir [file dirname $argv0] 16source $testdir/tester.tcl 17 18unset -nocomplain DEFAULT_SECDEL 19set DEFAULT_SECDEL 0 20ifcapable fast_secure_delete { 21 set DEFAULT_SECDEL 2 22} else { 23 ifcapable secure_delete { 24 set DEFAULT_SECDEL 1 25 } 26} 27 28 29do_test securedel-1.0 { 30 db eval {PRAGMA secure_delete;} 31} $DEFAULT_SECDEL 32 33forcedelete test2.db test2.db-journal 34do_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] 41do_test securedel-1.2 { 42 db eval { 43 PRAGMA main.secure_delete=OFF; 44 PRAGMA db2.secure_delete; 45 } 46} [list 0 $DEFAULT_SECDEL] 47do_test securedel-1.3 { 48 db eval { 49 PRAGMA secure_delete=OFF; 50 PRAGMA db2.secure_delete; 51 } 52} {0 0} 53do_test securedel-1.4 { 54 db eval { 55 PRAGMA secure_delete=ON; 56 PRAGMA db2.secure_delete; 57 } 58} {1 1} 59do_test securedel-1.5 { 60 db eval { 61 PRAGMA secure_delete=FAST; 62 PRAGMA db2.secure_delete; 63 } 64} {2 2} 65do_test securedel-1.6 { 66 db eval { 67 PRAGMA secure_delete=ON; 68 PRAGMA db2.secure_delete; 69 } 70} {1 1} 71do_test securedel-1.7 { 72 db eval { 73 PRAGMA main.secure_delete=FAST; 74 PRAGMA db2.secure_delete; 75 } 76} {2 1} 77do_test securedel-1.8 { 78 db eval { 79 PRAGMA main.secure_delete=ON; 80 PRAGMA db2.secure_delete; 81 } 82} {1 1} 83 84do_test securedel-2.1 { 85 db eval { 86 DETACH db2; 87 ATTACH 'test2.db' AS db2; 88 PRAGMA db2.secure_delete; 89 } 90} 1 91do_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} 99 100finish_test 101