ucrtbase/tests: Fix clock tests.

crt_init_start no longer makes sense since ucrtbase.dll is directly
linked to test executable.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2020-03-17 15:55:24 +01:00 committed by Alexandre Julliard
parent 0f911b7aa4
commit 618b0736fe
1 changed files with 6 additions and 13 deletions

View File

@ -131,7 +131,7 @@ typedef struct {
typedef int (CDECL *MSVCRT_matherr_func)(struct MSVCRT__exception *); typedef int (CDECL *MSVCRT_matherr_func)(struct MSVCRT__exception *);
static HMODULE module; static HMODULE module;
static LONGLONG crt_init_start, crt_init_end; static LONGLONG crt_init_end;
static int (CDECL *p_initialize_onexit_table)(MSVCRT__onexit_table_t *table); static int (CDECL *p_initialize_onexit_table)(MSVCRT__onexit_table_t *table);
static int (CDECL *p_register_onexit_function)(MSVCRT__onexit_table_t *table, MSVCRT__onexit_t func); static int (CDECL *p_register_onexit_function)(MSVCRT__onexit_table_t *table, MSVCRT__onexit_t func);
@ -485,16 +485,10 @@ static BOOL init(void)
{ {
FILETIME cur; FILETIME cur;
GetSystemTimeAsFileTime(&cur);
crt_init_start = ((LONGLONG)cur.dwHighDateTime << 32) + cur.dwLowDateTime;
module = LoadLibraryA("ucrtbase.dll");
GetSystemTimeAsFileTime(&cur); GetSystemTimeAsFileTime(&cur);
crt_init_end = ((LONGLONG)cur.dwHighDateTime << 32) + cur.dwLowDateTime; crt_init_end = ((LONGLONG)cur.dwHighDateTime << 32) + cur.dwLowDateTime;
if(!module) { module = GetModuleHandleW(L"ucrtbase.dll");
win_skip("ucrtbase.dll not available\n");
return FALSE;
}
p_initialize_onexit_table = (void*)GetProcAddress(module, "_initialize_onexit_table"); p_initialize_onexit_table = (void*)GetProcAddress(module, "_initialize_onexit_table");
p_register_onexit_function = (void*)GetProcAddress(module, "_register_onexit_function"); p_register_onexit_function = (void*)GetProcAddress(module, "_register_onexit_function");
@ -1384,17 +1378,16 @@ static void test__o_malloc(void)
static void test_clock(void) static void test_clock(void)
{ {
static const int thresh = 100; static const int thresh = 100, max_load_delay = 1000;
int c, expect_min, expect_max; int c, expect_min;
FILETIME cur; FILETIME cur;
GetSystemTimeAsFileTime(&cur); GetSystemTimeAsFileTime(&cur);
c = clock(); c = clock();
expect_min = (((LONGLONG)cur.dwHighDateTime << 32) + cur.dwLowDateTime - crt_init_end) / 10000; expect_min = (((LONGLONG)cur.dwHighDateTime << 32) + cur.dwLowDateTime - crt_init_end) / 10000;
expect_max = (((LONGLONG)cur.dwHighDateTime << 32) + cur.dwLowDateTime - crt_init_start) / 10000; ok(c >= expect_min - thresh && c < expect_min + max_load_delay, "clock() = %d, expected range [%d, %d]\n",
ok(c > expect_min-thresh && c < expect_max+thresh, "clock() = %d, expected range [%d, %d]\n", c, expect_min - thresh, expect_min + max_load_delay);
c, expect_min, expect_max);
} }
START_TEST(misc) START_TEST(misc)