handles as wineserver handles
- console input handle object is no longer waitable (input record
synchronisation is now implemented as a simple semaphore), and removed
FD_TYPE_CONSOLE from fd types in wineserver
- console handles now always have their two lower bit set so one can
distinguish a console handle from a kernel object handle
- implemented some undocumented kernel32 console related APIs
(CloseConsoleHandle, GetConsoleInputWaitHandle, OpenConsoleW,
VerifyConsoleIoHandle, DuplicateConsoleHandle)
- allowed a few kernel32 APIs to take console pseudo-handles
(FlushFileBuffer, GetFileType, WaitFor*Object*)
- simplified the console inheritance at process creation
- in console tests, no longer create a console if one already exists
Remove the DISCARD_DEFINED #ifdefs.
Remove another double HeapFree (caused an assert when run on NT4),
and a HeapSize on a freed heap (the test failed on Win9x).
Fix the LocalLock/LocalUnlock tests (the memory must be allocated
with LMEM_MOVEABLE otherwise the tests don't make sense).
Remove many unnecessary casts.
Improved error reporting somewhat.
much as possible in the buffer even if it is too small. This is
undocumented and does not match the Win9x behavior.
Skip Unicode tests on Win9x.
Fix usage of memset/sizeof/COUNTOF.
Fix signed/unsigned warnings (in MSVC) by using lstrlenA instead of
strlen.
Test Get{System,Windows}Directory{A,W}(NULL, 0). This is a more
standard way to get len_with_null too.
Adapt the error code checks to take into account variations between
Win9x and NT.
Adapt the DeleteFileA error code checks to take into account variations
between Win9x and NT.
Test DeleteFile(NULL).
Add tests for DeleteFileW.
On NT, calling _lclose on an already closed handle will cause memory
corruption and thus sometimes crash -> removed the relevant test.
Skip the Unicode tests when on Win9x.
GetShortPathNameA behaves differently on Win9x and NT: on NT it
succeeds even if not all path components exist, as long as they are
already in the 8.3 format.
Wine apparently implements the NT behavior thus many todo_wine went
away.
Fixed some error code checks to take into account all possible return
values.
GetTempFileNameA appears to only use the lower 16bits of the id on
Win95 (and never returns more than 16 bits on other platforms).
GetLongPathNameA is missing on some Windows versions.
Modified the GetTempPath tests to make sure they return the expected
value. Removed the redundant tests (e.g. if buf[0]==0 then buf!="foo",
no need to test both).
The 'len_with_null - 1' case is not testable as the Windows behavior
varies too much between versions.
We cannot check whether Windows touches the buffer either as this
heavily depends on the Windows version and specific circumstances of
the call.
Finally NT4 sometimes exaggerates the required buffer size.
on Win95 -> use GetProcAddress.
Cleanup the handling of OpenThread.
Check SuspendThread after a thread terminates (needed by Ipix).
Remove unnecessary version checks (check for
ERROR_CALL_NOT_IMPLEMENTED and similar instead).
Cleanup casts, signed/unsigned comparisons.
GetDiskFreeSpace("." | "..") fails on Win98 and NT4 but succeeds on XP
-> removed.
Skip the GetDiskFreeSpace tests on floppy drives because NT pops up a
MessageBox if no floppy is present.
Fix the error code checks to take into account the differences between
Win9x, NT4 and XP.
Skip the unicode tests if the first call returns
ERROR_CALL_NOT_IMPLEMENTED.
Whenever a test fails, print sufficient information (typically return
code and GetLastError()!) to let the developer figure out what is
wrong.
SetEnvironmentVariableA("", value) crashes on NT4 -> removed.
The behavior of SetEnvironmentVariableA("", "") varies to much ->
removed.
Test the behavior of SetEnvironmentVariable{A,W}(name, "") taking into
account the differences between Win9x and NT.
Test the behavior of GetEnvironmentVariable{A,W}(name, buf, 0).
Fix the error code checks to take into account the differences between
Win9x, NT4 and XP.
Skip the unicode tests if the first call returns
ERROR_CALL_NOT_IMPLEMENTED.
Whenever a test fails, print sufficient information (typically return
code and GetLastError()!) to let the developer figure out what is
wrong.