fix race conditions, tests and some invalid return values
authorNorbert Federa <norbert.federa@thincast.com>
Wed, 1 Jun 2016 14:26:26 +0000 (16:26 +0200)
committerNorbert Federa <norbert.federa@thincast.com>
Wed, 1 Jun 2016 14:26:26 +0000 (16:26 +0200)
commite718fb324b4e6966d83d33eafb26d343b03ed5dc
treea466d8fc2336f5418297867401a752b4f3d73344
parent42d2b69de355b3e72c8d3c0ed8af81f96b724e6f
fix race conditions, tests and some invalid return values

Since the current winpr implementation for overlapped operations is
incomplete and buggy, all affected functions will now fail if they are
called with a set FILE_FLAG_OVERLAPPED flag or a non-null pointer to
a OVERLAPPED structure.

winpr/nt:
- use proper one-time initialization on win32
- fix TestNtCreateFile
- fix broken/incomplete _RtlAnsiStringToUnicodeString
- unimplemented functions return appropriate error codes

winpr/pipe:
- improved TestPipeCreateNamedPipe
- rewrite the completely broken TestPipeCreateNamedPipeOverlapped test

rdtk:
- improve test and don't blindly return success

winpr/synch:
- fix race condition in TestSynchTimerQueue

winpr/ssspi:
- fix TestEnumerateSecurityPackages printf output
- fix TestQuerySecurityPackageInfo printf output

winpr/environment:
- fix GetEnvironmentStrings printf output

winpr/comm:
- unimplemented functions return appropriate error codes

winpr/io:
- unimplemented functions return appropriate error codes

winpr/thread:
- implement SwitchToThread() via sched_yield()
17 files changed:
rdtk/librdtk/test/TestRdTkNinePatch.c
winpr/libwinpr/comm/comm.c
winpr/libwinpr/comm/comm_ioctl.c
winpr/libwinpr/environment/test/TestEnvironmentGetEnvironmentStrings.c
winpr/libwinpr/file/file.c
winpr/libwinpr/file/namedPipeClient.c
winpr/libwinpr/io/io.c
winpr/libwinpr/nt/nt.c
winpr/libwinpr/nt/test/TestNtCreateFile.c
winpr/libwinpr/pipe/pipe.c
winpr/libwinpr/pipe/test/TestPipeCreateNamedPipe.c
winpr/libwinpr/pipe/test/TestPipeCreateNamedPipeOverlapped.c
winpr/libwinpr/sspi/test/TestEnumerateSecurityPackages.c
winpr/libwinpr/sspi/test/TestQuerySecurityPackageInfo.c
winpr/libwinpr/synch/test/TestSynchTimerQueue.c
winpr/libwinpr/synch/wait.c
winpr/libwinpr/thread/thread.c