2beb9f1c3f
Modify sync2.test to pass with DIRSYNC turned off
91 lines
3.8 KiB
Diff
91 lines
3.8 KiB
Diff
--- sqlite-src-3180000/test/sync2.test.sync2-dirsync 2017-03-30 21:26:42.000000000 +0200
|
|
+++ sqlite-src-3180000/test/sync2.test 2017-04-03 13:16:14.422329691 +0200
|
|
@@ -44,6 +44,15 @@
|
|
uplevel [list do_test $tn [list execsql_sync $sql] [list {*}$res]]
|
|
}
|
|
|
|
+# Wrapper over the expected sync count, takes DIRSYNC into consideration
|
|
+proc expected_sync_count {sync_count} {
|
|
+ ifcapable dirsync {
|
|
+ return $sync_count
|
|
+ } else {
|
|
+ return [ incr sync_count -1 ]
|
|
+ }
|
|
+}
|
|
+
|
|
#-----------------------------------------------------------------------
|
|
# Tests for journal mode.
|
|
#
|
|
@@ -53,13 +62,13 @@
|
|
INSERT INTO t1 VALUES(1, 2);
|
|
}
|
|
|
|
-do_execsql_sync_test 1.1 { INSERT INTO t1 VALUES(3, 4) } 4
|
|
+do_execsql_sync_test 1.1 { INSERT INTO t1 VALUES(3, 4) } [ expected_sync_count 4 ]
|
|
|
|
# synchronous=normal. So, 1 sync on the directory, 1 on the journal, 1
|
|
# on the db file. 3 in total.
|
|
do_execsql_test 1.2.1 { PRAGMA main.synchronous = NORMAL }
|
|
do_execsql_test 1.2.2 { PRAGMA main.synchronous } 1
|
|
-do_execsql_sync_test 1.2.3 { INSERT INTO t1 VALUES(5, 6) } 3
|
|
+do_execsql_sync_test 1.2.3 { INSERT INTO t1 VALUES(5, 6) } [ expected_sync_count 3 ]
|
|
|
|
# synchronous=off. No syncs.
|
|
do_execsql_test 1.3.1 { PRAGMA main.synchronous = OFF }
|
|
@@ -70,7 +79,7 @@
|
|
# 2 on the journal, 1 on the db file. 4 in total.
|
|
do_execsql_test 1.4.1 { PRAGMA main.synchronous = FULL }
|
|
do_execsql_test 1.4.2 { PRAGMA main.synchronous } 2
|
|
-do_execsql_sync_test 1.4.3 { INSERT INTO t1 VALUES(9, 10) } 4
|
|
+do_execsql_sync_test 1.4.3 { INSERT INTO t1 VALUES(9, 10) } [ expected_sync_count 4 ]
|
|
|
|
#-----------------------------------------------------------------------
|
|
# Tests for wal mode.
|
|
@@ -79,7 +88,7 @@
|
|
|
|
# sync=full, journal_mode=wal. One sync on the directory, two on the
|
|
# wal file.
|
|
-do_execsql_sync_test 1.6 { INSERT INTO t1 VALUES(11, 12) } 3
|
|
+do_execsql_sync_test 1.6 { INSERT INTO t1 VALUES(11, 12) } [ expected_sync_count 3 ]
|
|
|
|
# One sync on the wal file.
|
|
do_execsql_sync_test 1.7 { INSERT INTO t1 VALUES(13, 14) } 1
|
|
@@ -112,7 +121,7 @@
|
|
|
|
# Wal mode, sync=normal. The first transaction does one sync on directory,
|
|
# one on the wal file. The second does no syncs.
|
|
- do_execsql_sync_test 1.11.1 { INSERT INTO t1 VALUES(19, 20) } 2
|
|
+ do_execsql_sync_test 1.11.1 { INSERT INTO t1 VALUES(19, 20) } [ expected_sync_count 2 ]
|
|
do_execsql_sync_test 1.11.2 { INSERT INTO t1 VALUES(21, 22) } 0
|
|
do_execsql_test 1.11.3 { PRAGMA main.synchronous } 1
|
|
|
|
@@ -129,14 +138,14 @@
|
|
# Delete mode, sync=full. The first transaction does one sync on
|
|
# directory, two on the journal file, one on the db. The second does
|
|
# the same.
|
|
- do_execsql_sync_test 1.15.1 { INSERT INTO t1 VALUES(26, 27) } 4
|
|
- do_execsql_sync_test 1.15.2 { INSERT INTO t1 VALUES(28, 29) } 4
|
|
+ do_execsql_sync_test 1.15.1 { INSERT INTO t1 VALUES(26, 27) } [ expected_sync_count 4 ]
|
|
+ do_execsql_sync_test 1.15.2 { INSERT INTO t1 VALUES(28, 29) } [ expected_sync_count 4 ]
|
|
do_execsql_test 1.15.3 { PRAGMA main.synchronous } 2
|
|
|
|
# Switch back to wal mode.
|
|
do_execsql_test 1.16 { PRAGMA journal_mode = wal } {wal}
|
|
|
|
- do_execsql_sync_test 1.17.1 { INSERT INTO t1 VALUES(30, 31) } 2
|
|
+ do_execsql_sync_test 1.17.1 { INSERT INTO t1 VALUES(30, 31) } [ expected_sync_count 2 ]
|
|
do_execsql_sync_test 1.17.2 { INSERT INTO t1 VALUES(32, 33) } 0
|
|
do_execsql_test 1.17.3 { PRAGMA main.synchronous } 1
|
|
|
|
@@ -152,8 +161,8 @@
|
|
# Close and reopen the db. Back to synchronous=normal.
|
|
db close
|
|
sqlite3 db test.db
|
|
- do_execsql_sync_test 1.20.1 { INSERT INTO t1 VALUES(38, 39) } 4
|
|
- do_execsql_sync_test 1.20.2 { INSERT INTO t1 VALUES(40, 41) } 4
|
|
+ do_execsql_sync_test 1.20.1 { INSERT INTO t1 VALUES(38, 39) } [ expected_sync_count 4 ]
|
|
+ do_execsql_sync_test 1.20.2 { INSERT INTO t1 VALUES(40, 41) } [ expected_sync_count 4 ]
|
|
do_execsql_test 1.20.3 { PRAGMA main.synchronous } 2
|
|
}
|
|
|