mirror of https://github.com/wolfSSL/wolfssl.git
implement gettime_secs for Windows (_MSC_VER) in tests/api.c
parent
5b5e66b55f
commit
321f74869a
24
tests/api.c
24
tests/api.c
|
@ -66255,10 +66255,28 @@ static const char* apitest_res_string(int res)
|
|||
#ifndef WOLFSSL_UNIT_TEST_NO_TIMING
|
||||
static double gettime_secs(void)
|
||||
{
|
||||
struct timeval tv;
|
||||
LIBCALL_CHECK_RET(gettimeofday(&tv, 0));
|
||||
#if defined(_MSC_VER) && defined(_WIN32)
|
||||
{
|
||||
/* there's no gettimeofday for Windows, so we'll use system time */
|
||||
#define EPOCH_DIFF 11644473600LL
|
||||
FILETIME currentFileTime;
|
||||
GetSystemTimePreciseAsFileTime(¤tFileTime);
|
||||
|
||||
return (double)tv.tv_sec + (double)tv.tv_usec / 1000000;
|
||||
ULARGE_INTEGER uli = { 0, 0 };
|
||||
uli.LowPart = currentFileTime.dwLowDateTime;
|
||||
uli.HighPart = currentFileTime.dwHighDateTime;
|
||||
|
||||
/* Convert to seconds since Unix epoch */
|
||||
return (double)((uli.QuadPart - EPOCH_DIFF * 10000000) / 10000000);
|
||||
}
|
||||
#else
|
||||
{
|
||||
struct timeval tv;
|
||||
LIBCALL_CHECK_RET(gettimeofday(&tv, 0));
|
||||
|
||||
return (double)tv.tv_sec + (double)tv.tv_usec / 1000000;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue