http://bugs.winehq.org/show_bug.cgi?id=23095
Summary: The win_skip()s in msvcrt/tests/printf.c are broken on Win95/98 and NT4 Product: Wine Version: 1.1.43 Platform: x86 URL: http://source.winehq.org/git/wine.git/?a=blob;f=dlls/m svcrt/tests/printf.c;hb=HEAD OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: msvcrt AssignedTo: wine-bugs@winehq.org ReportedBy: alexander.scott.johns+winebug@googlemail.com
In commit b205fd8108eca2fd29705875e53ed852f56a6b6d, I added some win_skips to the tests in msvcrt/tests/printf.c. The really strange thing is that on Win95/98 and NT4, the win_skips fail, as though they are not running on Windows:
printf.c:926: Test failed: _vscprintf not available printf.c:931: Test failed: _vscwprintf not available printf.c:936: Test failed: _vsnwprintf_s not available printf: 357 tests executed (0 marked as todo, 3 failures), 0 skipped.
This bug only affects printf.c. It doesn't affect any of the other files in msvcrt/tests which use win_skip.
It didn't occur when I submitted the patch as a WineTestBot job, only when run as part of winetest.exe.
I don't know what is causing it, so I'm filing a bug.
Random notes:
* The only machines affected all use version 6.0.8797.0 of msvcrt.dll.
* printf.c is the only msvcrt test which uses _CRT_NON_CONFORMING_SWPRINTFS (but the tests are compiled with mingw and Wine headers (I think) so this shouldn't have any effect).
* printf.c is the only msvcrt test which uses __ms_va_list and co. (but this should have any affect either)
* wine-devel message: http://www.winehq.org/pipermail/wine-devel/2010-June/084142.html
http://bugs.winehq.org/show_bug.cgi?id=23095
Alexander Scott-Johns alexander.scott.johns+winebug@googlemail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, source Severity|normal |minor
http://bugs.winehq.org/show_bug.cgi?id=23095
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|msvcrt |testcases
http://bugs.winehq.org/show_bug.cgi?id=23095
Paul Vriens Paul.Vriens.Wine@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |Paul.Vriens.Wine@gmail.com
--- Comment #1 from Paul Vriens Paul.Vriens.Wine@gmail.com 2010-06-10 11:28:06 --- Did you try running "winetest.exe mscvrt:file" on a Windows box and see what the results are (default output is somewhere in your %TMP% directory) ?
http://bugs.winehq.org/show_bug.cgi?id=23095
--- Comment #2 from Paul Vriens Paul.Vriens.Wine@gmail.com 2010-06-10 12:04:53 --- Let me answer my own question:
C:\wct>msvcrt_test.exe printf printf.c:844: Tests skipped: _vscprintf not available printf.c:871: Tests skipped: _vscwprintf not available printf.c:902: Tests skipped: _vsnwprintf_s not available printf: 354 tests executed (0 marked as todo, 0 failures), 3 skipped.
C:\wct>d:\winetest.exe msvcrt:printf -o res C:\wct>type res .... .... Test output: msvcrt:printf start dlls/msvcrt/tests/printf.c - printf.c:844: Test failed: _vscprintf not available printf.c:871: Test failed: _vscwprintf not available printf.c:902: Test failed: _vsnwprintf_s not available printf: 357 tests executed (0 marked as todo, 3 failures), 0 skipped. msvcrt:printf done (3)
http://bugs.winehq.org/show_bug.cgi?id=23095
--- Comment #3 from Alexander Scott-Johns alexander.scott.johns+winebug@googlemail.com 2010-06-10 14:01:44 --- (In reply to comment #1)
Did you try running "winetest.exe mscvrt:file" on a Windows box and see what the results are (default output is somewhere in your %TMP% directory) ?
I have Windows 95 installed in a VM, but for some reason it doesn't recognise mounted floppy disk images (it did before; not sure what broke). Is there another way to get data into a VM image in VirtualBox? I don't want to reinstall it as stock Win95 doesn't even come with msvcrt.dll.
Also, how do you build winetest.exe or msvcrt_test.exe? In programs/winetest, "make winetest.exe" produces a shell script. In dlls/msvcrt/tests, "make crosstest" fails to link ("cannot find -lwinecrt0").
(In reply to comment #2)
Let me answer my own question:
C:\wct>msvcrt_test.exe printf printf.c:844: Tests skipped: _vscprintf not available printf.c:871: Tests skipped: _vscwprintf not available printf.c:902: Tests skipped: _vsnwprintf_s not available printf: 354 tests executed (0 marked as todo, 0 failures), 3 skipped.
C:\wct>d:\winetest.exe msvcrt:printf -o res C:\wct>type res .... .... Test output: msvcrt:printf start dlls/msvcrt/tests/printf.c - printf.c:844: Test failed: _vscprintf not available printf.c:871: Test failed: _vscwprintf not available printf.c:902: Test failed: _vsnwprintf_s not available printf: 357 tests executed (0 marked as todo, 3 failures), 0 skipped. msvcrt:printf done (3)
Why do these behave differently? Doesn't the latter just extract msvcrt_test.exe and run the former?
http://bugs.winehq.org/show_bug.cgi?id=23095
--- Comment #4 from Paul Vriens Paul.Vriens.Wine@gmail.com 2010-06-10 15:11:23 --- (In reply to comment #3)
Also, how do you build winetest.exe or msvcrt_test.exe? In programs/winetest, "make winetest.exe" produces a shell script. In dlls/msvcrt/tests, "make crosstest" fails to link ("cannot find -lwinecrt0").
I used the winetest.exe from test.winehq.org. You can extract the tests by doing 'winetest.exe -x'.
I do however compile my own winetest.exe (see also http://wiki.winehq.org/CompilingDLLsUsingMingw)
Why do these behave differently? Doesn't the latter just extract msvcrt_test.exe and run the former?
Yes, but I guess in a different context (subprocess and such).
I did find the culprit though. If I comment out the _ecvt test loop in test_xcvt(), I get the expected "Tests skipped" in both case (single exe and via winetest.exe).
No idea how to fix that yet. Will try and see if I can find the offending single test(s).
http://bugs.winehq.org/show_bug.cgi?id=23095
--- Comment #5 from Paul Vriens Paul.Vriens.Wine@gmail.com 2010-06-10 15:26:11 --- Created an attachment (id=28722) --> (http://bugs.winehq.org/attachment.cgi?id=28722) Diff showing the problematic tests for _evct
The attached diff shows which test messes up the printf test output on win9x and NT4. Removing this single test indeed gives me back the expected "Tests skipped" instead of "Tests failed".
http://bugs.winehq.org/show_bug.cgi?id=23095
--- Comment #6 from Sven septim.dt@gmail.com 2010-07-19 19:46:33 --- Fixed by http://source.winehq.org/git/wine.git/?a=commit;h=913c91fd470f08342f2c07bbae...
http://bugs.winehq.org/show_bug.cgi?id=23095
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #7 from Austin English austinenglish@gmail.com 2010-07-19 22:01:57 --- Fixed.
http://bugs.winehq.org/show_bug.cgi?id=23095
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org 2010-07-30 12:58:03 --- Closing bugs fixed in 1.3.0.