4
#include <winpr/pipe.h>
5
#include <winpr/tchar.h>
6
#include <winpr/winpr.h>
10
int TestPipeCreatePipe(int argc, char* argv[])
17
BYTE readBuffer[BUFFER_SIZE];
18
BYTE writeBuffer[BUFFER_SIZE];
20
status = CreatePipe(&hReadPipe, &hWritePipe, NULL, BUFFER_SIZE * 2);
24
_tprintf(_T("CreatePipe failed\n"));
28
FillMemory(writeBuffer, sizeof(writeBuffer), 0xAA);
29
status = WriteFile(hWritePipe, &writeBuffer, sizeof(writeBuffer), &dwWrite, NULL);
33
_tprintf(_T("WriteFile failed\n"));
37
if (dwWrite != sizeof(writeBuffer))
39
_tprintf(_T("WriteFile: unexpected number of bytes written: Actual: %ld, Expected: %ld\n"),
40
dwWrite, (long int)sizeof(writeBuffer));
44
ZeroMemory(readBuffer, sizeof(readBuffer));
45
status = ReadFile(hReadPipe, &readBuffer, sizeof(readBuffer), &dwRead, NULL);
49
_tprintf(_T("ReadFile failed\n"));
53
if (dwRead != sizeof(readBuffer))
55
_tprintf(_T("ReadFile: unexpected number of bytes read: Actual: %ld, Expected: %ld\n"),
56
dwWrite, (long int)sizeof(readBuffer));
60
if (memcmp(readBuffer, writeBuffer, BUFFER_SIZE) != 0)
62
_tprintf(_T("ReadFile: read buffer is different from write buffer\n"));
66
CloseHandle(hReadPipe);
67
CloseHandle(hWritePipe);