mirror of
https://github.com/winfsp/winfsp.git
synced 2025-06-14 15:52:47 -05:00
tst: lock-test: fix mistake in calling GetOverlappedResult when prior operation has returned error
This commit is contained in:
@ -276,14 +276,20 @@ static void lock_overlapped_dotest(ULONG Flags, PWSTR VolPrefix, PWSTR Prefix, U
|
||||
Success = LockFileEx(Handle, LOCKFILE_EXCLUSIVE_LOCK | LOCKFILE_FAIL_IMMEDIATELY, 0,
|
||||
BytesPerSector, 0, &Overlapped);
|
||||
ASSERT(Success || ERROR_IO_PENDING == GetLastError() || ERROR_LOCK_VIOLATION == GetLastError());
|
||||
Success = GetOverlappedResult(Handle, &Overlapped, &BytesTransferred, TRUE);
|
||||
ASSERT(!Success && ERROR_LOCK_VIOLATION == GetLastError());
|
||||
if (ERROR_LOCK_VIOLATION != GetLastError())
|
||||
{
|
||||
Success = GetOverlappedResult(Handle, &Overlapped, &BytesTransferred, TRUE);
|
||||
ASSERT(!Success && ERROR_LOCK_VIOLATION == GetLastError());
|
||||
}
|
||||
|
||||
Overlapped.Offset = 0;
|
||||
Success = WriteFile(Handle, Buffer[0], BytesPerSector, &BytesTransferred, &Overlapped);
|
||||
ASSERT(Success || ERROR_IO_PENDING == GetLastError() || ERROR_LOCK_VIOLATION == GetLastError());
|
||||
Success = GetOverlappedResult(Handle, &Overlapped, &BytesTransferred, TRUE);
|
||||
ASSERT(!Success && ERROR_LOCK_VIOLATION == GetLastError());
|
||||
if (ERROR_LOCK_VIOLATION != GetLastError())
|
||||
{
|
||||
Success = GetOverlappedResult(Handle, &Overlapped, &BytesTransferred, TRUE);
|
||||
ASSERT(!Success && ERROR_LOCK_VIOLATION == GetLastError());
|
||||
}
|
||||
|
||||
Overlapped.Offset = BytesPerSector / 2;
|
||||
Success = UnlockFileEx(Handle, 0, BytesPerSector, 0, &Overlapped);
|
||||
|
Reference in New Issue
Block a user