From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/propsys/tests/propsys.c | 106 +++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+)
diff --git a/dlls/propsys/tests/propsys.c b/dlls/propsys/tests/propsys.c index 540c84a32d8..a599d7df73e 100644 --- a/dlls/propsys/tests/propsys.c +++ b/dlls/propsys/tests/propsys.c @@ -1513,10 +1513,116 @@ static void test_PropVariantChangeType_UI4(void) } }
+static void test_PropVariantChangeType_R8(void) +{ + PROPVARIANT src, dest; + HRESULT hr; + + src.vt = VT_R8; + src.dblVal = 10.1; + dest.vt = VT_EMPTY; + hr = PropVariantChangeType(&dest, &src, 0, VT_R8); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(dest.vt == VT_R8, "Unexpected type %d.\n", dest.vt); + ok(dest.dblVal == 10.1, "Unexpected value %f.\n", dest.dblVal); + + src.vt = VT_R4; + src.fltVal = 10.1f; + dest.vt = VT_EMPTY; + hr = PropVariantChangeType(&dest, &src, 0, VT_R8); +todo_wine { + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(dest.vt == VT_R8, "Unexpected type %d.\n", dest.vt); + ok(dest.dblVal == 10.1f, "Unexpected value %f.\n", dest.dblVal); +} + src.vt = VT_I4; + src.lVal = 123; + dest.vt = VT_EMPTY; + hr = PropVariantChangeType(&dest, &src, 0, VT_R8); +todo_wine { + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(dest.vt == VT_R8, "Unexpected type %d.\n", dest.vt); + ok(dest.dblVal == 123.0, "Unexpected value %f.\n", dest.dblVal); +} + src.vt = VT_I4; + src.lVal = -256; + dest.vt = VT_EMPTY; + hr = PropVariantChangeType(&dest, &src, 0, VT_R8); +todo_wine { + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(dest.vt == VT_R8, "Unexpected type %d.\n", dest.vt); + ok(dest.dblVal == -256.0, "Unexpected value %f.\n", dest.dblVal); +} + src.vt = VT_I8; + src.hVal.QuadPart = -256; + dest.vt = VT_EMPTY; + hr = PropVariantChangeType(&dest, &src, 0, VT_R8); +todo_wine { + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(dest.vt == VT_R8, "Unexpected type %d.\n", dest.vt); + ok(dest.dblVal == -256.0, "Unexpected value %f.\n", dest.dblVal); +} + src.vt = VT_I8; + src.hVal.QuadPart = 65536; + dest.vt = VT_EMPTY; + hr = PropVariantChangeType(&dest, &src, 0, VT_R8); +todo_wine { + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(dest.vt == VT_R8, "Unexpected type %d.\n", dest.vt); + ok(dest.dblVal == 65536.0, "Unexpected value %f.\n", dest.dblVal); +} + src.vt = VT_I8; + src.hVal.QuadPart = -321; + dest.vt = VT_EMPTY; + hr = PropVariantChangeType(&dest, &src, 0, VT_R8); +todo_wine { + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(dest.vt == VT_R8, "Unexpected type %d.\n", dest.vt); + ok(dest.dblVal == -321.0, "Unexpected value %f.\n", dest.dblVal); +} + src.vt = VT_UI4; + src.ulVal = 6; + dest.vt = VT_EMPTY; + hr = PropVariantChangeType(&dest, &src, 0, VT_R8); +todo_wine { + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(dest.vt == VT_R8, "Unexpected type %d.\n", dest.vt); + ok(dest.dblVal == 6.0, "Unexpected value %f.\n", dest.dblVal); +} + src.vt = VT_UI8; + src.uhVal.QuadPart = 8; + dest.vt = VT_EMPTY; + hr = PropVariantChangeType(&dest, &src, 0, VT_R8); +todo_wine { + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(dest.vt == VT_R8, "Unexpected type %d.\n", dest.vt); + ok(dest.dblVal == 8.0, "Unexpected value %f.\n", dest.dblVal); +} + src.vt = VT_R4; + src.fltVal = 8.1f; + dest.vt = VT_EMPTY; + hr = PropVariantChangeType(&dest, &src, 0, VT_R8); +todo_wine { + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(dest.vt == VT_R8, "Unexpected type %d.\n", dest.vt); + ok(dest.dblVal == 8.1f, "Unexpected value %f.\n", dest.dblVal); +} + src.vt = VT_R4; + src.fltVal = 8.6f; + dest.vt = VT_EMPTY; + hr = PropVariantChangeType(&dest, &src, 0, VT_R8); +todo_wine { + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(dest.vt == VT_R8, "Unexpected type %d.\n", dest.vt); + ok(dest.dblVal == 8.6f, "Unexpected value %f.\n", dest.dblVal); +} +} + static void test_PropVariantChangeType(void) { test_PropVariantChangeType_LPWSTR(); test_PropVariantChangeType_UI4(); + test_PropVariantChangeType_R8(); }
static void test_InitPropVariantFromCLSID(void)