winetest can't parse subtest for msvcrt(d)

Saulius Krasuckas saulius2 at ar.fi.lt
Wed Aug 18 10:40:13 CDT 2004


On linuxe I get this:

[s2 at katleriai s2]$ wine /usr/local/lib/wine/winetest.exe.so
Usage: /tmp/wctW5ad4P/msvcrt_test.exe.so test_name

Valid test names:
    cpp
    environ
    file
    headers
    heap
    scanf
    string
    time


..while Wine Test Shell pops up a message box with the error text: 

"Can't parse subtests output of msvcrt".

I think that's due to some additional \r\n-s in the output of
"msvcrt_test.exe.so".  Here goes my observation and comparision to the
case of "mlang_test.exe.so" (which works smoothly with the winetest):

[s2 at katleriai tests]$ wine msvcrt_test.exe.so | head -n 1 | od -t x1
0000000 55 73 61 67 65 3a 20 6d 73 76 63 72 74 5f 74 65
0000020 73 74 2e 65 78 65 2e 73 6f 20 74 65 73 74 5f 6e
0000040 61 6d 65 0d 0a
0000045

[s2 at katleriai tests]$ wine mlang_test.exe.so | head -n 1 | od -t x1
0000000 55 73 61 67 65 3a 20 6d 6c 61 6e 67 5f 74 65 73
0000020 74 2e 65 78 65 2e 73 6f 20 74 65 73 74 5f 6e 61
0000040 6d 65 0a
0000043

As the "Valid test names:" string is printed by calling fprintf(), I 
suppose some differences arise due to incorrect linkage or such:

[s2 at katleriai tests]$ nm msvcrt_test.exe.so | grep fprintf
0001e100 D fprintf
0001e180 D vfprintf

[s2 at katleriai tests]$ nm mlang_test.exe.so | grep fprintf
         U fprintf@@GLIBC_2.0
         U vfprintf@@GLIBC_2.0


It seems we realy are using msvcrt version of the fprintf(), which works
in true-M$-way and adds an additional \r here.  Next goes last lines from
the build process:

[s2 at katleriai tests]$ (make clean && make) | tail -n 1
../../../tools/winegcc/winegcc -B../../../tools/winebuild -mconsole cpp.o environ.o file.o headers.o heap.o scanf.o string.o time.o testlist.o  -o msvcrt_test.exe.so -L../../../libs/port -lwine_port -L../../../dlls -L../../../libs -lmsvcrt   

[s2 at katleriai tests]$ (make clean && make) | tail -n 1
../../../tools/winegcc/winegcc -B../../../tools/winebuild -mconsole mlang.o testlist.o  -o mlang_test.exe.so -L../../../libs/port -lwine_port -L../../../dlls -L../../../libs -lole32 -lgdi32 -lkernel32 -lntdll -luuid  


Can we fix it?  I have no idea on how to link it right with the GLIBC.  
Of course, I am not sure this is the core of the problem.  It would be
nice to have winetest running in linux without such two hits (one for the
msvcrt and another one for the msvcrtd).

Or is this just my linux box configuration flawed?




More information about the wine-devel mailing list