Reject wildcards in directory names
hans at it.vu.nl
Mon Nov 17 11:22:37 CST 2003
On Monday 17 November 2003 16:34, Paul Millar wrote:
> Which conformance tests fail currently? I don't see any problems with the
> kernel DLL tests right at the moment, which is somewhat disconcerting.
These are the errors I got before my patch:
directory.c:199: Test failed: CreateDirectoryA with ? wildcard name should fail, ret= True error=183
directory.c:206: Test failed: CreateDirectoryA with * wildcard name should fail, ret= True error=183
directory.c:262: Test failed: CreateDirectoryW with ? wildcard name should fail with error 183, ret= True error=183
directory.c:269: Test failed: CreateDirectoryW with * wildcard name should fail with error 183, ret= True error=183
directory.c:292: Test failed: RemoveDirectoryA with ? wildcard name should fail with error 183, ret=False error=2
directory.c:298: Test failed: RemoveDirectoryA with * wildcard name should fail with error 183, ret=False error=2
directory.c:322: Test failed: RemoveDirectoryW with wildcard should fail with error 183, ret=False error=2
directory.c:328: Test failed: RemoveDirectoryW with * wildcard name should fail with error 183, ret=False error=2
But there are more kernel tests that fail for me. It depends on a lot of factors
which and how many I see. I have contrasted the following combinations of
compiler platform and target platform: gcc compiled test on Wine1 and Wine2,
MingW cross-compiled tests on Wine1 and Wine2, and MingW cross-compiled
test on Win2k. Wine1 is cvs Wine with a wineinstall:ed Windows installation,
Wine2 is cvs Wine plus a CXOffice Windows tree. Unfortunately there can be
a lot of reasons tests fail (some might not even run or crash):
1. The test is simply incorrect (e.g. it fails on Windows). My other patch to the
kernel path conformance test illustrates this.
2. The compiler and link libraries may cause differring results. For example, I get this error
with a MinGW compiled kernel test:
generated.c:542: Test failed: TYPE_ALIGNMENT(*(LPWIN32_STREAM_ID)0) == 8 (expected 4)
This is because gcc doesn't align doubles (the LPWIN32_STREAM_ID structure contains
a LARGE_INTEGER, which is typedef:ed long long in the Wine headers. MinGW defaults
to -malign-doubles, hence the difference. I have to check what MSVC does here.
I also had problems with the comctl tests that would link with MinGW but not run. This
appeared to be due to faulty MinGW import libs.
3. The test may crash. For example, the shlwapi string test crashed on CXOffice and Win2k.
Older versions of MS shlwapi (I tested 5.00.2920.0000 and 5.50.4134.600) had a bug
in StrChrA which causes the crash. Resolution: update shlwapi. I found that in a newer
version I have (6.0.2800.1226) this bug doesn't exist anymore
4. Hangs. Some tests like the kernel pipe and kernel process tests appear to have races. They
may or may not hang depending on system load and other factors.
5. Tests may fail because Wine doesn't implement some functionality yet or implements it incorrectly.
This is the normal case ;-) Sometimes inserting 'todo_wine' before a test is appropriate when it's
certain that it takes a long time before Wine implements some missing functionality.
More information about the wine-devel