From 60c587870a4b12208a9c43f66f5cb930c2b14427 Mon Sep 17 00:00:00 2001 From: Daniel Lehman Date: Tue, 15 Mar 2022 07:17:37 -0700 Subject: [PATCH 2/3] propsys/tests: Add some InitVariantFromFileTime tests. Signed-off-by: Daniel Lehman --- dlls/propsys/tests/propsys.c | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/dlls/propsys/tests/propsys.c b/dlls/propsys/tests/propsys.c index 36b1a9dca8ee..e31773a243a2 100644 --- a/dlls/propsys/tests/propsys.c +++ b/dlls/propsys/tests/propsys.c @@ -2030,6 +2030,42 @@ static void test_PSCreatePropertyStoreFromObject(void) IPropertyStore_Release(propstore); } +static void test_InitVariantFromFileTime(void) +{ + FILETIME ft = {0}; + SYSTEMTIME st; + VARIANT var; + HRESULT hr; + double d; + + VariantInit(&var); + if (0) /* crash on Windows */ + { + InitVariantFromFileTime(&ft, NULL); + InitVariantFromFileTime(NULL, &var); + } + + todo_wine { + ft.dwHighDateTime = -1; + ft.dwLowDateTime = -1; + V_VT(&var) = 0xdead; + V_DATE(&var) = 42.0; + hr = InitVariantFromFileTime(&ft, &var); + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + ok(V_VT(&var) == VT_EMPTY, "Unexpected VT %d\n", V_VT(&var)); + ok(V_DATE(&var) == 0.0, "got wrong value: %f, expected 0.0\n", V_DATE(&var)); + + GetSystemTimeAsFileTime(&ft); + hr = InitVariantFromFileTime(&ft, &var); + ok(V_VT(&var) == VT_DATE, "Unexpected VT %d\n", V_VT(&var)); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + FileTimeToSystemTime(&ft, &st); + SystemTimeToVariantTime(&st, &d); + ok(V_DATE(&var) == d, "got wrong value: %f, expected %f\n", V_DATE(&var), d); + } +} + START_TEST(propsys) { test_PSStringFromPropertyKey(); @@ -2053,4 +2089,5 @@ START_TEST(propsys) test_PSCreateMemoryPropertyStore(); test_propertystore(); test_PSCreatePropertyStoreFromObject(); + test_InitVariantFromFileTime(); } -- 2.27.0