Paul Vriens wrote:
Detlef Riekenberg wrote:
On Mi, 2009-04-15 at 13:37 +0200, Paul Vriens wrote:
The lstrcpyW and lstrcatW additions to init() in the tests don't work on Win95. I guess that's where the new failures come from:
I removed a "broken(hres == VARCMP_GT)", and that's what VarCmp on your w95 machine returned. My second Patch for oleaut32/tests/vartest.c was not applied, otherwise we would have seen the reason in the log.
Can you please use the attached diff and post the result? Thanks
Here it is:
vartest.c:127: Tests skipped: No support for I8 and UI8 data types vartest.c:5452: got 0x0 and VT_BSTR(12True) for VT_INT(12), VT_BOOL(1) vartest.c:5455: got 0x2 for VT_BSTR(12True), VT_BSTR() vartest.c:5456: Test failed: Expected VARCMP_EQ, got 00000002 for VT_BSTR(12True), VT_BSTR() vartest.c:5471: got 0x0 and VT_BSTR(12False) for VT_INT(12), VT_BOOL(0) vartest.c:5474: got 0x2 for VT_BSTR(12False), VT_BSTR() vartest.c:5475: Test failed: Expected VARCMP_EQ, got 00000002 for VT_BSTR(12False), VT_BSTR() vartest: 1025087 tests executed (0 marked as todo, 2 failures), 1 skipped.
As said. I think the reason for sz12_true being empty is that you are using W-functions in the init() function.
The attached patch fixes 'my' issue on Win95 so it's indeed the use of W-functions. -- Cheers, Paul. diff --git a/dlls/oleaut32/tests/vartest.c b/dlls/oleaut32/tests/vartest.c index 24ef171..ef1ecf2 100644 --- a/dlls/oleaut32/tests/vartest.c +++ b/dlls/oleaut32/tests/vartest.c @@ -102,19 +102,25 @@ static void init(void) { BSTR bstr; HRESULT res; + CHAR localbool[32]; + CHAR sz12_trueA[32], sz12_falseA[32]; res = VarBstrFromBool(VARIANT_TRUE, LANG_USER_DEFAULT, VAR_LOCALBOOL, &bstr); - ok(SUCCEEDED(res) && (lstrlenW(bstr) > 0), + WideCharToMultiByte(CP_ACP, 0, bstr, -1, localbool, sizeof(localbool), NULL, NULL); + ok(SUCCEEDED(res) && (lstrlenA(localbool) > 0), "Expected localized string for 'True'\n"); - lstrcpyW(sz12_true, sz12); - if (bstr) lstrcatW(sz12_true, bstr); + lstrcpyA(sz12_trueA, "12"); + if (bstr) lstrcatA(sz12_trueA, localbool); + MultiByteToWideChar(CP_ACP, 0, sz12_trueA, -1, sz12_true, sizeof(sz12_true)/sizeof(WCHAR)); SysFreeString(bstr); res = VarBstrFromBool(VARIANT_FALSE, LANG_USER_DEFAULT, VAR_LOCALBOOL, &bstr); - ok(SUCCEEDED(res) && (lstrlenW(bstr) > 0), + WideCharToMultiByte(CP_ACP, 0, bstr, -1, localbool, sizeof(localbool), NULL, NULL); + ok(SUCCEEDED(res) && (lstrlenA(localbool) > 0), "Expected localized string for 'False'\n"); - lstrcpyW(sz12_false, sz12); - if (bstr) lstrcatW(sz12_false, bstr); + lstrcpyA(sz12_falseA, "12"); + if (bstr) lstrcatA(sz12_falseA, localbool); + MultiByteToWideChar(CP_ACP, 0, sz12_falseA, -1, sz12_false, sizeof(sz12_false)/sizeof(WCHAR)); SysFreeString(bstr); hOleaut32 = GetModuleHandle("oleaut32.dll");