9using namespace Microsoft::VisualStudio::CppUnitTestFramework;
16 TEST_CLASS_INITIALIZE (ClassInitialize)
18 Logger::WriteMessage (
"RingBuffer class initialize.\n");
21 TEST_CLASS_CLEANUP (ClassCleanup)
23 Logger::WriteMessage (
"RingBuffer class cleanup.\n");
26 TEST_METHOD_INITIALIZE (MethodInitialize)
28 Logger::WriteMessage (
"RingBuffer method initialize.\n");
31 TEST_METHOD_CLEANUP (MethodCleanup)
33 Logger::WriteMessage (
"RingBuffer method cleanup.\n");
36 TEST_METHOD (RingBufferTest1)
38 const SIZE_T bufferSize = 32;
39 const SIZE_T chunkSize = 6;
44 ret = ringBuffer.
Init (bufferSize);
45 Assert::IsTrue (ret, _T(
"RingBuffer::Init() failed.\n"));
47 BYTE byWriteBuf[chunkSize];
48 BYTE byReadBuf[chunkSize];
50 for (SIZE_T i = 0; i < 24; i++)
52 FillMemory (byWriteBuf,
sizeof (byWriteBuf), (BYTE)(i +
'A'));
54 ret = ringBuffer.
Write (byWriteBuf,
sizeof (byWriteBuf));
55 Assert::IsTrue (ret, _T(
"RingBuffer::Write() failed.\n"));
56 Assert::AreEqual<SIZE_T> (chunkSize, ringBuffer.
Remain (), _T(
"RingBuffer::Remain() invalid size.\n"));
58 ZeroMemory (byReadBuf,
sizeof (byReadBuf));
60 ret = ringBuffer.
Read (byReadBuf,
sizeof (byReadBuf));
61 Assert::IsTrue (ret, _T(
"RingBuffer::Read() failed.\n"));
63 int cmp = memcmp (byWriteBuf, byReadBuf, chunkSize);
64 Assert::AreEqual (0, cmp, _T(
"RingBuffer::Read() not matched write data.\n"));
68 TEST_METHOD (RingBufferTest2)
70 const SIZE_T bufferSize = 64;
71 const SIZE_T chunkSize = 5;
76 ret = ringBuffer.
Init (bufferSize);
77 Assert::IsTrue (ret, _T(
"RingBuffer::Init() failed.\n"));
79 BYTE byWriteBuf[chunkSize];
80 BYTE byReadBuf[chunkSize];
81 BYTE byCheckBuf[chunkSize];
83 for (
int i = 0; i < 24; i++)
85 for (SIZE_T j = 0; j < 5; j++)
87 FillMemory (byWriteBuf,
sizeof (byWriteBuf), (BYTE)(i + j +
'0'));
88 ret = ringBuffer.
Write (byWriteBuf,
sizeof (byWriteBuf));
89 Assert::IsTrue (ret, _T(
"RingBuffer::Write() failed.\n"));
90 Assert::AreEqual<SIZE_T> (chunkSize * (j + 1), ringBuffer.
Remain (), _T(
"RingBuffer::Remain() invalid size.\n"));
93 for (SIZE_T j = 0; j < 5; j++)
95 ZeroMemory (byReadBuf,
sizeof (byReadBuf));
96 FillMemory (byCheckBuf,
sizeof (byCheckBuf), (BYTE)(i + j +
'0'));
97 ret = ringBuffer.
Read (byReadBuf,
sizeof (byReadBuf));
98 Assert::IsTrue (ret, _T(
"RingBuffer::Read() failed.\n"));
99 Assert::AreEqual<SIZE_T> (chunkSize * (5 - (j + 1)), ringBuffer.
Remain (), _T(
"RingBuffer::Remain() invalid size.\n"));
101 int cmp = memcmp (byCheckBuf, byReadBuf, chunkSize);
102 Assert::AreEqual (0, cmp, _T(
"RingBuffer::Read() not matched write data.\n"));
107 TEST_METHOD (RingBufferTest3)
109 const SIZE_T bufferSize = 2048;
110 const SIZE_T chunkSize = 128;
115 ret = ringBuffer.
Init (bufferSize);
116 Assert::IsTrue (ret, _T(
"RingBuffer::Init() failed.\n"));
118 BYTE byBuf[chunkSize];
119 ZeroMemory (byBuf, chunkSize);
121 for (SIZE_T i = 1; i <= 16; i++)
123 ret = ringBuffer.
Write (byBuf, chunkSize), _T (
"not over flow\n");
124 Assert::IsTrue (ret, _T(
"RingBuffer::Write() failed.\n"));
125 Assert::AreEqual<SIZE_T> (chunkSize * i, ringBuffer.
Remain (), _T(
"RingBuffer::Remain() invalid size.\n"));
128 ret = ringBuffer.
Write (byBuf, 1);
129 Assert::IsFalse (ret, _T (
"RingBuffer::Write() over flow\n"));
131 for (SIZE_T i = 1; i <= 16; i++)
133 ret = ringBuffer.
Read (byBuf, chunkSize);
134 Assert::IsTrue (ret, _T(
"RingBuffer::Read() failed.\n"));
135 Assert::AreEqual<SIZE_T> (chunkSize * (16 - i), ringBuffer.
Remain (), _T(
"RingBuffer::Remain() invalid size.\n"));
138 Assert::IsFalse (ringBuffer.
Read (byBuf, 1));
BOOL APIENTRY Read(LPBYTE lpbyBuffer, SIZE_T size)
バッファの読み込み
BOOL APIENTRY Init(SIZE_T size)
初期化
BOOL APIENTRY Write(LPBYTE lpbyBuffer, SIZE_T size)
バッファの書き込み
SIZE_T APIENTRY Remain() const
残りバッファサイズの取得