From: mistachkin Date: Tue, 27 Jun 2017 22:27:54 +0000 (+0000) Subject: Initial work on porting lsmtest to Win32. X-Git-Tag: version-3.20.0~165^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b5fdc26c21db8dd36e89f008bfc1343e665672d7;p=thirdparty%2Fsqlite.git Initial work on porting lsmtest to Win32. FossilOrigin-Name: 7e669d9bfab237ff7ece821cf95cfd3bb753b1882b9a86044b7d4579808aecf4 --- diff --git a/ext/lsm1/Makefile b/ext/lsm1/Makefile index 13253ce142..527faa0d1b 100644 --- a/ext/lsm1/Makefile +++ b/ext/lsm1/Makefile @@ -37,7 +37,7 @@ LSMTESTSRC = $(LSMDIR)/lsm-test/lsmtest1.c $(LSMDIR)/lsm-test/lsmtest2.c \ $(LSMDIR)/lsm-test/lsmtest_func.c $(LSMDIR)/lsm-test/lsmtest_io.c \ $(LSMDIR)/lsm-test/lsmtest_main.c $(LSMDIR)/lsm-test/lsmtest_mem.c \ $(LSMDIR)/lsm-test/lsmtest_tdb.c $(LSMDIR)/lsm-test/lsmtest_tdb3.c \ - $(LSMDIR)/lsm-test/lsmtest_util.c + $(LSMDIR)/lsm-test/lsmtest_util.c $(LSMDIR)/lsm-test/lsmtest_win32.c # all: lsm.so diff --git a/ext/lsm1/Makefile.msc b/ext/lsm1/Makefile.msc index d3146301a8..bd8aea1acd 100644 --- a/ext/lsm1/Makefile.msc +++ b/ext/lsm1/Makefile.msc @@ -37,7 +37,7 @@ LSMTESTSRC = $(LSMDIR)\lsm-test\lsmtest1.c $(LSMDIR)\lsm-test\lsmtest2.c \ $(LSMDIR)\lsm-test\lsmtest_func.c $(LSMDIR)\lsm-test\lsmtest_io.c \ $(LSMDIR)\lsm-test\lsmtest_main.c $(LSMDIR)\lsm-test\lsmtest_mem.c \ $(LSMDIR)\lsm-test\lsmtest_tdb.c $(LSMDIR)\lsm-test\lsmtest_tdb3.c \ - $(LSMDIR)\lsm-test\lsmtest_util.c + $(LSMDIR)\lsm-test\lsmtest_util.c $(LSMDIR)\lsm-test\lsmtest_win32.c # all: lsm.dll @@ -89,5 +89,4 @@ lsm.dll: $(LSMOBJ) $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /OUT:$@ $(LSMOBJ) lsmtest.exe: $(LSMOBJ) $(LSMTESTSRC) $(LSMTESTHDR) $(LIBOBJS1) - # $(LTCOMPILE) -c $(TOP)\lsm-test\lsmtest_tdb2.cc - $(LTCOMPILE) $(LSMOPTS) $(LSMTESTSRC) $(LSMOBJ) $(LIBOBJS1) -Fe$@ + $(LTLINK) $(LSMOPTS) $(LSMTESTSRC) /link $(LSMOBJ) $(LIBOBJS1) diff --git a/ext/lsm1/lsm-test/lsmtest.h b/ext/lsm1/lsm-test/lsmtest.h index 49a6f83c62..a8e54a2d0e 100644 --- a/ext/lsm1/lsm-test/lsmtest.h +++ b/ext/lsm1/lsm-test/lsmtest.h @@ -15,6 +15,25 @@ extern "C" { #endif +#ifdef _WIN32 +# include "windows.h" +# define gettimeofday win32GetTimeOfDay +# define F_OK (0) +# define sleep(sec) Sleep(1000 * (sec)) +# define usleep(usec) Sleep((usec) / 1000) +# ifdef _MSC_VER +# include +# define snprintf _snprintf +# define fsync(fd) FlushFileBuffers((HANDLE)_get_osfhandle((fd))) +# define fdatasync(fd) FlushFileBuffers((HANDLE)_get_osfhandle((fd))) +# define __va_copy(dst,src) ((dst) = (src)) +# define ftruncate(fd,sz) (_chsize_s((fd), (sz))==0) +# else +# error Unsupported C compiler for Windows. +# endif +int win32GetTimeOfDay(struct timeval *, void *); +#endif + #ifndef _LSM_INT_H typedef unsigned int u32; typedef unsigned char u8; diff --git a/ext/lsm1/lsm-test/lsmtest6.c b/ext/lsm1/lsm-test/lsmtest6.c index 3277763254..d858249f3e 100644 --- a/ext/lsm1/lsm-test/lsmtest6.c +++ b/ext/lsm1/lsm-test/lsmtest6.c @@ -240,7 +240,9 @@ static void testOomScan( #define LSMTEST6_TESTDB "testdb.lsm" -#include +#ifndef _WIN32 +# include +#endif #include #include #include diff --git a/ext/lsm1/lsm-test/lsmtest_io.c b/ext/lsm1/lsm-test/lsmtest_io.c index e6c96aafd9..7d572ab0f7 100644 --- a/ext/lsm1/lsm-test/lsmtest_io.c +++ b/ext/lsm1/lsm-test/lsmtest_io.c @@ -58,7 +58,9 @@ #include #include #include -#include +#ifndef _WIN32 +# include +#endif #include typedef struct IoContext IoContext; diff --git a/ext/lsm1/lsm-test/lsmtest_main.c b/ext/lsm1/lsm-test/lsmtest_main.c index 2e836f74e7..51d5c748b5 100644 --- a/ext/lsm1/lsm-test/lsmtest_main.c +++ b/ext/lsm1/lsm-test/lsmtest_main.c @@ -8,7 +8,9 @@ #include -#include +#ifndef _WIN32 +# include +#endif #include #include #include diff --git a/ext/lsm1/lsm-test/lsmtest_tdb.c b/ext/lsm1/lsm-test/lsmtest_tdb.c index f99c0f5601..19d572ce99 100644 --- a/ext/lsm1/lsm-test/lsmtest_tdb.c +++ b/ext/lsm1/lsm-test/lsmtest_tdb.c @@ -14,7 +14,9 @@ #include #include #include -#include +#ifndef _WIN32 +# include +#endif #include diff --git a/ext/lsm1/lsm-test/lsmtest_tdb3.c b/ext/lsm1/lsm-test/lsmtest_tdb3.c index 048fd71ef6..8a0141bdf4 100644 --- a/ext/lsm1/lsm-test/lsmtest_tdb3.c +++ b/ext/lsm1/lsm-test/lsmtest_tdb3.c @@ -6,10 +6,14 @@ #include #include #include -#include +#ifndef _WIN32 +# include +#endif #include -#include +#ifndef _WIN32 +# include +#endif typedef struct LsmDb LsmDb; typedef struct LsmWorker LsmWorker; diff --git a/ext/lsm1/lsm-test/lsmtest_util.c b/ext/lsm1/lsm-test/lsmtest_util.c index 634a94db68..adab8a53e8 100644 --- a/ext/lsm1/lsm-test/lsmtest_util.c +++ b/ext/lsm1/lsm-test/lsmtest_util.c @@ -1,8 +1,11 @@ +#include "lsmtest.h" #include #include #include -#include +#ifndef _WIN32 +# include +#endif /* ** Global variables used within this module. diff --git a/ext/lsm1/lsm-test/lsmtest_win32.c b/ext/lsm1/lsm-test/lsmtest_win32.c new file mode 100644 index 0000000000..772c1706f0 --- /dev/null +++ b/ext/lsm1/lsm-test/lsmtest_win32.c @@ -0,0 +1,30 @@ + +#include "lsmtest.h" + +#ifdef _WIN32 + +#define TICKS_PER_SECOND (10000000) +#define TICKS_PER_MICROSECOND (10) +#define TICKS_UNIX_EPOCH (116444736000000000LL) + +int win32GetTimeOfDay( + struct timeval *tp, + void *tzp +){ + FILETIME fileTime; + ULARGE_INTEGER largeInteger; + ULONGLONG temp; + + unused_parameter(tzp); + memset(&fileTime, 0, sizeof(FILETIME)); + GetSystemTimeAsFileTime(&fileTime); + memset(&largeInteger, 0, sizeof(ULARGE_INTEGER)); + largeInteger.LowPart = fileTime.dwLowDateTime; + largeInteger.HighPart = fileTime.dwHighDateTime; + temp = largeInteger.QuadPart - TICKS_UNIX_EPOCH; + tp->tv_sec = (long)(temp / TICKS_PER_SECOND); + temp -= ((ULONGLONG)tp->tv_sec * TICKS_PER_SECOND); + tp->tv_usec = (long)(temp / TICKS_PER_MICROSECOND); + return 0; +} +#endif diff --git a/ext/lsm1/lsmInt.h b/ext/lsm1/lsmInt.h index 01560bd057..06248499db 100644 --- a/ext/lsm1/lsmInt.h +++ b/ext/lsm1/lsmInt.h @@ -24,7 +24,9 @@ #include #ifdef _WIN32 -# define snprintf _snprintf +# ifdef _MSC_VER +# define snprintf _snprintf +# endif #else # include #endif diff --git a/manifest b/manifest index c38929f7b1..111b9a4e7d 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Implement\sxFullpath\sfor\sWin32. -D 2017-06-27T18:15:38.105 +C Initial\swork\son\sporting\slsmtest\sto\sWin32. +D 2017-06-27T22:27:54.690 F Makefile.in 1cc758ce3374a32425e4d130c2fe7b026b20de5b8843243de75f087c0a2661fb F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc d389c6fb3344ea6887b386d56784a6d8a5c85107294448aeda50ac404285a1ef @@ -208,33 +208,34 @@ F ext/fts5/tool/showfts5.tcl d54da0e067306663e2d5d523965ca487698e722c F ext/icu/README.txt d9fbbad0c2f647c3fdf715fc9fd64af53aedfc43 F ext/icu/icu.c 84900472a088a3a172c6c079f58a1d3a1952c332 F ext/icu/sqliteicu.h 728867a802baa5a96de7495e9689a8e01715ef37 -F ext/lsm1/Makefile 5f60d0e1635ee51c438973f37a93f8e562229b446db59fc00af1621d39fdee26 -F ext/lsm1/Makefile.msc e40e3cf63d8351a538db8767240984d13e9ec60dbdf308910b98deef56695ec9 +F ext/lsm1/Makefile a2ea4975162be8932b5efa727080f4982715d34c32035d9eb7a015ae78404981 +F ext/lsm1/Makefile.msc c8140509750fb207f0e984991bc426e91a11adb2f6434f218c52103b9d33a8e1 F ext/lsm1/lsm-test/README 87ea529d2abe615e856d4714bfe8bb185e6c2771b8612aa6298588b7b43e6f86 -F ext/lsm1/lsm-test/lsmtest.h e7057a3f9db71938496fc8ef081c9f45623b25bfd8499b3550d1ea7123143e90 +F ext/lsm1/lsm-test/lsmtest.h 910772d90683d44092ec591409280bf9e6635fd5eb8514af741ccb46061334f2 F ext/lsm1/lsm-test/lsmtest1.c 27c3cf6512514b25a145154ae4e54d053d883b2f7f52ed214747b5ebaceedd3e F ext/lsm1/lsm-test/lsmtest2.c 385efd49f3411bb2c8e0f9ffbd4f87450d5ac368aeee62d509d2c0ce10e4215b 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 9d5db9ff638152c8c3948dc1077dd302deff4fcb3d30cc71ac769915797bbb1d +F ext/lsm1/lsm-test/lsmtest6.c 1f21509ea5d2b28b74539c2a70b8001619d0713091511067278f57871f4b753a F ext/lsm1/lsm-test/lsmtest7.c 7a917455a0f956a8ed3f44f5c9387ec0ea6627714874464cc3fa5c5a9cabb2f2 F ext/lsm1/lsm-test/lsmtest8.c b87a1279b0cfbb39df1fff50074696fbf5d83822349f65706fab6d618a7a52fa F ext/lsm1/lsm-test/lsmtest9.c 88245ce0fdd01678be548100e584cacdacab90208624223aac9029e4f90535fe F ext/lsm1/lsm-test/lsmtest_bt.c d70d9a9be5eef9360af1251dd083948d74fd30137a08f61bef995f7ac04e037f 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 2b71d1208a5671b3836fb95cdb4c0263ae7eb51542d16ef7f6bb9b651b15f194 -F ext/lsm1/lsm-test/lsmtest_main.c 54959b48ceee78ced319bb9d0e1f1abe42741ba63c5ae2bf11d1f03dd80fa601 +F ext/lsm1/lsm-test/lsmtest_io.c ba678e052f497b4c2ff41d47672a1f2a02f495d14083845ee66e0bda678f5b80 +F ext/lsm1/lsm-test/lsmtest_main.c 70c5abcf62869aaeaa1f2e4760f590f018d3e1ad197c5499cebfc1ad7e8ad660 F ext/lsm1/lsm-test/lsmtest_mem.c 996b1e76cc876e8d765182a2f14159b1acbf56cbf86d286173e13e970b79a945 -F ext/lsm1/lsm-test/lsmtest_tdb.c 59a58b2513e0dbb581008c0a32c6e2b630dafafe8972f800cc13faac5fe63b1a +F ext/lsm1/lsm-test/lsmtest_tdb.c d85694a9e5cd3908cb3e10bb5cb5d6a47ad101adb9fb477ca61f1e3725253b06 F ext/lsm1/lsm-test/lsmtest_tdb.h de1ee8c71a7ef61d964e40e057cffea387d7b58a51d95905ab909937d24e4a91 F ext/lsm1/lsm-test/lsmtest_tdb2.cc 99ea7f2dd9c7536c8fb9bdd329e4cfeb76899f3ddf6f48bdd3926e016922b715 -F ext/lsm1/lsm-test/lsmtest_tdb3.c 6de609f6233026227d721e9265e62bf1834aed07d8795610c7ef8e30ce6be559 +F ext/lsm1/lsm-test/lsmtest_tdb3.c 105ef644ad03c8d7f21f8d1f6514adaf30a7c26f4e21cccb3874b70a14985041 F ext/lsm1/lsm-test/lsmtest_tdb4.c 47e8bb5eba266472d690fb8264f1855ebdba0ae5a0e541e35fcda61ebf1d277f -F ext/lsm1/lsm-test/lsmtest_util.c 0c2b7c1d109fbd6b7b9a2780f1315e2438a973d18afea5c4eccf94e8827c8260 +F ext/lsm1/lsm-test/lsmtest_util.c 241622db5a332a09c8e6e7606b617d288a37b557f7d3bce0bb97809f67cc2806 +F ext/lsm1/lsm-test/lsmtest_win32.c ce2e0afda0898bf920c275662cf53fff914c531b83dd510a62e036bdd566af4f F ext/lsm1/lsm.h 0f6f64ff071471cb87bf98beb8386566f30ea001 -F ext/lsm1/lsmInt.h de86f9dc7f2d90a3c94a5df820929c57d0b24399358ec274603028ed4cbe5b2b +F ext/lsm1/lsmInt.h 4c07df475dff0c7a718839ed4e87a66779055fbe3eb9c4815a0a4ba944da7e42 F ext/lsm1/lsm_ckpt.c e7907e782fe2e95de0833675e35e726e487cc4cd F ext/lsm1/lsm_file.c 2f0232e2dc0262f60cab1b7010785fb961d566c740fc0370101c14ab085739e0 F ext/lsm1/lsm_log.c 5b3e855fcfb85de9fb86fcbf65696cc6886d3231 @@ -1623,7 +1624,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 e1cf8a78a0bbd7b05cefab22a5c9676098887ee9811d37330ce89b3367856f92 -R 2b41b25f40e4c080242ad0e7f7bcc590 +P dbe9c8aa8d70051fafec569054eeda6c02efe9d036ab6beada00da3ed42e52d9 +R 08b5f8178c42e28f51b4e8a018ddab16 U mistachkin -Z e0848c84f070e42af46f00f70df25c0e +Z 1d7723421fca05b28161eb9a9865cd58 diff --git a/manifest.uuid b/manifest.uuid index dd51244ba2..6a10678e53 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -dbe9c8aa8d70051fafec569054eeda6c02efe9d036ab6beada00da3ed42e52d9 \ No newline at end of file +7e669d9bfab237ff7ece821cf95cfd3bb753b1882b9a86044b7d4579808aecf4 \ No newline at end of file