]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Change the way test script incrvacuum3.test copies database files in order to avoid...
authordan <dan@noemail.net>
Tue, 26 Feb 2013 06:14:27 +0000 (06:14 +0000)
committerdan <dan@noemail.net>
Tue, 26 Feb 2013 06:14:27 +0000 (06:14 +0000)
FossilOrigin-Name: fa1842e462049b1366909fe36d6d81b634be3953

manifest
manifest.uuid
test/incrvacuum3.test

index 2add2e5ec7846d3384bc86649400f081eeb320d0..4aae897e11caaacdbd80b1553f6640b0621b09b8 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\sextra\suse\sof\sthe\ssqlite3_value_int64()\sfunction.
-D 2013-02-26T05:42:30.002
+C Change\sthe\sway\stest\sscript\sincrvacuum3.test\scopies\sdatabase\sfiles\sin\sorder\sto\savoid\strying\sto\sread\sthe\s(locked)\s512\sbyte\s'pending-byte'\sregion.
+D 2013-02-26T06:14:27.544
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in a48faa9e7dd7d556d84f5456eabe5825dd8a6282
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -534,7 +534,7 @@ F test/incrblob_err.test d2562d2771ebffd4b3af89ef64c140dd44371597
 F test/incrblobfault.test 917c0292224c64a56ef7215fd633a3a82f805be0
 F test/incrvacuum.test d2a6ddf5e429720b5fe502766af747915ccf6c32
 F test/incrvacuum2.test 379eeb8740b0ef60c372c439ad4cbea20b34bb9b
-F test/incrvacuum3.test 1159ec2b3e7bafbde5718867bc7328ba58863313
+F test/incrvacuum3.test 7198a60267beda6eb49bb65ab40db35873ec8d0d
 F test/incrvacuum_ioerr.test 293f2714571255539c8c789da2f7de4ec3f7101e
 F test/index.test b5429732b3b983fa810e3ac867d7ca85dae35097
 F test/index2.test ee83c6b5e3173a3d7137140d945d9a5d4fdfb9d6
@@ -1035,7 +1035,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
 F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
-P be2493905281e12c7f4c146ab17c8872e52da350
-R a60abe17b21bf1359d9c1679d089205f
-U mistachkin
-Z 59402f1761566765a916d1a7046c0b39
+P 6d7973524a7d3bf3158fdac58975945da7f51740
+R 538583335e104793ae2aa040823d6e4d
+U dan
+Z 05d687700aaf72f6488f6d2b4316e01c
index 9754acb583d310de432f96c137f9acf9a2586667..e6aa0cf57e19fca99e2af88fab7c5f7442d39ead 100644 (file)
@@ -1 +1 @@
-6d7973524a7d3bf3158fdac58975945da7f51740
\ No newline at end of file
+fa1842e462049b1366909fe36d6d81b634be3953
\ No newline at end of file
index ed2d47139e98eabbf0444e64c6a749a7c5c7b5d6..12f6b23edfbaed519508f6e0ffbdb89f2b9a8593 100644 (file)
@@ -34,9 +34,8 @@ ifcapable {!autovacuum || !pragma} {
 
 proc check_on_disk {} {
 
-  # Copy the files for database "test.db" to "test2.db".
+  # Copy the wal and journal files for database "test.db" to "test2.db".
   forcedelete test2.db test2.db-journal test2.db-wal
-  forcecopy test.db test2.db
   if {[file exists test.db-journal]} { 
     forcecopy test.db-journal test2.db-journal 
   }
@@ -44,6 +43,23 @@ proc check_on_disk {} {
     forcecopy test.db-wal test2.db-wal 
   }
 
+  # Now copy the database file itself. Do this using open/read/puts
+  # instead of the [file copy] command in order to avoid attempting
+  # to read the 512 bytes begining at offset $sqlite_pending_byte.
+  #
+  set sz [file size test.db]
+  set fd [open test.db]
+  set fd2 [open test2.db w]
+  fconfigure $fd  -encoding binary -translation binary
+  fconfigure $fd2 -encoding binary -translation binary
+  if {$sz>$::sqlite_pending_byte} {
+    puts -nonewline $fd2 [read $fd $::sqlite_pending_byte]
+    seek $fd [expr $::sqlite_pending_byte+512]
+    seek $fd2 [expr $::sqlite_pending_byte+512]
+  }
+  puts -nonewline $fd2 [read $fd]
+  close $fd2
+
   # Open "test2.db" and check it is Ok.
   sqlite3 dbcheck test2.db
   set ret [dbcheck eval { PRAGMA integrity_check }]