10 #include <common/include/SwTrace.hpp> 14 #include <doctest/doctest.h> 20 TEST_CASE(
"PacketBufferTest0")
24 CHECK(packetBuffer->GetSize() == 0);
33 packetBuffer->Commit(16);
36 CHECK(packetBuffer->GetSize() == 16);
39 auto readBuffer = packetBuffer->GetReadableData();
40 uint32_t readData0 =
ReadUint32(readBuffer, 0);
41 uint32_t readData1 =
ReadUint32(readBuffer, 4);
42 uint32_t readData2 =
ReadUint32(readBuffer, 8);
43 uint32_t readData3 =
ReadUint32(readBuffer, 12);
46 CHECK(readData0 == 10);
47 CHECK(readData1 == 20);
48 CHECK(readData2 == 30);
49 CHECK(readData3 == 40);
52 packetBuffer->MarkRead();
55 CHECK(packetBuffer->GetSize() == 0);
58 TEST_CASE(
"PacketBufferTest1")
62 CHECK(packetBuffer->GetSize() == 0);
65 auto writeBuffer = packetBuffer->GetWritableData();
71 packetBuffer->Commit(16);
73 CHECK(packetBuffer->GetSize() == 16);
76 auto readBuffer = packetBuffer->GetReadableData();
77 uint32_t readData0 =
ReadUint32(readBuffer, 0);
78 uint32_t readData1 =
ReadUint32(readBuffer, 4);
79 uint32_t readData2 =
ReadUint32(readBuffer, 8);
80 uint32_t readData3 =
ReadUint32(readBuffer, 12);
82 CHECK(readData0 == 10);
83 CHECK(readData1 == 20);
84 CHECK(readData2 == 30);
85 CHECK(readData3 == 40);
87 packetBuffer->MarkRead();
89 CHECK(packetBuffer->GetSize() == 0);
92 TEST_CASE(
"PacketBufferReleaseTest")
96 CHECK(packetBuffer->GetSize() == 0);
98 auto writeBuffer = packetBuffer->GetWritableData();
105 packetBuffer->Release();
108 CHECK(packetBuffer->GetSize() == 0);
111 TEST_CASE(
"PacketBufferCommitErrorTest")
119 TEST_CASE(
"BufferReserveTest")
122 unsigned int reservedSize = 0;
123 auto packetBuffer = bufferManager.
Reserve(512, reservedSize);
126 CHECK(reservedSize == 512);
127 CHECK(packetBuffer.get());
130 TEST_CASE(
"BufferReserveExceedingSpaceTest")
133 unsigned int reservedSize = 0;
136 auto reservedBuffer = bufferManager.
Reserve(1024, reservedSize);
137 CHECK(reservedSize == 0);
138 CHECK(!reservedBuffer.get());
141 TEST_CASE(
"BufferExhaustionTest")
144 unsigned int reservedSize = 0;
145 auto packetBuffer = bufferManager.
Reserve(512, reservedSize);
148 CHECK(reservedSize == 512);
149 CHECK(packetBuffer.get());
155 packetBuffer = bufferManager.
Reserve(512, reservedSize);
158 CHECK(reservedSize == 512);
159 CHECK(packetBuffer.get());
161 packetBuffer = bufferManager.
Reserve(512, reservedSize);
164 CHECK(reservedSize == 512);
165 CHECK(packetBuffer.get());
167 auto reservedBuffer = bufferManager.
Reserve(512, reservedSize);
168 CHECK(reservedSize == 0);
169 CHECK(!reservedBuffer.get());
172 TEST_CASE(
"BufferReserveMultipleTest")
175 unsigned int reservedSize0 = 0;
176 auto packetBuffer0 = bufferManager.
Reserve(512, reservedSize0);
179 CHECK(reservedSize0 == 512);
180 CHECK(packetBuffer0.get());
182 unsigned int reservedSize1 = 0;
183 auto packetBuffer1 = bufferManager.
Reserve(128, reservedSize1);
186 CHECK(reservedSize1 == 128);
187 CHECK(packetBuffer1.get());
189 unsigned int reservedSize2 = 0;
190 auto packetBuffer2 = bufferManager.
Reserve(512, reservedSize2);
193 CHECK(reservedSize2 == 512);
194 CHECK(packetBuffer2.get());
198 for (
unsigned int i = 0; i < 6 ; ++i)
201 unsigned int reservedSize = 0;
202 auto packetBuffer = bufferManager.
Reserve(512, reservedSize);
205 CHECK(reservedSize == 512);
206 CHECK(packetBuffer.get());
210 unsigned int reservedSize3 = 0;
211 auto reservedBuffer = bufferManager.
Reserve(512, reservedSize3);
212 CHECK(reservedSize3 == 0);
213 CHECK(!reservedBuffer.get());
216 TEST_CASE(
"BufferReleaseTest")
219 unsigned int reservedSize0 = 0;
220 auto packetBuffer0 = bufferManager.
Reserve(512, reservedSize0);
223 CHECK(reservedSize0 == 512);
224 CHECK(packetBuffer0.get());
226 unsigned int reservedSize1 = 0;
227 auto packetBuffer1 = bufferManager.
Reserve(128, reservedSize1);
230 CHECK(reservedSize1 == 128);
231 CHECK(packetBuffer1.get());
236 for (
unsigned int i = 0; i < 4 ; ++i)
239 unsigned int reservedSize = 0;
240 auto packetBuffer = bufferManager.
Reserve(512, reservedSize);
243 CHECK(reservedSize == 512);
244 CHECK(packetBuffer.get());
248 unsigned int reservedSize2 = 0;
249 auto reservedBuffer = bufferManager.
Reserve(512, reservedSize2);
250 CHECK(reservedSize2 == 0);
251 CHECK(!reservedBuffer.get());
253 bufferManager.
Release(packetBuffer0);
256 auto packetBuffer2 = bufferManager.
Reserve(128, reservedSize2);
258 CHECK(reservedSize2 == 128);
259 CHECK(packetBuffer2.get());
262 TEST_CASE(
"BufferCommitTest")
265 unsigned int reservedSize0 = 0;
266 auto packetBuffer0 = bufferManager.
Reserve(512, reservedSize0);
268 CHECK(reservedSize0 == 512);
269 CHECK(packetBuffer0.get());
271 unsigned int reservedSize1 = 0;
272 auto packetBuffer1 = bufferManager.
Reserve(128, reservedSize1);
274 CHECK(reservedSize1 == 128);
275 CHECK(packetBuffer1.get());
280 for (
unsigned int i = 0; i < 4 ; ++i)
283 unsigned int reservedSize = 0;
284 auto packetBuffer = bufferManager.
Reserve(512, reservedSize);
287 CHECK(reservedSize == 512);
288 CHECK(packetBuffer.get());
291 unsigned int reservedSize2 = 0;
292 auto reservedBuffer = bufferManager.
Reserve(512, reservedSize2);
293 CHECK(reservedSize2 == 0);
294 CHECK(!reservedBuffer.get());
296 bufferManager.
Commit(packetBuffer0, 256);
300 CHECK(packetBuffer2.get());
301 CHECK(packetBuffer2->GetSize() == 256);
304 unsigned int reservedSize = 0;
305 reservedBuffer = bufferManager.
Reserve(512, reservedSize);
306 CHECK(reservedSize == 0);
307 CHECK(!reservedBuffer.get());
310 TEST_CASE(
"BufferMarkReadTest")
313 unsigned int reservedSize0 = 0;
314 auto packetBuffer0 = bufferManager.
Reserve(512, reservedSize0);
316 CHECK(reservedSize0 == 512);
317 CHECK(packetBuffer0.get());
319 unsigned int reservedSize1 = 0;
320 auto packetBuffer1 = bufferManager.
Reserve(128, reservedSize1);
322 CHECK(reservedSize1 == 128);
323 CHECK(packetBuffer1.get());
328 for (
unsigned int i = 0; i < 4 ; ++i)
331 unsigned int reservedSize = 0;
332 auto packetBuffer = bufferManager.
Reserve(512, reservedSize);
335 CHECK(reservedSize == 512);
336 CHECK(packetBuffer.get());
340 unsigned int reservedSize2 = 0;
341 auto reservedBuffer = bufferManager.
Reserve(512, reservedSize2);
342 CHECK(reservedSize2 == 0);
343 CHECK(!reservedBuffer.get());
345 bufferManager.
Commit(packetBuffer0, 256);
349 CHECK(packetBuffer2.get());
350 CHECK(packetBuffer2->GetSize() == 256);
353 reservedBuffer = bufferManager.
Reserve(512, reservedSize2);
354 CHECK(reservedSize2 == 0);
355 CHECK(!reservedBuffer.get());
357 bufferManager.
MarkRead(packetBuffer2);
362 unsigned int reservedSize3 = 0;
363 auto packetBuffer3 = bufferManager.
Reserve(56, reservedSize3);
365 CHECK(reservedSize3 == 56);
366 CHECK(packetBuffer3.get());
369 TEST_CASE(
"ReadSwTraceMessageExceptionTest0")
373 CHECK(packetBuffer->GetSize() == 0);
382 packetBuffer->Commit(16);
386 CHECK_THROWS_AS(arm::pipe::ReadSwTraceMessage(packetBuffer->GetReadableData(), offset, packetBuffer->GetSize()),
387 arm::pipe::ProfilingException);
391 TEST_CASE(
"ReadSwTraceMessageExceptionTest1")
395 CHECK(packetBuffer->GetSize() == 0);
404 packetBuffer->Commit(16);
408 CHECK_THROWS_AS(arm::pipe::ReadSwTraceMessage(packetBuffer->GetReadableData(), offset, packetBuffer->GetSize()),
409 arm::pipe::ProfilingException);
TEST_SUITE("TestConstTensorLayerVisitor")
void WriteUint32(const IPacketBufferPtr &packetBuffer, unsigned int offset, uint32_t value)
void Commit(IPacketBufferPtr &packetBuffer, unsigned int size, bool notifyConsumer=true) override
IPacketBufferPtr Reserve(unsigned int requestedSize, unsigned int &reservedSize) override
IPacketBufferPtr GetReadableBuffer() override
uint32_t ReadUint32(const IPacketBufferPtr &packetBuffer, unsigned int offset)
void MarkRead(IPacketBufferPtr &packetBuffer) override
std::unique_ptr< IPacketBuffer > IPacketBufferPtr
void Release(IPacketBufferPtr &packetBuffer) override