From 07321926ba511a0605cc6965d2a8a1bd3096bcb5 Mon Sep 17 00:00:00 2001 From: Stephen Lombardo Date: Fri, 18 May 2012 02:38:25 -0400 Subject: [PATCH] round out rekey tests for WAL --- test/crypto.test | 68 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 3 deletions(-) diff --git a/test/crypto.test b/test/crypto.test index 6b313fc..32ca7b6 100644 --- a/test/crypto.test +++ b/test/crypto.test @@ -302,11 +302,9 @@ do_test rekey-delete-and-query-1 { SELECT (count(*) > 0) FROM t1; } } {1} - db close -file copy -force test.db test-rekey.db -do_test rekey-delete-and-query-1 { +do_test rekey-delete-and-query-2 { sqlite_orig db test.db execsql { PRAGMA key = 'test123'; @@ -315,6 +313,70 @@ do_test rekey-delete-and-query-1 { } } {1} db close + +do_test rekey-delete-and-query-3 { + sqlite_orig db test.db + execsql { + PRAGMA key = 'test321'; + SELECT count(*) > 1 FROM t1; + } +} {1} +db close +file delete -force test.db + + +# same as previous test, but use WAL +do_test rekey-delete-and-query-wal-1 { + sqlite_orig db test.db + + execsql { + PRAGMA key = 'test123'; + PRAGMA journal_mode = WAL; + CREATE TABLE t1(a,b); + CREATE INDEX ta_a ON t1(a); + BEGIN; + } + + for {set i 1} {$i<1000} {incr i} { + set r [expr {int(rand()*32767)}] + set r1 [expr {int(rand()*32767)}] + execsql "INSERT INTO t1 VALUES($r,$r1);" + } + set r [expr {int(rand()*32767)}] + set r1 [expr {int(rand()*32767)}] + execsql "UPDATE t1 SET b = $r WHERE a < $r1;" + + set r [expr {int(rand()*32767)}] + + execsql "DELETE FROM t1 WHERE a < $r;" + + execsql { + COMMIT; + SELECT (count(*) > 0) FROM t1; + } +} {1} +db close + +do_test rekey-delete-and-query-wal-2 { + sqlite_orig db test.db + execsql { + PRAGMA key = 'test123'; + PRAGMA journal_mode = WAL; + PRAGMA rekey = 'test321'; + SELECT count(*) > 1 FROM t1; + } +} {wal 1} +db close + +do_test rekey-delete-and-query-wal-3 { + sqlite_orig db test.db + execsql { + PRAGMA key = 'test321'; + PRAGMA journal_mode = WAL; + SELECT count(*) > 1 FROM t1; + } +} {wal 1} +db close file delete -force test.db # attach an encrypted database