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");