Dan Kegel wrote:
I pulled down sources from CVS this morning, and tried running the regression tests. There are about 150 failures. $ grep "Test failed" log | sed 's/:.*//' | uniq -c | sort 1 filtergraph.c 1 rsaenh.c 1 shelllink.c 1 shreg.c 2 typelib.c 4 capture.c 4 wave.c 6 dsound8.c 6 dsound.c 7 vartype.c 8 path.c 15 crypt.c 43 metafile.c 51 shellpath.c
Thanks to suggestions from Dmitry Timoshkov, Michael Jung, and Michael Stefaniuc, I'm down to only 66 or so unexplained failures now. I also discovered a bug in GetTempFileName. Details:
I rebooted into single-processor mode out of paranoia, wiped my .wine directory, and reran. Here's the new summary:
2 typelib.c 397 path.c 43 metafile.c 45 shellpath.c 4 capture.c 4 wave.c 6 dsound8.c 7 vartype.c So that fixed the dsound, filtergraph, rsaenh, shelllink, shreg, and crypt problems (guess stale registries are pretty dangerous; we do seem to need versioning...).
The typelib failures are, according to the test failure message, due to the lack of a copy of stdole32.tlb.
The metafile failures were all due to having no TrueType fonts installed. Downloading and running http://prdownloads.sourceforge.net/corefonts/courie32.exe fixed them.
The path failures are all due to t: not existing; when I create it by hand, those 397 errors go away. It sounds very much like the startup code that creates c: and z: needs to also create a t: drive!
I'll look at the rest of the failures later. I did notice a new bug, though: GetTempFileName doesn't fail if T: doesn't exist! Here's the evidence:
The first reported error in path is path.c:355: Test failed: Couldn't delete the temporary file we just created but, looking at the output of +all, I see the real first problem is not caught: 0009: create_file( access=40000000, inherit=0, sharing=00000000, create=2, options=00000050, attrs=00000080, filename="/home/dank/.wine/dosdevices/t:/pat4e0.tmp" ) 0009: create_file() = NO_SUCH_FILE { handle=(nil) } 0009:trace:heap:RtlFreeHeap (0x401f0000,00000002,40200bd8): returning TRUE 0009:Ret ntdll.NtCreateFile() retval=c000000f ret=40356581 0009:warn:file:CreateFileW Unable to create file L"T:\pat4e0.tmp" (status c000000f) 0009:Call ntdll.RtlNtStatusToDosError(c000000f) ret=403565f5 0009:Ret ntdll.RtlNtStatusToDosError() retval=00000002 ret=403565f5 0009:Call ntdll.RtlFreeUnicodeString(407af548) ret=4035660d 0009:trace:heap:RtlFreeHeap (0x401f0000,00000002,40200ba0): returning TRUE 0009:Ret ntdll.RtlFreeUnicodeString() retval=00000001 ret=4035660d 0009:trace:file:CreateFileW returning 0xffffffff 0009:trace:file:GetTempFileNameW returning L"T:\pat4e0.tmp"
- Dan