The added test points out a regression since b0ab1b76029eaface724a28483fe8b0ea36029dc, which is noticed when running MSVC 2010 in wine.
Signed-off-by: Martin Storsjo martin@martin.st --- dlls/msvcrt/tests/file.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+)
diff --git a/dlls/msvcrt/tests/file.c b/dlls/msvcrt/tests/file.c index ecf99e38b0e..9ad91b578f5 100644 --- a/dlls/msvcrt/tests/file.c +++ b/dlls/msvcrt/tests/file.c @@ -1039,6 +1039,37 @@ static void test_fgetwc_unicode(void) ch = fgetwc(tempfh); ok(ch == WEOF, "got %04hx, expected WEOF (unicode)\n", ch); fclose(tempfh); + + // Test missing bom + tempfh = fopen(tempfile, "wb"); + ok(tempfh != NULL, "can't open tempfile\n"); + fwrite("1234", 1, 4, tempfh); + fclose(tempfh); + + tempfh = fopen(tempfile, "rt, ccs=UTF-8"); + ok(tempfh != NULL, "can't open tempfile\n"); + for (i = 0; i < 4; i++) + { + ch = fgetwc(tempfh); + ok(ch == '1' + i, + "got %04hx, expected %04x\n", ch, '1' + i); + } + ch = fgetwc(tempfh); + ok(ch == WEOF, "got %04hx, expected WEOF (utf8)\n", ch); + fclose(tempfh); + + tempfh = fopen(tempfile, "rt, ccs=utf-16le"); + ok(tempfh != NULL, "can't open tempfile\n"); + for (i = 0; i < 4; i++) + { + ch = fgetwc(tempfh); + todo_wine ok(ch == '1' + i, + "got %04hx, expected %04x\n", ch, '1' + i); + } + ch = fgetwc(tempfh); + ok(ch == WEOF, "got %04hx, expected WEOF (utf8)\n", ch); + fclose(tempfh); + unlink(temppath); }
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=84572
Your paranoid android.
=== w2008s64 (32 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w7u_2qxl (32 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w7u_adm (32 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w7u_el (32 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w8 (32 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w8adm (32 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w864 (32 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w1064v1507 (32 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w1064v1809 (32 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w1064 (32 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w10pro64 (32 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== wvistau64 (64 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w2008s64 (64 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w864 (64 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w1064v1507 (64 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w1064v1809 (64 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w1064 (64 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w1064_2qxl (64 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w10pro64 (64 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w10pro64_ar (64 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w10pro64_he (64 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w10pro64_ja (64 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
=== w10pro64_zh_CN (64 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
On Tue, 26 Jan 2021, Marvin wrote:
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=84572
Your paranoid android.
=== w2008s64 (32 bit report) ===
msvcrt: file.c:1066: Test failed: got 3231, expected 0031 file.c:1066: Test failed: got 3433, expected 0032 file.c:1066: Test failed: got ffff, expected 0033 file.c:1066: Test failed: got ffff, expected 0034
Sorry, disregard this patch, I had somehow botched testing it on real windows.
// Martin