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.