Signed-off-by: Francois Gouget fgouget@codeweavers.com --- dlls/oleaut32/tests/vartest.c | 192 +++++++++++++++++++++++++++++++++- 1 file changed, 187 insertions(+), 5 deletions(-)
diff --git a/dlls/oleaut32/tests/vartest.c b/dlls/oleaut32/tests/vartest.c index 73df13fe5c9..3c43d8da433 100644 --- a/dlls/oleaut32/tests/vartest.c +++ b/dlls/oleaut32/tests/vartest.c @@ -1708,6 +1708,13 @@ static void test_VarParseNumFromStrEn(void) EXPECTRGB(2,1); EXPECTRGB(3,FAILDIG);
+ /* With flag, the currency cannot replace the decimal sign (see comment about + * the Cape Verdean escudo). + */ + CONVERT("1$99", NUMPRS_CURRENCY|NUMPRS_DECIMAL); + EXPECT(1,NUMPRS_CURRENCY|NUMPRS_DECIMAL,NUMPRS_CURRENCY,2,0,0); + EXPECT2(1,FAILDIG); + /* Thousands flag can also be used with currency */ CONVERT("$1,234", NUMPRS_CURRENCY|NUMPRS_THOUSANDS); EXPECT(4,NUMPRS_CURRENCY|NUMPRS_THOUSANDS,NUMPRS_CURRENCY|NUMPRS_THOUSANDS,6,0,0); @@ -2090,13 +2097,17 @@ static void test_VarParseNumFromStrMisc(void) LCID lcid; NUMPARSE np; BYTE rgb[128]; - OLECHAR t1000[128]; + OLECHAR currency[8], t1000[8], mont1000[8], dec[8], mondec[8];
CHECKPTR(VarParseNumFromStr);
- /* Test custom thousand */ + /* Customize the regional settings to perform extra tests */
- if (GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, t1000, ARRAY_SIZE(t1000))) + if (GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SCURRENCY, currency, ARRAY_SIZE(currency)) && + GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, t1000, ARRAY_SIZE(t1000)) && + GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SMONTHOUSANDSEP, mont1000, ARRAY_SIZE(mont1000)) && + GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, dec, ARRAY_SIZE(dec)) && + GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SMONDECIMALSEP, mondec, ARRAY_SIZE(mondec))) { OLECHAR wstr[128], separators[] = L"., \xa0"; int i; @@ -2113,8 +2124,103 @@ static void test_VarParseNumFromStrMisc(void) EXPECTFAIL;
- /* No separator is allowed if sThousand is set to an empty string */ + /* Show that NUMPRS_THOUSANDS activates sThousand and that + * NUMPRS_THOUSANDS+NUMPRS_CURRENCY activates sMonThousandSep + * whether a currency sign is present or not. Also the presence of + * sMonThousandSep flags the value as being a currency. + */ + SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, L"|"); + SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SMONTHOUSANDSEP, L" "); + + hres = wconvert_str(L"1|000", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS, &np, rgb, LOCALE_USER_DEFAULT, 0); + if (broken(1)) /* FIXME Reenable once Wine is less broken */ + EXPECT(1,NUMPRS_THOUSANDS,NUMPRS_THOUSANDS,5,0,3); + todo_wine ok(np.dwOutFlags == NUMPRS_THOUSANDS, "Got dwOutFlags=%08x\n", np.dwOutFlags); + EXPECTRGB(0,1); /* Don't test extra digits, see "1,000" test */ + EXPECTRGB(4,FAILDIG); + + hres = wconvert_str(L"1 000", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + todo_wine EXPECTFAIL; + + hres = wconvert_str(L"1|000", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_CURRENCY, &np, rgb, LOCALE_USER_DEFAULT, 0); + if (broken(1)) /* FIXME Reenable once Wine is less broken */ + EXPECT(1,NUMPRS_THOUSANDS|NUMPRS_CURRENCY,NUMPRS_THOUSANDS,5,0,3); + todo_wine ok(np.dwOutFlags == NUMPRS_THOUSANDS, "Got dwOutFlags=%08x\n", np.dwOutFlags); + EXPECTRGB(0,1); /* Don't test extra digits, see "1,000" test */ + EXPECTRGB(4,FAILDIG); + + hres = wconvert_str(L"1 000", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_CURRENCY|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + if (broken(1)) /* FIXME Reenable once Wine is less broken */ + EXPECT(1,NUMPRS_THOUSANDS|NUMPRS_CURRENCY|NUMPRS_USE_ALL,NUMPRS_THOUSANDS|NUMPRS_CURRENCY,5,0,3); + todo_wine ok(np.dwOutFlags == (NUMPRS_THOUSANDS|NUMPRS_CURRENCY), "Got dwOutFlags=%08x\n", np.dwOutFlags); + EXPECTRGB(0,1); /* Don't test extra digits, see "1,000" test */ + EXPECTRGB(4,FAILDIG); + + + /* Leading sMonThousandSep are not allowed (same as sThousand) */ + hres = wconvert_str(L" 1 000", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_CURRENCY|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + EXPECTFAIL; + + /* But trailing ones are allowed (same as sThousand) */ + hres = wconvert_str(L"1 000 ", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_CURRENCY|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + if (broken(1)) /* FIXME Reenable once Wine is less broken */ + EXPECT(1,NUMPRS_THOUSANDS|NUMPRS_CURRENCY|NUMPRS_USE_ALL,NUMPRS_THOUSANDS|NUMPRS_CURRENCY,6,0,3); + todo_wine ok(np.dwOutFlags == (NUMPRS_THOUSANDS|NUMPRS_CURRENCY), "Got dwOutFlags=%08x\n", np.dwOutFlags); + EXPECTRGB(0,1); /* Don't test extra digits, see "1,000" test */ + EXPECTRGB(4,FAILDIG); + + /* And they break NUMPRS_TRAILING_WHITE (same as sThousand) */ + hres = wconvert_str(L"1000 ", ARRAY_SIZE(rgb), NUMPRS_TRAILING_WHITE|NUMPRS_CURRENCY|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + EXPECTFAIL; + + + /* NUMPRS_CURRENCY is not enough for sMonThousandSep */ + hres = wconvert_str(L"1 000", ARRAY_SIZE(rgb), NUMPRS_CURRENCY|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + EXPECTFAIL; + + + /* Even with a currency sign, the regular thousands separator works */ + SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SCURRENCY, L"$"); + /* Make sure SMONDECIMALSEP is not the currency sign (see the + * Cape Verdean escudo comment). + */ + SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SMONDECIMALSEP, dec); + hres = wconvert_str(L"$1|000", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_CURRENCY, &np, rgb, LOCALE_USER_DEFAULT, 0); + todo_wine EXPECT(1,NUMPRS_THOUSANDS|NUMPRS_CURRENCY,NUMPRS_THOUSANDS|NUMPRS_CURRENCY,6,0,3); + todo_wine EXPECTRGB(0,1); /* Don't test extra digits, see "1,000" test */ + EXPECTRGB(4,FAILDIG); + + /* Mixing both thousands separators is allowed */ + hres = wconvert_str(L"1 000|000", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_CURRENCY|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + todo_wine EXPECT(1,NUMPRS_THOUSANDS|NUMPRS_CURRENCY|NUMPRS_USE_ALL,NUMPRS_THOUSANDS|NUMPRS_CURRENCY,9,0,6); + EXPECTRGB(0,1); /* Don't test extra digits, see "1,000" test */ + EXPECTRGB(7,FAILDIG); + + + /* SMONTHOUSANDSEP does not consider regular spaces to be equivalent to + * non-breaking spaces! + */ + SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SMONTHOUSANDSEP, L"\xa0"); + hres = wconvert_str(L"1 000", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_CURRENCY|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + todo_wine EXPECTFAIL; + + SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, L"\xa0"); + hres = wconvert_str(L"1 000", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_CURRENCY|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + EXPECT(1,NUMPRS_THOUSANDS|NUMPRS_CURRENCY|NUMPRS_USE_ALL,NUMPRS_THOUSANDS,5,0,3); + EXPECTRGB(0,1); /* Don't test extra digits, see "1,000" test */ + EXPECTRGB(4,FAILDIG); + + + /* Regular thousands separators also have precedence over the currency ones */ + hres = wconvert_str(L"1\xa0\x30\x30\x30", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_CURRENCY|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + todo_wine EXPECT(1,NUMPRS_THOUSANDS|NUMPRS_CURRENCY|NUMPRS_USE_ALL,NUMPRS_THOUSANDS,5,0,3); + EXPECTRGB(0,1); /* Don't test extra digits, see "1,000" test */ + EXPECTRGB(4,FAILDIG); + + + /* No thousands separator is allowed when set to an empty string */ SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, L""); + SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SMONTHOUSANDSEP, L""); for (i = 0; i < ARRAY_SIZE(separators)-1; i++) { winetest_push_context("%d", i); @@ -2124,12 +2230,16 @@ static void test_VarParseNumFromStrMisc(void) hres = wconvert_str(wstr, ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); todo_wine_if(i==2) EXPECTFAIL;
+ hres = wconvert_str(wstr, ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_CURRENCY|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + todo_wine_if(i==2) EXPECTFAIL; + winetest_pop_context(); }
/* Only the first sThousand character is used (sigh of relief) */ SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, L" \xa0"); + SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SMONTHOUSANDSEP, L" \xa0");
hres = wconvert_str(L"1 000", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); EXPECT(1,NUMPRS_THOUSANDS|NUMPRS_USE_ALL,NUMPRS_THOUSANDS,5,0,3); @@ -2139,7 +2249,79 @@ static void test_VarParseNumFromStrMisc(void) hres = wconvert_str(L"1\xa0\x30\x30\x30", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); EXPECTFAIL;
- SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, t1000); + hres = wconvert_str(L"1 \xa0\x30\x30\x30", ARRAY_SIZE(rgb), NUMPRS_THOUSANDS|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + EXPECTFAIL; + + + /* Show that the currency decimal separator is active even without + * NUMPRS_CURRENCY. + */ + SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, L"."); + SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SMONDECIMALSEP, L","); + + hres = wconvert_str(L"1.2", ARRAY_SIZE(rgb), NUMPRS_DECIMAL|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + todo_wine EXPECT(2,NUMPRS_DECIMAL|NUMPRS_USE_ALL,NUMPRS_DECIMAL,3,0,-1); + EXPECTRGB(0,1); + todo_wine EXPECTRGB(1,2); + EXPECTRGB(3,FAILDIG); + + hres = wconvert_str(L"1,2", ARRAY_SIZE(rgb), NUMPRS_DECIMAL, &np, rgb, LOCALE_USER_DEFAULT, 0); + if (broken(1)) /* FIXME Reenable once Wine is less broken */ + EXPECT(2,NUMPRS_DECIMAL,NUMPRS_DECIMAL|NUMPRS_CURRENCY,3,0,-1); + todo_wine ok(np.dwOutFlags == (NUMPRS_DECIMAL|NUMPRS_CURRENCY), "Got dwOutFlags=%08x\n", np.dwOutFlags); + EXPECT2(1,2); + EXPECTRGB(3,FAILDIG); + + hres = wconvert_str(L"1.2", ARRAY_SIZE(rgb), NUMPRS_DECIMAL|NUMPRS_CURRENCY|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + todo_wine EXPECT(2,NUMPRS_DECIMAL|NUMPRS_CURRENCY|NUMPRS_USE_ALL,NUMPRS_DECIMAL,3,0,-1); + EXPECTRGB(0,1); + todo_wine EXPECTRGB(1,2); + EXPECTRGB(3,FAILDIG); + + hres = wconvert_str(L"1,2", ARRAY_SIZE(rgb), NUMPRS_DECIMAL|NUMPRS_CURRENCY|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + if (broken(1)) /* FIXME Reenable once Wine is less broken */ + EXPECT(2,NUMPRS_DECIMAL|NUMPRS_CURRENCY|NUMPRS_USE_ALL,NUMPRS_DECIMAL|NUMPRS_CURRENCY,3,0,-1); + todo_wine ok(np.dwOutFlags == (NUMPRS_DECIMAL|NUMPRS_CURRENCY), "Got dwOutFlags=%08x\n", np.dwOutFlags); + EXPECT2(1,2); + EXPECTRGB(3,FAILDIG); + + hres = wconvert_str(L"1.2,3", ARRAY_SIZE(rgb), NUMPRS_DECIMAL|NUMPRS_CURRENCY, &np, rgb, LOCALE_USER_DEFAULT, 0); + if (broken(1)) /* FIXME Reenable once Wine is less broken */ + EXPECT(2,NUMPRS_DECIMAL|NUMPRS_CURRENCY,NUMPRS_DECIMAL,3,0,-1); + todo_wine ok(np.dwOutFlags == NUMPRS_DECIMAL, "Got dwOutFlags=%08x\n", np.dwOutFlags); + EXPECTRGB(0,1); + todo_wine EXPECTRGB(1,2); + EXPECTRGB(3,FAILDIG); + + hres = wconvert_str(L"1,2.3", ARRAY_SIZE(rgb), NUMPRS_DECIMAL, &np, rgb, LOCALE_USER_DEFAULT, 0); + if (broken(1)) /* FIXME Reenable once Wine is less broken */ + EXPECT(2,NUMPRS_DECIMAL,NUMPRS_DECIMAL|NUMPRS_CURRENCY,3,0,-1); + todo_wine ok(np.dwOutFlags == (NUMPRS_DECIMAL|NUMPRS_CURRENCY), "Got dwOutFlags=%08x\n", np.dwOutFlags); + EXPECT2(1,2); + EXPECTRGB(3,FAILDIG); + + + /* For some locales sMonDecimalSep replaces sCurrency because the + * currency sign serves as the decimal separator. + * For instance the Cape Verdean escudo. + */ + SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SCURRENCY, L""); + SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SMONDECIMALSEP, L"$"); + + hres = wconvert_str(L"1$99", ARRAY_SIZE(rgb), NUMPRS_DECIMAL|NUMPRS_USE_ALL, &np, rgb, LOCALE_USER_DEFAULT, 0); + todo_wine EXPECT(3,NUMPRS_DECIMAL|NUMPRS_USE_ALL,NUMPRS_DECIMAL|NUMPRS_CURRENCY,4,0,-2); + EXPECTRGB(0,1); + todo_wine EXPECTRGB(1,9); + todo_wine EXPECTRGB(2,9); + EXPECTRGB(3,FAILDIG); + + + /* Restore all the settings */ + ok(SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SCURRENCY, currency), "Restoring SCURRENCY failed\n"); + ok(SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, t1000), "Restoring STHOUSAND failed\n"); + ok(SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SMONTHOUSANDSEP, mont1000), "Restoring SMONTHOUSANDSEP failed\n"); + ok(SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, dec), "Restoring SDECIMAL failed\n"); + ok(SetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SMONDECIMALSEP, mondec), "Restoring SMONDECIMALSEP failed\n"); }
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=94455
Your paranoid android.
=== w2008s64 (32 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w7u_2qxl (32 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w7u_adm (32 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w8 (32 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w8adm (32 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w864 (32 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w1064v1507 (32 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w1064v1809 (32 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w1064 (32 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w1064_tsign (32 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w10pro64 (32 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== wvistau64 (64 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w2008s64 (64 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w864 (64 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w1064v1507 (64 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w1064v1809 (64 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w1064 (64 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w1064_2qxl (64 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w1064_tsign (64 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w10pro64 (64 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w10pro64_ar (64 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w10pro64_he (64 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w10pro64_ja (64 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== w10pro64_zh_CN (64 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
=== debiant2 (32 bit report) ===
oleaut32: vartest.c:2189: Test succeeded inside todo block: returned 00000000 vartest.c:2189: Test succeeded inside todo block: Expected cDig = 1, got 1 vartest.c:2189: Test succeeded inside todo block: Expected dwInFlags = 0x600, got 0x600 vartest.c:2189: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2190: Test succeeded inside todo block: Digit[0], expected 1, got 1 vartest.c:2263: Test succeeded inside todo block: returned 00000000 vartest.c:2263: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2263: Test succeeded inside todo block: Expected dwInFlags = 0x1100, got 0x1100 vartest.c:2263: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2263: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2263: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2263: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2265: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2272: Test failed: Digit[1], expected 2, got 255 vartest.c:2276: Test succeeded inside todo block: returned 00000000 vartest.c:2276: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2276: Test succeeded inside todo block: Expected dwInFlags = 0x1500, got 0x1500 vartest.c:2276: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2276: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2276: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2276: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2278: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2285: Test failed: Digit[1], expected 2, got 255 vartest.c:2291: Test succeeded inside todo block: Got dwOutFlags=00000100 vartest.c:2293: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2300: Test failed: Digit[1], expected 2, got 255
=== debiant2 (32 bit Arabic:Morocco report) ===
oleaut32: vartest.c:2189: Test succeeded inside todo block: returned 00000000 vartest.c:2189: Test succeeded inside todo block: Expected cDig = 1, got 1 vartest.c:2189: Test succeeded inside todo block: Expected dwInFlags = 0x600, got 0x600 vartest.c:2189: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2190: Test succeeded inside todo block: Digit[0], expected 1, got 1 vartest.c:2263: Test succeeded inside todo block: returned 00000000 vartest.c:2263: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2263: Test succeeded inside todo block: Expected dwInFlags = 0x1100, got 0x1100 vartest.c:2263: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2263: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2263: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2263: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2265: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2272: Test failed: Digit[1], expected 2, got 255 vartest.c:2276: Test succeeded inside todo block: returned 00000000 vartest.c:2276: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2276: Test succeeded inside todo block: Expected dwInFlags = 0x1500, got 0x1500 vartest.c:2276: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2276: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2276: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2276: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2278: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2285: Test failed: Digit[1], expected 2, got 255 vartest.c:2291: Test succeeded inside todo block: Got dwOutFlags=00000100 vartest.c:2293: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2300: Test failed: Digit[1], expected 2, got 255
=== debiant2 (32 bit Hebrew:Israel report) ===
oleaut32: vartest.c:2263: Test succeeded inside todo block: returned 00000000 vartest.c:2263: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2263: Test succeeded inside todo block: Expected dwInFlags = 0x1100, got 0x1100 vartest.c:2263: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2263: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2263: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2263: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2265: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2272: Test failed: Digit[1], expected 2, got 255 vartest.c:2276: Test succeeded inside todo block: returned 00000000 vartest.c:2276: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2276: Test succeeded inside todo block: Expected dwInFlags = 0x1500, got 0x1500 vartest.c:2276: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2276: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2276: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2276: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2278: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2285: Test failed: Digit[1], expected 2, got 255 vartest.c:2291: Test succeeded inside todo block: Got dwOutFlags=00000100 vartest.c:2293: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2300: Test failed: Digit[1], expected 2, got 255
=== debiant2 (32 bit Hindi:India report) ===
oleaut32: vartest.c:2263: Test succeeded inside todo block: returned 00000000 vartest.c:2263: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2263: Test succeeded inside todo block: Expected dwInFlags = 0x1100, got 0x1100 vartest.c:2263: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2263: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2263: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2263: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2265: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2272: Test failed: Digit[1], expected 2, got 255 vartest.c:2276: Test succeeded inside todo block: returned 00000000 vartest.c:2276: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2276: Test succeeded inside todo block: Expected dwInFlags = 0x1500, got 0x1500 vartest.c:2276: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2276: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2276: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2276: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2278: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2285: Test failed: Digit[1], expected 2, got 255 vartest.c:2291: Test succeeded inside todo block: Got dwOutFlags=00000100 vartest.c:2293: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2300: Test failed: Digit[1], expected 2, got 255
=== debiant2 (32 bit Japanese:Japan report) ===
oleaut32: vartest.c:2263: Test succeeded inside todo block: returned 00000000 vartest.c:2263: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2263: Test succeeded inside todo block: Expected dwInFlags = 0x1100, got 0x1100 vartest.c:2263: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2263: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2263: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2263: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2265: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2272: Test failed: Digit[1], expected 2, got 255 vartest.c:2276: Test succeeded inside todo block: returned 00000000 vartest.c:2276: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2276: Test succeeded inside todo block: Expected dwInFlags = 0x1500, got 0x1500 vartest.c:2276: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2276: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2276: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2276: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2278: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2285: Test failed: Digit[1], expected 2, got 255 vartest.c:2291: Test succeeded inside todo block: Got dwOutFlags=00000100 vartest.c:2293: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2300: Test failed: Digit[1], expected 2, got 255
=== debiant2 (32 bit Chinese:China report) ===
oleaut32: vartest.c:2263: Test succeeded inside todo block: returned 00000000 vartest.c:2263: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2263: Test succeeded inside todo block: Expected dwInFlags = 0x1100, got 0x1100 vartest.c:2263: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2263: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2263: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2263: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2265: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2272: Test failed: Digit[1], expected 2, got 255 vartest.c:2276: Test succeeded inside todo block: returned 00000000 vartest.c:2276: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2276: Test succeeded inside todo block: Expected dwInFlags = 0x1500, got 0x1500 vartest.c:2276: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2276: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2276: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2276: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2278: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2285: Test failed: Digit[1], expected 2, got 255 vartest.c:2291: Test succeeded inside todo block: Got dwOutFlags=00000100 vartest.c:2293: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2300: Test failed: Digit[1], expected 2, got 255
=== debiant2 (32 bit WoW report) ===
oleaut32: vartest.c:2189: Test succeeded inside todo block: returned 00000000 vartest.c:2189: Test succeeded inside todo block: Expected cDig = 1, got 1 vartest.c:2189: Test succeeded inside todo block: Expected dwInFlags = 0x600, got 0x600 vartest.c:2189: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2190: Test succeeded inside todo block: Digit[0], expected 1, got 1 vartest.c:2263: Test succeeded inside todo block: returned 00000000 vartest.c:2263: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2263: Test succeeded inside todo block: Expected dwInFlags = 0x1100, got 0x1100 vartest.c:2263: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2263: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2263: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2263: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2265: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2272: Test failed: Digit[1], expected 2, got 255 vartest.c:2276: Test succeeded inside todo block: returned 00000000 vartest.c:2276: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2276: Test succeeded inside todo block: Expected dwInFlags = 0x1500, got 0x1500 vartest.c:2276: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2276: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2276: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2276: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2278: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2285: Test failed: Digit[1], expected 2, got 255 vartest.c:2291: Test succeeded inside todo block: Got dwOutFlags=00000100 vartest.c:2293: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2300: Test failed: Digit[1], expected 2, got 255
=== debiant2 (64 bit WoW report) ===
oleaut32: vartest.c:2189: Test succeeded inside todo block: returned 00000000 vartest.c:2189: Test succeeded inside todo block: Expected cDig = 1, got 1 vartest.c:2189: Test succeeded inside todo block: Expected dwInFlags = 0x600, got 0x600 vartest.c:2189: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2190: Test succeeded inside todo block: Digit[0], expected 1, got 1 vartest.c:2263: Test succeeded inside todo block: returned 00000000 vartest.c:2263: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2263: Test succeeded inside todo block: Expected dwInFlags = 0x1100, got 0x1100 vartest.c:2263: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2263: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2263: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2263: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2265: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2272: Test failed: Digit[1], expected 2, got 255 vartest.c:2276: Test succeeded inside todo block: returned 00000000 vartest.c:2276: Test succeeded inside todo block: Expected cDig = 2, got 2 vartest.c:2276: Test succeeded inside todo block: Expected dwInFlags = 0x1500, got 0x1500 vartest.c:2276: Test succeeded inside todo block: Expected dwOutFlags = 0x100, got 0x100 vartest.c:2276: Test succeeded inside todo block: Expected cchUsed = 3, got 3 vartest.c:2276: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2276: Test succeeded inside todo block: Expected nPwr10 = -1, got -1 vartest.c:2278: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2285: Test failed: Digit[1], expected 2, got 255 vartest.c:2291: Test succeeded inside todo block: Got dwOutFlags=00000100 vartest.c:2293: Test succeeded inside todo block: Digit[1], expected 2, got 2 vartest.c:2300: Test failed: Digit[1], expected 2, got 255
On Fri, 23 Jul 2021, Marvin wrote: [...]
=== w2008s64 (32 bit report) ===
oleaut32: vartest.c:2234: Test failed: 1: Call succeeded, hres = 00000000
That works in a French locale but not in the English one. I will resubmit.
=== debiant2 (32 bit report) ===
oleaut32: vartest.c:2189: Test succeeded inside todo block: returned 00000000 vartest.c:2189: Test succeeded inside todo block: Expected cDig = 1, got 1 vartest.c:2189: Test succeeded inside todo block: Expected dwInFlags = 0x600, got 0x600 vartest.c:2189: Test succeeded inside todo block: Expected nBaseShift = 0, got 0 vartest.c:2190: Test succeeded inside todo block: Digit[0], expected 1, got 1
[...]
Same here.