16 #include <common/include/SwTrace.hpp> 18 #include <boost/test/unit_test.hpp> 31 std::unique_ptr<ISendTimelinePacket> sendTimelinePacket = timelinePacketWriterFactory.
GetSendTimelinePacket();
33 sendTimelinePacket->SendTimelineMessageDirectoryPackage();
38 unsigned int uint8_t_size =
sizeof(uint8_t);
40 unsigned int uint64_t_size =
sizeof(uint64_t);
43 unsigned int offset = 0;
44 uint32_t packetHeaderWord0 =
ReadUint32(packetBuffer, offset);
45 uint32_t packetFamily = (packetHeaderWord0 >> 26) & 0x0000003F;
46 uint32_t packetClass = (packetHeaderWord0 >> 19) & 0x0000007F;
47 uint32_t packetType = (packetHeaderWord0 >> 16) & 0x00000007;
48 uint32_t streamId = (packetHeaderWord0 >> 0) & 0x00000007;
50 BOOST_CHECK(packetFamily == 1);
51 BOOST_CHECK(packetClass == 0);
52 BOOST_CHECK(packetType == 0);
53 BOOST_CHECK(streamId == 0);
56 uint32_t packetHeaderWord1 =
ReadUint32(packetBuffer, offset);
57 uint32_t sequenceNumbered = (packetHeaderWord1 >> 24) & 0x00000001;
58 uint32_t dataLength = (packetHeaderWord1 >> 0) & 0x00FFFFFF;
59 BOOST_CHECK(sequenceNumbered == 0);
60 BOOST_CHECK(dataLength == 443);
63 uint8_t readStreamVersion =
ReadUint8(packetBuffer, offset);
64 BOOST_CHECK(readStreamVersion == 4);
65 offset += uint8_t_size;
66 uint8_t readPointerBytes =
ReadUint8(packetBuffer, offset);
67 BOOST_CHECK(readPointerBytes == uint64_t_size);
68 offset += uint8_t_size;
69 uint8_t readThreadIdBytes =
ReadUint8(packetBuffer, offset);
72 offset += uint8_t_size;
73 uint32_t DeclCount =
ReadUint32(packetBuffer, offset);
74 BOOST_CHECK(DeclCount == 5);
77 arm::pipe::SwTraceMessage swTraceMessage = arm::pipe::ReadSwTraceMessage(packetBuffer->GetReadableData(),
79 packetBuffer->GetSize());
81 BOOST_CHECK(swTraceMessage.m_Id == 0);
82 BOOST_CHECK(swTraceMessage.m_Name ==
"declareLabel");
83 BOOST_CHECK(swTraceMessage.m_UiName ==
"declare label");
84 BOOST_CHECK(swTraceMessage.m_ArgTypes.size() == 2);
85 BOOST_CHECK(swTraceMessage.m_ArgTypes[0] ==
'p');
86 BOOST_CHECK(swTraceMessage.m_ArgTypes[1] ==
's');
87 BOOST_CHECK(swTraceMessage.m_ArgNames.size() == 2);
88 BOOST_CHECK(swTraceMessage.m_ArgNames[0] ==
"guid");
89 BOOST_CHECK(swTraceMessage.m_ArgNames[1] ==
"value");
91 swTraceMessage = arm::pipe::ReadSwTraceMessage(packetBuffer->GetReadableData(),
93 packetBuffer->GetSize());
95 BOOST_CHECK(swTraceMessage.m_Id == 1);
96 BOOST_CHECK(swTraceMessage.m_Name ==
"declareEntity");
97 BOOST_CHECK(swTraceMessage.m_UiName ==
"declare entity");
98 BOOST_CHECK(swTraceMessage.m_ArgTypes.size() == 1);
99 BOOST_CHECK(swTraceMessage.m_ArgTypes[0] ==
'p');
100 BOOST_CHECK(swTraceMessage.m_ArgNames.size() == 1);
101 BOOST_CHECK(swTraceMessage.m_ArgNames[0] ==
"guid");
103 swTraceMessage = arm::pipe::ReadSwTraceMessage(packetBuffer->GetReadableData(),
105 packetBuffer->GetSize());
107 BOOST_CHECK(swTraceMessage.m_Id == 2);
108 BOOST_CHECK(swTraceMessage.m_Name ==
"declareEventClass");
109 BOOST_CHECK(swTraceMessage.m_UiName ==
"declare event class");
110 BOOST_CHECK(swTraceMessage.m_ArgTypes.size() == 2);
111 BOOST_CHECK(swTraceMessage.m_ArgTypes[0] ==
'p');
112 BOOST_CHECK(swTraceMessage.m_ArgTypes[1] ==
'p');
113 BOOST_CHECK(swTraceMessage.m_ArgNames.size() == 2);
114 BOOST_CHECK(swTraceMessage.m_ArgNames[0] ==
"guid");
115 BOOST_CHECK(swTraceMessage.m_ArgNames[1] ==
"nameGuid");
117 swTraceMessage = arm::pipe::ReadSwTraceMessage(packetBuffer->GetReadableData(),
119 packetBuffer->GetSize());
121 BOOST_CHECK(swTraceMessage.m_Id == 3);
122 BOOST_CHECK(swTraceMessage.m_Name ==
"declareRelationship");
123 BOOST_CHECK(swTraceMessage.m_UiName ==
"declare relationship");
124 BOOST_CHECK(swTraceMessage.m_ArgTypes.size() == 5);
125 BOOST_CHECK(swTraceMessage.m_ArgTypes[0] ==
'I');
126 BOOST_CHECK(swTraceMessage.m_ArgTypes[1] ==
'p');
127 BOOST_CHECK(swTraceMessage.m_ArgTypes[2] ==
'p');
128 BOOST_CHECK(swTraceMessage.m_ArgTypes[3] ==
'p');
129 BOOST_CHECK(swTraceMessage.m_ArgTypes[4] ==
'p');
130 BOOST_CHECK(swTraceMessage.m_ArgNames.size() == 5);
131 BOOST_CHECK(swTraceMessage.m_ArgNames[0] ==
"relationshipType");
132 BOOST_CHECK(swTraceMessage.m_ArgNames[1] ==
"relationshipGuid");
133 BOOST_CHECK(swTraceMessage.m_ArgNames[2] ==
"headGuid");
134 BOOST_CHECK(swTraceMessage.m_ArgNames[3] ==
"tailGuid");
135 BOOST_CHECK(swTraceMessage.m_ArgNames[4] ==
"attributeGuid");
137 swTraceMessage = arm::pipe::ReadSwTraceMessage(packetBuffer->GetReadableData(),
139 packetBuffer->GetSize());
141 BOOST_CHECK(swTraceMessage.m_Id == 4);
142 BOOST_CHECK(swTraceMessage.m_Name ==
"declareEvent");
143 BOOST_CHECK(swTraceMessage.m_UiName ==
"declare event");
144 BOOST_CHECK(swTraceMessage.m_ArgTypes.size() == 3);
145 BOOST_CHECK(swTraceMessage.m_ArgTypes[0] ==
'@');
146 BOOST_CHECK(swTraceMessage.m_ArgTypes[1] ==
't');
147 BOOST_CHECK(swTraceMessage.m_ArgTypes[2] ==
'p');
148 BOOST_CHECK(swTraceMessage.m_ArgNames.size() == 3);
149 BOOST_CHECK(swTraceMessage.m_ArgNames[0] ==
"timestamp");
150 BOOST_CHECK(swTraceMessage.m_ArgNames[1] ==
"threadId");
151 BOOST_CHECK(swTraceMessage.m_ArgNames[2] ==
"eventGuid");
158 std::unique_ptr<ISendTimelinePacket> sendTimelinePacket = timelinePacketWriterFactory.
GetSendTimelinePacket();
160 const uint64_t entityBinaryPacketProfilingGuid = 123456u;
161 sendTimelinePacket->SendTimelineEntityBinaryPacket(entityBinaryPacketProfilingGuid);
163 const uint64_t eventClassBinaryPacketProfilingGuid = 789123u;
164 const uint64_t eventClassBinaryPacketNameGuid = 8845u;
165 sendTimelinePacket->SendTimelineEventClassBinaryPacket(
166 eventClassBinaryPacketProfilingGuid, eventClassBinaryPacketNameGuid);
169 sendTimelinePacket->Commit();
175 unsigned int uint64_t_size =
sizeof(uint64_t);
178 unsigned int offset = 0;
181 uint32_t entityBinaryPacketHeaderWord0 =
ReadUint32(packetBuffer, offset);
182 uint32_t entityBinaryPacketFamily = (entityBinaryPacketHeaderWord0 >> 26) & 0x0000003F;
183 uint32_t entityBinaryPacketClass = (entityBinaryPacketHeaderWord0 >> 19) & 0x0000007F;
184 uint32_t entityBinaryPacketType = (entityBinaryPacketHeaderWord0 >> 16) & 0x00000007;
185 uint32_t entityBinaryPacketStreamId = (entityBinaryPacketHeaderWord0 >> 0) & 0x00000007;
187 BOOST_CHECK(entityBinaryPacketFamily == 1);
188 BOOST_CHECK(entityBinaryPacketClass == 0);
189 BOOST_CHECK(entityBinaryPacketType == 1);
190 BOOST_CHECK(entityBinaryPacketStreamId == 0);
194 uint32_t entityBinaryPacketHeaderWord1 =
ReadUint32(packetBuffer, offset);
196 uint32_t entityBinaryPacketSequenceNumbered = (entityBinaryPacketHeaderWord1 >> 24) & 0x00000001;
197 uint32_t entityBinaryPacketDataLength = (entityBinaryPacketHeaderWord1 >> 0) & 0x00FFFFFF;
199 BOOST_CHECK(entityBinaryPacketSequenceNumbered == 0);
200 BOOST_CHECK(entityBinaryPacketDataLength == 32);
204 uint32_t entitytDecId =
ReadUint32(packetBuffer, offset);
206 BOOST_CHECK(entitytDecId == uint32_t(1));
210 uint64_t readProfilingGuid =
ReadUint64(packetBuffer, offset);
212 BOOST_CHECK(readProfilingGuid == entityBinaryPacketProfilingGuid);
215 offset += uint64_t_size;
217 uint32_t eventClassDeclId =
ReadUint32(packetBuffer, offset);
218 BOOST_CHECK(eventClassDeclId == uint32_t(2));
222 readProfilingGuid =
ReadUint64(packetBuffer, offset);
223 BOOST_CHECK(readProfilingGuid == eventClassBinaryPacketProfilingGuid);
225 offset += uint64_t_size;
226 uint64_t readEventClassNameGuid =
ReadUint64(packetBuffer, offset);
227 BOOST_CHECK(readEventClassNameGuid == eventClassBinaryPacketNameGuid);
229 bufferManager.
MarkRead(packetBuffer);
235 unsigned int uint64_t_size =
sizeof(uint64_t);
239 std::unique_ptr<ISendTimelinePacket> sendTimelinePacket = timelinePacketWriterFactory.
GetSendTimelinePacket();
242 const uint64_t entityBinaryPacketProfilingGuid = 123456u;
243 sendTimelinePacket->SendTimelineEntityBinaryPacket(entityBinaryPacketProfilingGuid);
246 sendTimelinePacket->Commit();
252 unsigned int offset = 0;
255 uint32_t entityBinaryPacketHeaderWord0 =
ReadUint32(packetBuffer, offset);
256 uint32_t entityBinaryPacketFamily = (entityBinaryPacketHeaderWord0 >> 26) & 0x0000003F;
257 uint32_t entityBinaryPacketClass = (entityBinaryPacketHeaderWord0 >> 19) & 0x0000007F;
258 uint32_t entityBinaryPacketType = (entityBinaryPacketHeaderWord0 >> 16) & 0x00000007;
259 uint32_t entityBinaryPacketStreamId = (entityBinaryPacketHeaderWord0 >> 0) & 0x00000007;
261 BOOST_CHECK(entityBinaryPacketFamily == 1);
262 BOOST_CHECK(entityBinaryPacketClass == 0);
263 BOOST_CHECK(entityBinaryPacketType == 1);
264 BOOST_CHECK(entityBinaryPacketStreamId == 0);
267 uint32_t entityBinaryPacketHeaderWord1 =
ReadUint32(packetBuffer, offset);
268 uint32_t entityBinaryPacketSequenceNumbered = (entityBinaryPacketHeaderWord1 >> 24) & 0x00000001;
269 uint32_t entityBinaryPacketDataLength = (entityBinaryPacketHeaderWord1 >> 0) & 0x00FFFFFF;
270 BOOST_CHECK(entityBinaryPacketSequenceNumbered == 0);
271 BOOST_CHECK(entityBinaryPacketDataLength == 12);
275 uint32_t entitytDecId =
ReadUint32(packetBuffer, offset);
277 BOOST_CHECK(entitytDecId == uint32_t(1));
281 uint64_t readProfilingGuid =
ReadUint64(packetBuffer, offset);
283 BOOST_CHECK(readProfilingGuid == entityBinaryPacketProfilingGuid);
285 bufferManager.
MarkRead(packetBuffer);
288 const uint64_t eventClassBinaryPacketProfilingGuid = 789123u;
289 const uint64_t eventClassBinaryPacketNameGuid = 8845u;
290 sendTimelinePacket->SendTimelineEventClassBinaryPacket(
291 eventClassBinaryPacketProfilingGuid, eventClassBinaryPacketNameGuid);
294 sendTimelinePacket->Commit();
303 uint32_t eventClassBinaryPacketHeaderWord0 =
ReadUint32(packetBuffer, offset);
304 uint32_t eventClassBinaryPacketFamily = (eventClassBinaryPacketHeaderWord0 >> 26) & 0x0000003F;
305 uint32_t eventClassBinaryPacketClass = (eventClassBinaryPacketHeaderWord0 >> 19) & 0x0000007F;
306 uint32_t eventClassBinaryPacketType = (eventClassBinaryPacketHeaderWord0 >> 16) & 0x00000007;
307 uint32_t eventClassBinaryPacketStreamId = (eventClassBinaryPacketHeaderWord0 >> 0) & 0x00000007;
309 BOOST_CHECK(eventClassBinaryPacketFamily == 1);
310 BOOST_CHECK(eventClassBinaryPacketClass == 0);
311 BOOST_CHECK(eventClassBinaryPacketType == 1);
312 BOOST_CHECK(eventClassBinaryPacketStreamId == 0);
315 uint32_t eventClassBinaryPacketHeaderWord1 =
ReadUint32(packetBuffer, offset);
316 uint32_t eventClassBinaryPacketSequenceNumbered = (eventClassBinaryPacketHeaderWord1 >> 24) & 0x00000001;
317 uint32_t eventClassBinaryPacketDataLength = (eventClassBinaryPacketHeaderWord1 >> 0) & 0x00FFFFFF;
318 BOOST_CHECK(eventClassBinaryPacketSequenceNumbered == 0);
319 BOOST_CHECK(eventClassBinaryPacketDataLength == 20);
322 uint32_t eventClassDeclId =
ReadUint32(packetBuffer, offset);
323 BOOST_CHECK(eventClassDeclId == uint32_t(2));
327 readProfilingGuid =
ReadUint64(packetBuffer, offset);
328 BOOST_CHECK(readProfilingGuid == eventClassBinaryPacketProfilingGuid);
330 offset += uint64_t_size;
331 uint64_t readEventClassNameGuid =
ReadUint64(packetBuffer, offset);
332 BOOST_CHECK(readEventClassNameGuid == eventClassBinaryPacketNameGuid);
334 bufferManager.
MarkRead(packetBuffer);
337 const uint64_t timestamp = 456789u;
339 const uint64_t eventProfilingGuid = 123456u;
340 sendTimelinePacket->SendTimelineEventBinaryPacket(timestamp, threadId, eventProfilingGuid);
343 sendTimelinePacket->Commit();
352 uint32_t eventBinaryPacketHeaderWord0 =
ReadUint32(packetBuffer, offset);
353 uint32_t eventBinaryPacketFamily = (eventBinaryPacketHeaderWord0 >> 26) & 0x0000003F;
354 uint32_t eventBinaryPacketClass = (eventBinaryPacketHeaderWord0 >> 19) & 0x0000007F;
355 uint32_t eventBinaryPacketType = (eventBinaryPacketHeaderWord0 >> 16) & 0x00000007;
356 uint32_t eventBinaryPacketStreamId = (eventBinaryPacketHeaderWord0 >> 0) & 0x00000007;
358 BOOST_CHECK(eventBinaryPacketFamily == 1);
359 BOOST_CHECK(eventBinaryPacketClass == 0);
360 BOOST_CHECK(eventBinaryPacketType == 1);
361 BOOST_CHECK(eventBinaryPacketStreamId == 0);
364 uint32_t eventBinaryPacketHeaderWord1 =
ReadUint32(packetBuffer, offset);
365 uint32_t eventBinaryPacketSequenceNumbered = (eventBinaryPacketHeaderWord1 >> 24) & 0x00000001;
366 uint32_t eventBinaryPacketDataLength = (eventBinaryPacketHeaderWord1 >> 0) & 0x00FFFFFF;
367 BOOST_CHECK(eventBinaryPacketSequenceNumbered == 0);
368 BOOST_CHECK(eventBinaryPacketDataLength == 20 +
ThreadIdSize);
372 uint32_t eventDeclId =
ReadUint32(packetBuffer, offset);
373 BOOST_CHECK(eventDeclId == 4);
377 uint64_t eventTimestamp =
ReadUint64(packetBuffer, offset);
378 BOOST_CHECK(eventTimestamp == timestamp);
381 offset += uint64_t_size;
384 BOOST_CHECK(readThreadId == threadId);
388 readProfilingGuid =
ReadUint64(packetBuffer, offset);
389 BOOST_CHECK(readProfilingGuid == eventProfilingGuid);
396 std::unique_ptr<ISendTimelinePacket> sendTimelinePacket = timelinePacketWriterFactory.
GetSendTimelinePacket();
398 BOOST_CHECK_THROW(sendTimelinePacket->SendTimelineMessageDirectoryPackage(),
406 std::unique_ptr<ISendTimelinePacket> sendTimelinePacket = timelinePacketWriterFactory.
GetSendTimelinePacket();
409 const uint64_t entityBinaryPacketProfilingGuid = 123456u;
410 sendTimelinePacket->SendTimelineEntityBinaryPacket(entityBinaryPacketProfilingGuid);
413 sendTimelinePacket->Commit();
419 const uint64_t eventClassBinaryPacketProfilingGuid = 789123u;
420 const uint64_t eventClassBinaryPacketNameGuid = 8845u;
421 BOOST_CHECK_THROW(sendTimelinePacket->SendTimelineEventClassBinaryPacket(
422 eventClassBinaryPacketProfilingGuid, eventClassBinaryPacketNameGuid),
435 std::hash<std::string> hasher;
436 uint64_t hash =
static_cast<uint64_t
>(hasher(
"dummy"));
438 BOOST_CHECK(staticGuid == expectedStaticValue);
440 uint64_t dynamicGuidValue =
static_cast<uint64_t
>(dynamicGuid);
444 BOOST_CHECK(dynamicGuid == expectedDynamicValue);
455 BOOST_CHECK(writer !=
nullptr);
464 std::hash<std::string> hasher;
478 hash =
static_cast<uint64_t
>(hasher(
"ARMNN_PROFILING_SOL"));
482 hash =
static_cast<uint64_t
>(hasher(
"ARMNN_PROFILING_EOL"));
BOOST_AUTO_TEST_SUITE(TensorflowLiteParser)
static ARMNN_DLLEXPORT std::string TYPE_LABEL
void ReadBytes(const IPacketBufferPtr &packetBuffer, unsigned int offset, unsigned int valueSize, uint8_t outValue[])
uint64_t ReadUint64(const IPacketBufferPtr &packetBuffer, unsigned int offset)
Strongly typed guids to distinguish between those generated at runtime, and those that are statically...
static ARMNN_DLLEXPORT std::string NAME_LABEL
uint8_t ReadUint8(const IPacketBufferPtr &packetBuffer, unsigned int offset)
static ARMNN_DLLEXPORT ProfilingStaticGuid ARMNN_PROFILING_EOL_EVENT_CLASS
static ARMNN_DLLEXPORT ProfilingStaticGuid NAME_GUID
static ARMNN_DLLEXPORT ProfilingStaticGuid ARMNN_PROFILING_SOL_EVENT_CLASS
void MarkRead(IPacketBufferPtr &packetBuffer) override
static ProfilingStaticGuid GetStaticId(const std::string &str)
IPacketBufferPtr GetReadableBuffer() override
std::unique_ptr< ISendTimelinePacket > GetSendTimelinePacket() const override
static ARMNN_DLLEXPORT std::string INDEX_LABEL
void ResetExternalProfilingOptions(const ExternalProfilingOptions &options, bool resetProfilingService=false)
BOOST_AUTO_TEST_CASE(CheckConvolution2dLayer)
constexpr unsigned int ThreadIdSize
uint32_t ReadUint32(const IPacketBufferPtr &packetBuffer, unsigned int offset)
BOOST_AUTO_TEST_SUITE_END()
static ARMNN_DLLEXPORT ProfilingStaticGuid INDEX_GUID
static ARMNN_DLLEXPORT ProfilingStaticGuid TYPE_GUID
static ProfilingDynamicGuid GetNextGuid()
std::unique_ptr< ISendTimelinePacket > GetSendTimelinePacket() const
ExternalProfilingOptions m_ProfilingOptions