Пример #1
0
void TestBoundedBuffer::TestReadBuffer()
{
    BoundedBuffer buf (NULL, 10);
	buf.WriteStringAt(0, _T("abc"), 3);
	BoundedBuffer newbuf(buf.ReadBufferAt(0, 3));
	assertMessage(newbuf.m_iMaxSize == 3, _T("Failed to read the buffer"));
	assertMessage(newbuf.ReadStringAt(0, 3) == _T("abc"), _T("Failed to read the buffer"));
}
Пример #2
0
void TestBoundedBuffer::TestResizeBuffer()
{
	BoundedBuffer buf (NULL, 10);
	buf.WriteStringAt(0, _T("abcdefghij"), 10);
	buf.ResizeBuffer(5);
	assertMessage(buf.m_iMaxSize == 5, _T("Resize failed"));
	assertMessage(buf.ReadStringAt(0, 5) == _T("abcde"), _T("Buffer contents should not be lost after resize"));

	buf.ResizeBuffer(15);
	assertMessage(buf.m_iMaxSize == 15, _T("Resize failed"));
	assertMessage(buf.ReadStringAt(0, 5) == _T("abcde"), _T("Buffer contents should not be lost after resize"));
	for(int i = 5; i < 15; ++i)
	{
		assertMessage(buf.ReadCharAt(i) == 0, _T("Failed to null out the new bytes"));
	}
}
Пример #3
0
void TestBoundedBuffer::TestWriteBuffer()
{
	unsigned char MasterBuf [100];
	unsigned char NotMasterBuf [200];

    BoundedBuffer master (MasterBuf, 100);
	BoundedBuffer smaller (NotMasterBuf, 50);
	BoundedBuffer bigger (NotMasterBuf, 200);

	master.ClearBuffer();
	smaller.ClearBuffer();
	smaller.WriteStringAt(0, _T("Hello Smaller"), 13);

	master.WriteBufferAt(0, smaller);
	assertMessage(CStdString((char*)(master.m_pBuf)) == _T("Hello Smaller"), _T("Failed to write the buffer"));
	assertThrows(master.WriteBufferAt(0, bigger), Workshare::Exception);
	assertMessage(CStdString((char*)(master.m_pBuf)) == _T("Hello Smaller"), _T("The buffer should throw without changing state if the incomming buffer is too large"));
}