Blame winpr/libwinpr/pipe/test/TestPipeCreatePipe.c

Packit Service fa4841
Packit Service fa4841
#include <stdio.h>
Packit Service fa4841
#include <winpr/crt.h>
Packit Service fa4841
#include <winpr/pipe.h>
Packit Service fa4841
#include <winpr/tchar.h>
Packit Service fa4841
#include <winpr/winpr.h>
Packit Service fa4841
Packit Service bb5c11
#define BUFFER_SIZE	16
Packit Service fa4841
Packit Service fa4841
int TestPipeCreatePipe(int argc, char* argv[])
Packit Service fa4841
{
Packit Service fa4841
	BOOL status;
Packit Service fa4841
	DWORD dwRead;
Packit Service fa4841
	DWORD dwWrite;
Packit Service fa4841
	HANDLE hReadPipe;
Packit Service fa4841
	HANDLE hWritePipe;
Packit Service fa4841
	BYTE readBuffer[BUFFER_SIZE];
Packit Service fa4841
	BYTE writeBuffer[BUFFER_SIZE];
Packit Service fa4841
Packit Service fa4841
	status = CreatePipe(&hReadPipe, &hWritePipe, NULL, BUFFER_SIZE * 2);
Packit Service fa4841
Packit Service fa4841
	if (!status)
Packit Service fa4841
	{
Packit Service fa4841
		_tprintf(_T("CreatePipe failed\n"));
Packit Service fa4841
		return -1;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	FillMemory(writeBuffer, sizeof(writeBuffer), 0xAA);
Packit Service fa4841
	status = WriteFile(hWritePipe, &writeBuffer, sizeof(writeBuffer), &dwWrite, NULL);
Packit Service fa4841
Packit Service fa4841
	if (!status)
Packit Service fa4841
	{
Packit Service fa4841
		_tprintf(_T("WriteFile failed\n"));
Packit Service fa4841
		return -1;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	if (dwWrite != sizeof(writeBuffer))
Packit Service fa4841
	{
Packit Service bb5c11
		_tprintf(_T("WriteFile: unexpected number of bytes written: Actual: %")_T(PRIu32)_T(", Expected: %")_T(PRIuz)_T("\n"),
Packit Service bb5c11
			dwWrite, sizeof(writeBuffer));
Packit Service fa4841
		return -1;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	ZeroMemory(readBuffer, sizeof(readBuffer));
Packit Service fa4841
	status = ReadFile(hReadPipe, &readBuffer, sizeof(readBuffer), &dwRead, NULL);
Packit Service fa4841
Packit Service fa4841
	if (!status)
Packit Service fa4841
	{
Packit Service fa4841
		_tprintf(_T("ReadFile failed\n"));
Packit Service fa4841
		return -1;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	if (dwRead != sizeof(readBuffer))
Packit Service fa4841
	{
Packit Service bb5c11
		_tprintf(_T("ReadFile: unexpected number of bytes read: Actual: %")_T(PRIu32)_T(", Expected: %")_T(PRIuz)_T("\n"),
Packit Service bb5c11
			dwWrite, sizeof(readBuffer));
Packit Service fa4841
		return -1;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	if (memcmp(readBuffer, writeBuffer, BUFFER_SIZE) != 0)
Packit Service fa4841
	{
Packit Service fa4841
		_tprintf(_T("ReadFile: read buffer is different from write buffer\n"));
Packit Service fa4841
		return -1;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	CloseHandle(hReadPipe);
Packit Service fa4841
	CloseHandle(hWritePipe);
Packit Service fa4841
Packit Service fa4841
	return 0;
Packit Service fa4841
}