Hi Ričardas,
> + key = 0xdeadbeef;
> + num_bytes = 0xdeadbeef;
> + olp = (WSAOVERLAPPED *)0xdeadbeef;
> + bret = GetQueuedCompletionStatus( io_port, &num_bytes, &key, &olp, 100 );
> + todo_wine ok( bret == FALSE && GetLastError() == ERROR_NETNAME_DELETED, "failed to get completion status %u\n", GetLastError() );
For tests like this you should set last error to some known value before
calling the function. And it would be better to split them up; one test
for the return value and one for the error.
> + key = 0xdeadbeef;
> + num_bytes = 0xdeadbeef;
> + olp = (WSAOVERLAPPED *)0xdeadbeef;
> + bret = GetQueuedCompletionStatus( io_port, &num_bytes, &key, &olp, 100 );
> + todo_wine ok(bret == FALSE && GetLastError() == ERROR_OPERATION_ABORTED, "failed to get completion status %u\n", GetLastError() );
> + todo_wine ok(key == 125, "Key is %lu\n", key);
> + todo_wine ok(num_bytes == 0, "Number of bytes transfered is %u\n", num_bytes);
> + todo_wine ok(olp == &ov, "Overlaped structure is at %p\n", olp);
> + todo_wine ok(olp && (olp->Internal == (ULONG)STATUS_CANCELLED), "Internal status is %lx\n", olp ? olp->Internal : 0);
You may want to call GetQueuedCompletionStatus again here to show that
this was the last completion.