-C Merge\stwo\sleaves.
-D 2010-08-19T15:12:55
+C Add\stests\sfor\sWAL\smode\sto\stest/backcompat.test.
+D 2010-08-19T15:48:47
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 543f91f24cd7fee774ecc0a61c19704c0c3e78fd
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F test/autovacuum.test bb7c0885e6f8f1d633045de48f2b66082162766d
F test/autovacuum_ioerr2.test 598b0663074d3673a9c1bc9a16e80971313bafe6
F test/avtrans.test 0252654f4295ddda3b2cce0e894812259e655a85
-F test/backcompat.test a64138b3f00bcb6af91fb609e805b03a7d74e690
+F test/backcompat.test f09684c48e5e467b4fd9e733e5867e23f957ecf2
F test/backup.test 200e64bd91244b73ca8094bc1e03dfc83cc94c2e
F test/backup2.test b7c69f937c912e85ac8a5dbd1e1cf290302b2d49
F test/backup_ioerr.test 1f012e692f42c0442ae652443258f70e9f20fa38
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P b9170f2903c480bca2bdc986e98aaeadfdb9ad2b 4c7ad73d22b7e8c90955730c2dbb79ed53cd750b
-R 26a0e08eb568545db964da4fcb9b01de
+P b03091fc3592896fcf1ec563ae9682a8e0a05baa
+R 52a8e7fbae7866867598a61fe83f6054
U dan
-Z 9d459a63353ebad2047baf5fad1d4c83
+Z b9ee7c10dc1f3cce4f3c954e7b1d3a07
set nErr [set_test_counter errors]
foreach dir {0 1} {
- set ::bcname ".[string map {testfixture {}} $bin].$dir."
+ set bintag [string map {testfixture {}} $bin]
+ if {$bintag == ""} {set bintag self}
+ set ::bcname ".$bintag.$dir."
rename do_test _do_test
proc do_test {nm sql res} {
#-------------------------------------------------------------------------
# Actual tests begin here.
#
+# This first block of tests checks to see that the same database and
+# journal files can be used by old and new versions. WAL and wal-index
+# files are tested separately below.
+#
do_allbackcompat_test {
# Test that database files are backwards compatible.
do_test backcompat-1.2.7 { sql1 { PRAGMA integrity_check } } {ok}
do_test backcompat-1.2.8 { sql2 { PRAGMA integrity_check } } {ok}
}
-
foreach k [lsort [array names ::incompatible]] {
- puts "ERROR: Detected incompatibility with version $k"
+ puts "ERROR: Detected journal incompatibility with version $k"
+}
+unset ::incompatible
+
+
+#-------------------------------------------------------------------------
+# Test that WAL and wal-index files may be shared between different
+# SQLite versions.
+#
+do_allbackcompat_test {
+ if {[code1 {sqlite3 -version}] >= "3.7.0"
+ && [code2 {sqlite3 -version}] >= "3.7.0"
+ } {
+
+ do_test backcompat-2.1.1 { sql1 {
+ PRAGMA journal_mode = WAL;
+ CREATE TABLE t1(a PRIMARY KEY, b UNIQUE);
+ INSERT INTO t1 VALUES('I', 1);
+ INSERT INTO t1 VALUES('II', 2);
+ INSERT INTO t1 VALUES('III', 3);
+ SELECT * FROM t1;
+ } } {wal I 1 II 2 III 3}
+ do_test backcompat-2.1.2 { sql2 {
+ SELECT * FROM t1;
+ } } {I 1 II 2 III 3}
+
+ set data [read_file_system]
+ code1 {db close}
+ code2 {db close}
+ write_file_system $data
+ code1 {sqlite3 db test.db}
+ code2 {sqlite3 db test.db}
+
+ # The WAL file now in the file-system was created by the [code1]
+ # process. Check that the [code2] process can recover the log.
+ #
+ do_test backcompat-2.1.3 { sql2 {
+ SELECT * FROM t1;
+ } } {I 1 II 2 III 3}
+ do_test backcompat-2.1.4 { sql1 {
+ SELECT * FROM t1;
+ } } {I 1 II 2 III 3}
+ }
}
finish_test