Francois Gouget : oleaut32/tests: Allow testing VarParseNumFromStr() using Unicode strings.
Alexandre Julliard
julliard at winehq.org
Mon Jul 19 15:59:15 CDT 2021
Module: wine
Branch: master
Commit: 627988565b0d77d88d5c2ba0b1419569274afa2e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=627988565b0d77d88d5c2ba0b1419569274afa2e
Author: Francois Gouget <fgouget at codeweavers.com>
Date: Fri Jul 16 17:16:06 2021 +0200
oleaut32/tests: Allow testing VarParseNumFromStr() using Unicode strings.
Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/oleaut32/tests/vartest.c | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/dlls/oleaut32/tests/vartest.c b/dlls/oleaut32/tests/vartest.c
index 8492a720855..1fec6c33134 100644
--- a/dlls/oleaut32/tests/vartest.c
+++ b/dlls/oleaut32/tests/vartest.c
@@ -1262,21 +1262,27 @@ static void test_VariantCopyInd(void)
"CopyInd(ref->ref): expected E_INVALIDARG, got 0x%08x\n", hres);
}
-static HRESULT (WINAPI *pVarParseNumFromStr)(OLECHAR*,LCID,ULONG,NUMPARSE*,BYTE*);
+static HRESULT (WINAPI *pVarParseNumFromStr)(const OLECHAR*,LCID,ULONG,NUMPARSE*,BYTE*);
/* Macros for converting and testing the result of VarParseNumFromStr */
#define FAILDIG 255
-static HRESULT convert_str( const char *str, INT dig, ULONG flags,
+static HRESULT wconvert_str( const OLECHAR *str, INT dig, ULONG flags,
NUMPARSE *np, BYTE rgb[128], LCID lcid )
{
- OLECHAR buff[128];
- MultiByteToWideChar( CP_ACP,0, str, -1, buff, ARRAY_SIZE( buff ));
memset( rgb, FAILDIG, 128 );
memset( np, 255, sizeof(*np) );
np->cDig = dig;
np->dwInFlags = flags;
- return pVarParseNumFromStr( buff, lcid, LOCALE_NOUSEROVERRIDE, np, rgb);
+ return pVarParseNumFromStr( str, lcid, LOCALE_NOUSEROVERRIDE, np, rgb);
+}
+
+static HRESULT convert_str( const char *str, INT dig, ULONG flags,
+ NUMPARSE *np, BYTE rgb[128], LCID lcid )
+{
+ OLECHAR buff[128];
+ MultiByteToWideChar( CP_ACP,0, str, -1, buff, ARRAY_SIZE( buff ));
+ return wconvert_str(buff, dig, flags, np, rgb, lcid);
}
static void expect_NumFromStr( int line, HRESULT hres, NUMPARSE *np, INT a, ULONG b, ULONG c,
@@ -1293,6 +1299,8 @@ static void expect_NumFromStr( int line, HRESULT hres, NUMPARSE *np, INT a, ULON
}
}
+#define WCONVERTN(str,dig,flags) hres = wconvert_str( str, dig, flags, &np, rgb, lcid )
+#define WCONVERT(str,flags) WCONVERTN(str,sizeof(rgb),flags)
#define CONVERTN(str,dig,flags) hres = convert_str( str, dig, flags, &np, rgb, lcid )
#define CONVERT(str,flags) CONVERTN(str,sizeof(rgb),flags)
#define EXPECT(a,b,c,d,e,f) expect_NumFromStr( __LINE__, hres, &np, a, b, c, d, e, f )
@@ -1307,7 +1315,6 @@ static void test_VarParseNumFromStr(void)
LCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),SORT_DEFAULT);
NUMPARSE np;
BYTE rgb[128];
- WCHAR str[128];
/** No flags **/
@@ -1731,10 +1738,9 @@ static void test_VarParseNumFromStr(void)
EXPECT(1,NUMPRS_STD,NUMPRS_DECIMAL,4,0,-1);
EXPECT2(1,0);
- str[0] = 0x0660;
- str[1] = 0;
- hres = pVarParseNumFromStr(str, lcid, LOCALE_NOUSEROVERRIDE, &np, rgb);
- ok(hres == DISP_E_TYPEMISMATCH, "VarParseNumFromStr returned %08x\n", hres);
+ /* Arabic numerals are not allowed "0" */
+ WCONVERT(L"\x660", NUMPRS_STD);
+ EXPECTFAIL;
}
static HRESULT (WINAPI *pVarNumFromParseNum)(NUMPARSE*,BYTE*,ULONG,VARIANT*);
More information about the wine-cvs
mailing list