]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Adjust copy_file() lsmtest function so it works properly for locked database files...
authormistachkin <mistachkin@noemail.net>
Fri, 7 Jul 2017 20:35:14 +0000 (20:35 +0000)
committermistachkin <mistachkin@noemail.net>
Fri, 7 Jul 2017 20:35:14 +0000 (20:35 +0000)
FossilOrigin-Name: 54a3855583deac93c955ed77fe82be6a6b7aadd3fdb7e6b895888e2a4ff530bd

ext/lsm1/lsm-test/lsmtest6.c
ext/lsm1/lsm-test/lsmtest_main.c
manifest
manifest.uuid

index d858249f3ec3b9286ceb188ee42185d8d328341d..b0e6a394102e4b97036428acd11d0e796afeb80d 100644 (file)
@@ -257,7 +257,7 @@ void testDeleteLsmdb(const char *zFile){
   testFree(zShm);
 }
 
-static void copy_file(const char *zFrom, const char *zTo){
+static void copy_file(const char *zFrom, const char *zTo, int isDatabase){
 
   if( access(zFrom, F_OK) ){
     unlink(zTo);
@@ -278,9 +278,15 @@ static void copy_file(const char *zFrom, const char *zTo){
 
     aBuf = testMalloc(4096);
     for(i=0; i<sz; i+=4096){
-      int nByte = MIN(4096, sz - i);
+      int bLockPage = isDatabase && i == 0;
+      int nByte = MIN((bLockPage ? 4066 : 4096), sz - i);
+      memset(aBuf, 0, 4096);
       read(fd1, aBuf, nByte);
       write(fd2, aBuf, nByte);
+      if( bLockPage ){
+        lseek(fd1, 4096, SEEK_SET);
+        lseek(fd2, 4096, SEEK_SET);
+      }
     }
     testFree(aBuf);
 
@@ -298,9 +304,9 @@ void testCopyLsmdb(const char *zFrom, const char *zTo){
   unlink(zShm2);
   unlink(zLog2);
   unlink(zTo);
-  copy_file(zFrom, zTo);
-  copy_file(zLog1, zLog2);
-  copy_file(zShm1, zShm2);
+  copy_file(zFrom, zTo, 1);
+  copy_file(zLog1, zLog2, 0);
+  copy_file(zShm1, zShm2, 0);
 
   testFree(zLog1); testFree(zLog2); testFree(zShm1); testFree(zShm2);
 }
@@ -322,8 +328,8 @@ void testSaveDb(const char *zFile, const char *zAux){
 
   unlink(zFileSave);
   unlink(zLogSave);
-  copy_file(zFile, zFileSave);
-  copy_file(zLog, zLogSave);
+  copy_file(zFile, zFileSave, 1);
+  copy_file(zLog, zLogSave, 0);
 
   testFree(zLog); testFree(zFileSave); testFree(zLogSave);
 }
@@ -341,8 +347,8 @@ void testRestoreDb(const char *zFile, const char *zAux){
   char *zFileSave = testMallocPrintf("%s-save", zFile);
   char *zLogSave = testMallocPrintf("%s-%s-save", zFile, zAux);
 
-  copy_file(zFileSave, zFile);
-  copy_file(zLogSave, zLog);
+  copy_file(zFileSave, zFile, 1);
+  copy_file(zLogSave, zLog, 0);
 
   testFree(zLog); testFree(zFileSave); testFree(zLogSave);
 }
index f31d4f2f2b7c07d878b960825174942c7af988cd..ab44925b37fb3039b78561b37bc35d7d3ef1b0e3 100644 (file)
@@ -11,6 +11,7 @@
 #ifndef _WIN32
 # include <unistd.h>
 #endif
+#include <stdlib.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
@@ -1522,6 +1523,10 @@ int main(int argc, char **argv){
   const char *zReport = "malloc.txt NOT generated";
 #endif
 
+#if defined(_MSC_VER) || defined(__MSVCRT__)
+  _set_fmode(_O_BINARY);
+#endif
+
   testMallocInstall(tdb_lsm_env());
 
   if( argc<2 ){
index c2a863179760c1ec51a681a2da0bc3700a2ef631..582a0a70c73a4ce20a537d07a2e5f6a98fcd289d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sthe\s"PRAGMA\ssecure_delete=FAST"\soption,\swhich\soverwrites\smost\sdeleted\ncontent\swithout\sincreasing\sthe\samount\sof\sI/O.\s\sDeleted\scontent\smight\spersist\non\sthe\sfree\spage\slist,\showever.\s\sAnd\sextra\sCPU\scycles\sare\sused\sfor\szeroing,\nof\scourse.
-D 2017-07-07T20:06:28.516
+C Adjust\scopy_file()\slsmtest\sfunction\sso\sit\sworks\sproperly\sfor\slocked\sdatabase\sfiles\son\sWin32.
+D 2017-07-07T20:35:14.495
 F Makefile.in 081e48dfe7f995d57ce1a88ddf4d2917b4349158648a6cd45b42beae30de3a12
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 20850e3e8d4d4791e0531955852d768eb06f24138214870d543abb1a47346fba
@@ -218,7 +218,7 @@ F ext/lsm1/lsm-test/lsmtest2.c 188b09aec776516aeedcfd13b9c6faf85ba16b3671a0897a2
 F ext/lsm1/lsm-test/lsmtest3.c 9ab87528a36dbf4a61d7c8ad954f5ee368c0878c127b84b942b2e2abe522de26
 F ext/lsm1/lsm-test/lsmtest4.c d258d6a245db5d8eaede096e2368d23f859c5e92c80ab9122463f708514fe10c
 F ext/lsm1/lsm-test/lsmtest5.c 8d5242a0f870d65eeada191c8945781fed9cb8ece3886573790ebd373b62dac5
-F ext/lsm1/lsm-test/lsmtest6.c 1f21509ea5d2b28b74539c2a70b8001619d0713091511067278f57871f4b753a
+F ext/lsm1/lsm-test/lsmtest6.c dd27f91675c54892d34f2335e7d7f581dda56d3426177d37804a986dbc076f48
 F ext/lsm1/lsm-test/lsmtest7.c 7a917455a0f956a8ed3f44f5c9387ec0ea6627714874464cc3fa5c5a9cabb2f2
 F ext/lsm1/lsm-test/lsmtest8.c b87a1279b0cfbb39df1fff50074696fbf5d83822349f65706fab6d618a7a52fa
 F ext/lsm1/lsm-test/lsmtest9.c dd1a0ebf41134933a744d1e00e60429a2a21fc50d587ae7dd6bdb6e96d805bdc
@@ -226,7 +226,7 @@ F ext/lsm1/lsm-test/lsmtest_bt.c d70d9a9be5eef9360af1251dd083948d74fd30137a08f61
 F ext/lsm1/lsm-test/lsmtest_datasource.c 5d770be191d0ca51315926723009b2c25c0b4b8136840494ef710ac324aa916c
 F ext/lsm1/lsm-test/lsmtest_func.c 159aa401bc8032bfa3d8cf2977bd687abebab880255895a5eb45770d626fa38d
 F ext/lsm1/lsm-test/lsmtest_io.c ba678e052f497b4c2ff41d47672a1f2a02f495d14083845ee66e0bda678f5b80
-F ext/lsm1/lsm-test/lsmtest_main.c f1d18e3a3e9315ec4198901a11c9d2ec6cb96d1a40089fd60b6a64e0b6b8db35
+F ext/lsm1/lsm-test/lsmtest_main.c d0a7f9fe1119b0b347ec21908276bae60e0003dd0cba6634bfabcaa71b6db3e4
 F ext/lsm1/lsm-test/lsmtest_mem.c c2980abdbc5024628d10910acb703354f2606b4a6f9624679da4e9a56bcee3e9
 F ext/lsm1/lsm-test/lsmtest_tdb.c e46c3f44880d45fd444daf2b2a53bca7a64f9df3f6480cbb1b47a039cc95626a
 F ext/lsm1/lsm-test/lsmtest_tdb.h 8733eee249b12956a9df8322994b43d19bd8c02ad2e8b0bb5164db4d6ccc1735
@@ -1628,8 +1628,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 732f90d6327c5c6368fc8b4cc207bd644ef08e3ae6d2e7295258ab099deaba63 f1682f0faf1a93ded066464b1ddd5f987e21ee0f6bb5e828ed31c3ad903cf2c3
-R 1f238fbce697fb2308131c37c5985e85
-T +closed f1682f0faf1a93ded066464b1ddd5f987e21ee0f6bb5e828ed31c3ad903cf2c3
-U drh
-Z c2c4f30ab3360a9e7249032b4e3580ff
+P 38978ce65b280bb7cba3fc08ba91485fb1b84cd9fbba2e950ecf41c021ff452a
+R 1560fcde20282350646516a96135e121
+U mistachkin
+Z d23b91b5991a79a51cd11ccd5641741c
index bc0b488c810b0b4bcbd538f4b64f52a468238fa9..9c98879dddd9c42642d3528cf90031bd05df4229 100644 (file)
@@ -1 +1 @@
-38978ce65b280bb7cba3fc08ba91485fb1b84cd9fbba2e950ecf41c021ff452a
\ No newline at end of file
+54a3855583deac93c955ed77fe82be6a6b7aadd3fdb7e6b895888e2a4ff530bd
\ No newline at end of file