# 2005 March 15 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. # # This file implements tests to make sure that leftover journals from # prior databases do not try to rollback into new databases. # # $Id: journal1.test,v 1.2 2005/03/20 22:54:56 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # These tests will not work on windows because windows uses # manditory file locking which breaks the copy_file command. # if {$tcl_platform(platform)=="windows"} { finish_test return } # Create a smaple database # do_test journal1-1.1 { execsql { CREATE TABLE t1(a,b); INSERT INTO t1 VALUES(1,randstr(10,400)); INSERT INTO t1 VALUES(2,randstr(10,400)); INSERT INTO t1 SELECT a+2, a||b FROM t1; INSERT INTO t1 SELECT a+4, a||b FROM t1; SELECT count(*) FROM t1; } } 8 # Make changes to the database and save the journal file. # Then delete the database. Replace the journal file # and try to create a new database with the same name. The # old journal should not attempt to rollback into the new # database. # do_test journal1-1.2 { execsql { BEGIN; DELETE FROM t1; } forcecopy test.db-journal test.db-journal-bu execsql { ROLLBACK; } db close delete_file test.db copy_file test.db-journal-bu test.db-journal sqlite3 db test.db catchsql { SELECT * FROM sqlite_master } } {0 {}} finish_test