summaryrefslogtreecommitdiffstats
path: root/test/journal1.test
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--test/journal1.test72
1 files changed, 72 insertions, 0 deletions
diff --git a/test/journal1.test b/test/journal1.test
new file mode 100644
index 0000000..bcbafe3
--- /dev/null
+++ b/test/journal1.test
@@ -0,0 +1,72 @@
+# 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.
+#
+# Or with atomic_batch_write systems, as journal files are
+# not created.
+#
+if {$tcl_platform(platform)=="windows"
+ || [atomic_batch_write test.db]
+} {
+ 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