7 #include <server/include/timelineDecoder/TimelineCaptureCommandHandler.hpp>
8 #include <server/include/timelineDecoder/TimelineDecoder.hpp>
11 #include <doctest/doctest.h>
17 using namespace armnn;
18 using namespace timelinedecoder;
20 void RunSimpleModelThroughDecoder(JSONTimelineDecoder& timelineDecoder)
25 arm::pipe::ITimelineDecoder::Label name;
26 name.m_Guid = uint64_t(10420554295983197538U);
28 timelineDecoder.CreateLabel(name);
30 arm::pipe::ITimelineDecoder::Label type;
31 type.m_Guid = uint64_t(14196220359693045352U);
33 timelineDecoder.CreateLabel(type);
35 arm::pipe::ITimelineDecoder::Label index;
36 index.m_Guid = uint64_t(13922236767355949814U);
37 index.m_Name =
"index";
38 timelineDecoder.CreateLabel(index);
40 arm::pipe::ITimelineDecoder::Label backendId;
41 backendId.m_Guid = uint64_t(10874037804557439415U);
42 backendId.m_Name =
"backendId";
43 timelineDecoder.CreateLabel(backendId);
45 arm::pipe::ITimelineDecoder::Label layer;
46 layer.m_Guid = uint64_t(14761340794127440397U);
47 layer.m_Name =
"layer";
48 timelineDecoder.CreateLabel(layer);
50 arm::pipe::ITimelineDecoder::Label workload;
51 workload.m_Guid = uint64_t(15704252740552608110U);
52 workload.m_Name =
"workload";
53 timelineDecoder.CreateLabel(workload);
55 arm::pipe::ITimelineDecoder::Label network;
56 network.m_Guid = uint64_t(16862199137063532871U);
57 network.m_Name =
"network";
58 timelineDecoder.CreateLabel(network);
60 arm::pipe::ITimelineDecoder::Label connection;
61 connection.m_Guid = uint64_t(15733717748792475675U);
62 connection.m_Name =
"connection";
63 timelineDecoder.CreateLabel(connection);
65 arm::pipe::ITimelineDecoder::Label inference;
66 inference.m_Guid = uint64_t(15026600058430441282U);
67 inference.m_Name =
"inference";
68 timelineDecoder.CreateLabel(inference);
70 arm::pipe::ITimelineDecoder::Label workload_execution;
71 workload_execution.m_Guid = uint64_t(10172155312650606003U);
72 workload_execution.m_Name =
"workload_execution";
73 timelineDecoder.CreateLabel(workload_execution);
75 arm::pipe::ITimelineDecoder::EventClass eventClass1;
76 eventClass1.m_Guid = uint64_t(17170418158534996719U);
77 timelineDecoder.CreateEventClass(eventClass1);
79 arm::pipe::ITimelineDecoder::EventClass eventClass2;
80 eventClass2.m_Guid = uint64_t(10812061579584851344U);
81 timelineDecoder.CreateEventClass(eventClass2);
83 arm::pipe::ITimelineDecoder::Entity entity6;
84 entity6.m_Guid = uint64_t(6);
85 timelineDecoder.CreateEntity(entity6);
87 arm::pipe::ITimelineDecoder::Relationship relationship7;
88 relationship7.m_Guid = uint64_t(7);
89 relationship7.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
90 relationship7.m_HeadGuid = uint64_t(6);
91 relationship7.m_TailGuid = uint64_t(16862199137063532871U);
92 timelineDecoder.CreateRelationship(relationship7);
94 arm::pipe::ITimelineDecoder::Relationship relationship8;
95 relationship8.m_Guid = uint64_t(8);
96 relationship8.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
97 relationship8.m_HeadGuid = uint64_t(7);
98 relationship8.m_TailGuid = uint64_t(14196220359693045352U);
99 timelineDecoder.CreateRelationship(relationship8);
102 arm::pipe::ITimelineDecoder::Entity entity0;
103 entity0.m_Guid = uint64_t(0);
104 timelineDecoder.CreateEntity(entity0);
106 arm::pipe::ITimelineDecoder::Label input;
107 input.m_Guid = uint64_t(18179123836411086572U);
108 input.m_Name =
"input";
109 timelineDecoder.CreateLabel(input);
111 arm::pipe::ITimelineDecoder::Relationship relationship9;
112 relationship9.m_Guid = uint64_t(9);
113 relationship9.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
114 relationship9.m_HeadGuid = uint64_t(0);
115 relationship9.m_TailGuid = uint64_t(18179123836411086572U);
116 timelineDecoder.CreateRelationship(relationship9);
118 arm::pipe::ITimelineDecoder::Relationship relationship10;
119 relationship10.m_Guid = uint64_t(10);
120 relationship10.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
121 relationship10.m_HeadGuid = uint64_t(9);
122 relationship10.m_TailGuid = uint64_t(10420554295983197538U);
123 timelineDecoder.CreateRelationship(relationship10);
125 arm::pipe::ITimelineDecoder::Relationship relationship11;
126 relationship11.m_Guid = uint64_t(11);
127 relationship11.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
128 relationship11.m_HeadGuid = uint64_t(0);
129 relationship11.m_TailGuid = uint64_t(14761340794127440397U);
130 timelineDecoder.CreateRelationship(relationship11);
132 arm::pipe::ITimelineDecoder::Relationship relationship12;
133 relationship12.m_Guid = uint64_t(12);
134 relationship12.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
135 relationship12.m_HeadGuid = uint64_t(11);
136 relationship12.m_TailGuid = uint64_t(14196220359693045352U);
137 timelineDecoder.CreateRelationship(relationship12);
139 arm::pipe::ITimelineDecoder::Relationship relationship13;
140 relationship13.m_Guid = uint64_t(13);
141 relationship13.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
142 relationship13.m_HeadGuid = uint64_t(6);
143 relationship13.m_TailGuid = uint64_t(0);
144 timelineDecoder.CreateRelationship(relationship13);
148 arm::pipe::ITimelineDecoder::Entity entity1;
149 entity1.m_Guid = uint64_t(1);
150 timelineDecoder.CreateEntity(entity1);
152 arm::pipe::ITimelineDecoder::Label normalization;
153 normalization.m_Guid = uint64_t(15955949569988957863U);
154 normalization.m_Name =
"normalization";
155 timelineDecoder.CreateLabel(normalization);
157 arm::pipe::ITimelineDecoder::Relationship relationship14;
158 relationship14.m_Guid = uint64_t(14);
159 relationship14.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
160 relationship14.m_HeadGuid = uint64_t(1);
161 relationship14.m_TailGuid = uint64_t(15955949569988957863U);
162 timelineDecoder.CreateRelationship(relationship14);
164 arm::pipe::ITimelineDecoder::Relationship relationship15;
165 relationship15.m_Guid = uint64_t(15);
166 relationship15.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
167 relationship15.m_HeadGuid = uint64_t(14);
168 relationship15.m_TailGuid = uint64_t(10420554295983197538U);
169 timelineDecoder.CreateRelationship(relationship15);
171 arm::pipe::ITimelineDecoder::Relationship relationship16;
172 relationship16.m_Guid = uint64_t(16);
173 relationship16.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
174 relationship16.m_HeadGuid = uint64_t(1);
175 relationship16.m_TailGuid = uint64_t(14761340794127440397U);
176 timelineDecoder.CreateRelationship(relationship16);
178 arm::pipe::ITimelineDecoder::Relationship relationship17;
179 relationship17.m_Guid = uint64_t(17);
180 relationship17.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
181 relationship17.m_HeadGuid = uint64_t(16);
182 relationship17.m_TailGuid = uint64_t(14196220359693045352U);
183 timelineDecoder.CreateRelationship(relationship17);
185 arm::pipe::ITimelineDecoder::Relationship relationship18;
186 relationship18.m_Guid = uint64_t(18);
187 relationship18.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
188 relationship18.m_HeadGuid = uint64_t(6);
189 relationship18.m_TailGuid = uint64_t(1);
190 timelineDecoder.CreateRelationship(relationship18);
192 arm::pipe::ITimelineDecoder::Relationship relationship19;
193 relationship19.m_Guid = uint64_t(19);
194 relationship19.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
195 relationship19.m_HeadGuid = uint64_t(0);
196 relationship19.m_TailGuid = uint64_t(1);
197 timelineDecoder.CreateRelationship(relationship19);
199 arm::pipe::ITimelineDecoder::Relationship relationship20;
200 relationship20.m_Guid = uint64_t(20);
201 relationship20.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
202 relationship20.m_HeadGuid = uint64_t(19);
203 relationship20.m_TailGuid = uint64_t(15733717748792475675U);
204 timelineDecoder.CreateRelationship(relationship20);
206 arm::pipe::ITimelineDecoder::Relationship relationship21;
207 relationship21.m_Guid = uint64_t(21);
208 relationship21.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
209 relationship21.m_HeadGuid = uint64_t(20);
210 relationship21.m_TailGuid = uint64_t(14196220359693045352U);
211 timelineDecoder.CreateRelationship(relationship21);
214 arm::pipe::ITimelineDecoder::Entity entity22;
215 entity22.m_Guid = uint64_t(22);
216 timelineDecoder.CreateEntity(entity22);
218 arm::pipe::ITimelineDecoder::Relationship relationship23;
219 relationship23.m_Guid = uint64_t(23);
220 relationship23.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
221 relationship23.m_HeadGuid = uint64_t(22);
222 relationship23.m_TailGuid = uint64_t(15704252740552608110U);
223 timelineDecoder.CreateRelationship(relationship23);
225 arm::pipe::ITimelineDecoder::Relationship relationship24;
226 relationship24.m_Guid = uint64_t(24);
227 relationship24.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
228 relationship24.m_HeadGuid = uint64_t(23);
229 relationship24.m_TailGuid = uint64_t(14196220359693045352U);
230 timelineDecoder.CreateRelationship(relationship24);
233 arm::pipe::ITimelineDecoder::Label
CpuRef;
234 CpuRef.m_Guid = uint64_t(9690680943817437852U);
236 timelineDecoder.CreateLabel(
CpuRef);
239 arm::pipe::ITimelineDecoder::Relationship relationship25;
240 relationship25.m_Guid = uint64_t(25);
241 relationship25.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
242 relationship25.m_HeadGuid = uint64_t(22);
243 relationship25.m_TailGuid = uint64_t(9690680943817437852U);
244 timelineDecoder.CreateRelationship(relationship25);
246 arm::pipe::ITimelineDecoder::Relationship relationship26;
247 relationship26.m_Guid = uint64_t(26);
248 relationship26.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
249 relationship26.m_HeadGuid = uint64_t(25);
250 relationship26.m_TailGuid = uint64_t(10874037804557439415U);
251 timelineDecoder.CreateRelationship(relationship26);
253 arm::pipe::ITimelineDecoder::Relationship relationship27;
254 relationship27.m_Guid = uint64_t(27);
255 relationship27.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink ;
256 relationship27.m_HeadGuid = uint64_t(1);
257 relationship27.m_TailGuid = uint64_t(22);
258 timelineDecoder.CreateRelationship(relationship27);
261 arm::pipe::ITimelineDecoder::Entity entity2;
262 entity2.m_Guid = uint64_t(2);
263 timelineDecoder.CreateEntity(entity2);
265 arm::pipe::ITimelineDecoder::Label output;
266 output.m_Guid = uint64_t(18419179028513879730U);
267 output.m_Name =
"output";
268 timelineDecoder.CreateLabel(output);
270 arm::pipe::ITimelineDecoder::Relationship relationship28;
271 relationship28.m_Guid = uint64_t(28);
272 relationship28.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
273 relationship28.m_HeadGuid = uint64_t(2);
274 relationship28.m_TailGuid = uint64_t(18419179028513879730U);
275 timelineDecoder.CreateRelationship(relationship28);
277 arm::pipe::ITimelineDecoder::Relationship relationship29;
278 relationship29.m_Guid = uint64_t(29);
279 relationship29.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
280 relationship29.m_HeadGuid = uint64_t(28);
281 relationship29.m_TailGuid = uint64_t(10420554295983197538U);
282 timelineDecoder.CreateRelationship(relationship29);
284 arm::pipe::ITimelineDecoder::Relationship relationship30;
285 relationship30.m_Guid = uint64_t(30);
286 relationship30.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
287 relationship30.m_HeadGuid = uint64_t(2);
288 relationship30.m_TailGuid = uint64_t(14761340794127440397U);
289 timelineDecoder.CreateRelationship(relationship30);
291 arm::pipe::ITimelineDecoder::Relationship relationship31;
292 relationship31.m_Guid = uint64_t(31);
293 relationship31.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
294 relationship31.m_HeadGuid = uint64_t(30);
295 relationship31.m_TailGuid = uint64_t(14196220359693045352U);
296 timelineDecoder.CreateRelationship(relationship31);
298 arm::pipe::ITimelineDecoder::Relationship relationship32;
299 relationship32.m_Guid = uint64_t(32);
300 relationship32.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
301 relationship32.m_HeadGuid = uint64_t(6);
302 relationship32.m_TailGuid = uint64_t(2);
303 timelineDecoder.CreateRelationship(relationship32);
305 arm::pipe::ITimelineDecoder::Relationship relationship33;
306 relationship33.m_Guid = uint64_t(33);
307 relationship33.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
308 relationship33.m_HeadGuid = uint64_t(1);
309 relationship33.m_TailGuid = uint64_t(2);
310 timelineDecoder.CreateRelationship(relationship33);
312 arm::pipe::ITimelineDecoder::Relationship relationship34;
313 relationship34.m_Guid = uint64_t(34);
314 relationship34.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
315 relationship34.m_HeadGuid = uint64_t(33);
316 relationship34.m_TailGuid = uint64_t(15733717748792475675U);
317 timelineDecoder.CreateRelationship(relationship34);
319 arm::pipe::ITimelineDecoder::Relationship relationship35;
320 relationship35.m_Guid = uint64_t(35);
321 relationship35.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
322 relationship35.m_HeadGuid = uint64_t(34);
323 relationship35.m_TailGuid = uint64_t(14196220359693045352U);
324 timelineDecoder.CreateRelationship(relationship35);
327 arm::pipe::ITimelineDecoder::Entity entity36;
328 entity36.m_Guid = uint64_t(36);
329 timelineDecoder.CreateEntity(entity36);
331 arm::pipe::ITimelineDecoder::Relationship relationship37;
332 relationship37.m_Guid = uint64_t(37);
333 relationship37.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
334 relationship37.m_HeadGuid = uint64_t(36);
335 relationship37.m_TailGuid = uint64_t(15704252740552608110U);
336 timelineDecoder.CreateRelationship(relationship37);
338 arm::pipe::ITimelineDecoder::Relationship relationship38;
339 relationship38.m_Guid = uint64_t(38);
340 relationship38.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
341 relationship38.m_HeadGuid = uint64_t(37);
342 relationship38.m_TailGuid = uint64_t(14196220359693045352U);
343 timelineDecoder.CreateRelationship(relationship38);
345 arm::pipe::ITimelineDecoder::Relationship relationship39;
346 relationship39.m_Guid = uint64_t(39);
347 relationship39.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
348 relationship39.m_HeadGuid = uint64_t(36);
349 relationship39.m_TailGuid = uint64_t(9690680943817437852U);
350 timelineDecoder.CreateRelationship(relationship39);
352 arm::pipe::ITimelineDecoder::Relationship relationship40;
353 relationship40.m_Guid = uint64_t(40);
354 relationship40.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
355 relationship40.m_HeadGuid = uint64_t(39);
356 relationship40.m_TailGuid = uint64_t(10874037804557439415U);
357 timelineDecoder.CreateRelationship(relationship40);
359 arm::pipe::ITimelineDecoder::Relationship relationship41;
360 relationship41.m_Guid = uint64_t(41);
361 relationship41.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
362 relationship41.m_HeadGuid = uint64_t(0);
363 relationship41.m_TailGuid = uint64_t(36);
364 timelineDecoder.CreateRelationship(relationship41);
367 arm::pipe::ITimelineDecoder::Entity entity42;
368 entity42.m_Guid = uint64_t(42);
369 timelineDecoder.CreateEntity(entity42);
371 arm::pipe::ITimelineDecoder::Relationship relationship43;
372 relationship43.m_Guid = uint64_t(43);
373 relationship43.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
374 relationship43.m_HeadGuid = uint64_t(42);
375 relationship43.m_TailGuid = uint64_t(15704252740552608110U);
376 timelineDecoder.CreateRelationship(relationship43);
378 arm::pipe::ITimelineDecoder::Relationship relationship44;
379 relationship44.m_Guid = uint64_t(44);
380 relationship44.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
381 relationship44.m_HeadGuid = uint64_t(43);
382 relationship44.m_TailGuid = uint64_t(14196220359693045352U);
383 timelineDecoder.CreateRelationship(relationship44);
385 arm::pipe::ITimelineDecoder::Relationship relationship45;
386 relationship45.m_Guid = uint64_t(45);
387 relationship45.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
388 relationship45.m_HeadGuid = uint64_t(42);
389 relationship45.m_TailGuid = uint64_t(9690680943817437852U);
390 timelineDecoder.CreateRelationship(relationship45);
392 arm::pipe::ITimelineDecoder::Relationship relationship46;
393 relationship46.m_Guid = uint64_t(46);
394 relationship46.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
395 relationship46.m_HeadGuid = uint64_t(45);
396 relationship46.m_TailGuid = uint64_t(10874037804557439415U);
397 timelineDecoder.CreateRelationship(relationship46);
399 arm::pipe::ITimelineDecoder::Relationship relationship47;
400 relationship47.m_Guid = uint64_t(47);
401 relationship47.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
402 relationship47.m_HeadGuid = uint64_t(2);
403 relationship47.m_TailGuid = uint64_t(42);
404 timelineDecoder.CreateRelationship(relationship47);
406 arm::pipe::ITimelineDecoder::Entity entity48;
407 entity48.m_Guid = uint64_t(48);
408 timelineDecoder.CreateEntity(entity48);
410 arm::pipe::ITimelineDecoder::Relationship relationship49;
411 relationship49.m_Guid = uint64_t(49);
412 relationship49.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
413 relationship49.m_HeadGuid = uint64_t(48);
414 relationship49.m_TailGuid = uint64_t(15026600058430441282U);
415 timelineDecoder.CreateRelationship(relationship49);
417 arm::pipe::ITimelineDecoder::Relationship relationship50;
418 relationship50.m_Guid = uint64_t(50);
419 relationship50.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
420 relationship50.m_HeadGuid = uint64_t(49);
421 relationship50.m_TailGuid = uint64_t(14196220359693045352U);
422 timelineDecoder.CreateRelationship(relationship50);
424 arm::pipe::ITimelineDecoder::Relationship relationship51;
425 relationship51.m_Guid = uint64_t(51);
426 relationship51.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
427 relationship51.m_HeadGuid = uint64_t(6);
428 relationship51.m_TailGuid = uint64_t(48);
429 timelineDecoder.CreateRelationship(relationship51);
431 arm::pipe::ITimelineDecoder::Relationship relationship53;
432 relationship53.m_Guid = uint64_t(53);
433 relationship53.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
434 relationship53.m_HeadGuid = uint64_t(48);
435 relationship53.m_TailGuid = uint64_t(52);
436 timelineDecoder.CreateRelationship(relationship53);
438 arm::pipe::ITimelineDecoder::Relationship relationship54;
439 relationship54.m_Guid = uint64_t(54);
440 relationship54.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
441 relationship54.m_HeadGuid = uint64_t(52);
442 relationship54.m_TailGuid = uint64_t(17170418158534996719U);
443 timelineDecoder.CreateRelationship(relationship54);
446 arm::pipe::ITimelineDecoder::Entity entity55;
447 entity55.m_Guid = uint64_t(55);
448 timelineDecoder.CreateEntity(entity55);
450 arm::pipe::ITimelineDecoder::Relationship relationship56;
451 relationship56.m_Guid = uint64_t(56);
452 relationship56.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
453 relationship56.m_HeadGuid = uint64_t(55);
454 relationship56.m_TailGuid = uint64_t(10172155312650606003U);
455 timelineDecoder.CreateRelationship(relationship56);
457 arm::pipe::ITimelineDecoder::Relationship relationship57;
458 relationship57.m_Guid = uint64_t(57);
459 relationship57.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
460 relationship57.m_HeadGuid = uint64_t(56);
461 relationship57.m_TailGuid = uint64_t(14196220359693045352U);
462 timelineDecoder.CreateRelationship(relationship57);
464 arm::pipe::ITimelineDecoder::Relationship relationship58;
465 relationship58.m_Guid = uint64_t(58);
466 relationship58.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
467 relationship58.m_HeadGuid = uint64_t(48);
468 relationship58.m_TailGuid = uint64_t(55);
469 timelineDecoder.CreateRelationship(relationship58);
471 arm::pipe::ITimelineDecoder::Relationship relationship59;
472 relationship59.m_Guid = uint64_t(59);
473 relationship59.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
474 relationship59.m_HeadGuid = uint64_t(36);
475 relationship59.m_TailGuid = uint64_t(55);
476 timelineDecoder.CreateRelationship(relationship59);
478 arm::pipe::ITimelineDecoder::Event event60;
479 event60.m_Guid = uint64_t(60);
480 event60.m_TimeStamp = uint64_t(96557081111036);
481 event60.m_ThreadId = uint64_t(140522431862592);
482 timelineDecoder.CreateEvent(event60);
484 arm::pipe::ITimelineDecoder::Relationship relationship61;
485 relationship61.m_Guid = uint64_t(61);
486 relationship61.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
487 relationship61.m_HeadGuid = uint64_t(55);
488 relationship61.m_TailGuid = uint64_t(60);
489 timelineDecoder.CreateRelationship(relationship61);
491 arm::pipe::ITimelineDecoder::Relationship relationship62;
492 relationship62.m_Guid = uint64_t(62);
493 relationship62.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
494 relationship62.m_HeadGuid = uint64_t(60);
495 relationship62.m_TailGuid = uint64_t(17170418158534996719U);
496 timelineDecoder.CreateRelationship(relationship62);
498 arm::pipe::ITimelineDecoder::Event event63;
499 event63.m_Guid = uint64_t(63);
500 event63.m_TimeStamp = uint64_t(96557081149730);
501 event63.m_ThreadId = uint64_t(140522431862592);
502 timelineDecoder.CreateEvent(event63);
504 arm::pipe::ITimelineDecoder::Relationship relationship64;
505 relationship64.m_Guid = uint64_t(61);
506 relationship64.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
507 relationship64.m_HeadGuid = uint64_t(55);
508 relationship64.m_TailGuid = uint64_t(63);
509 timelineDecoder.CreateRelationship(relationship64);
511 arm::pipe::ITimelineDecoder::Relationship relationship65;
512 relationship65.m_Guid = uint64_t(62);
513 relationship65.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
514 relationship65.m_HeadGuid = uint64_t(63);
515 relationship65.m_TailGuid = uint64_t(10812061579584851344U);
516 timelineDecoder.CreateRelationship(relationship65);
519 arm::pipe::ITimelineDecoder::Entity entity66;
520 entity66.m_Guid = uint64_t(66);
521 timelineDecoder.CreateEntity(entity66);
523 arm::pipe::ITimelineDecoder::Relationship relationship67;
524 relationship67.m_Guid = uint64_t(67);
525 relationship67.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
526 relationship67.m_HeadGuid = uint64_t(66);
527 relationship67.m_TailGuid = uint64_t(10172155312650606003U);
528 timelineDecoder.CreateRelationship(relationship67);
530 arm::pipe::ITimelineDecoder::Relationship relationship68;
531 relationship68.m_Guid = uint64_t(68);
532 relationship68.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
533 relationship68.m_HeadGuid = uint64_t(67);
534 relationship68.m_TailGuid = uint64_t(14196220359693045352U);
535 timelineDecoder.CreateRelationship(relationship68);
537 arm::pipe::ITimelineDecoder::Relationship relationship69;
538 relationship69.m_Guid = uint64_t(69);
539 relationship69.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
540 relationship69.m_HeadGuid = uint64_t(48);
541 relationship69.m_TailGuid = uint64_t(66);
542 timelineDecoder.CreateRelationship(relationship69);
544 arm::pipe::ITimelineDecoder::Relationship relationship70;
545 relationship70.m_Guid = uint64_t(70);
546 relationship70.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
547 relationship70.m_HeadGuid = uint64_t(22);
548 relationship70.m_TailGuid = uint64_t(66);
549 timelineDecoder.CreateRelationship(relationship70);
552 arm::pipe::ITimelineDecoder::Event event71;
553 event71.m_Guid = uint64_t(71);
554 event71.m_TimeStamp = uint64_t(96557081156464);
555 event71.m_ThreadId = uint64_t(140522431862592);
556 timelineDecoder.CreateEvent(event71);
558 arm::pipe::ITimelineDecoder::Relationship relationship72;
559 relationship72.m_Guid = uint64_t(72);
560 relationship72.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
561 relationship72.m_HeadGuid = uint64_t(66);
562 relationship72.m_TailGuid = uint64_t(71);
563 timelineDecoder.CreateRelationship(relationship72);
565 arm::pipe::ITimelineDecoder::Relationship relationship73;
566 relationship73.m_Guid = uint64_t(73);
567 relationship73.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
568 relationship73.m_HeadGuid = uint64_t(71);
569 relationship73.m_TailGuid = uint64_t(17170418158534996719U);
570 timelineDecoder.CreateRelationship(relationship73);
572 arm::pipe::ITimelineDecoder::Event event74;
573 event74.m_Guid = uint64_t(74);
574 event74.m_TimeStamp = uint64_t(96557081220825);
575 event74.m_ThreadId = uint64_t(140522431862592);
576 timelineDecoder.CreateEvent(event74);
578 arm::pipe::ITimelineDecoder::Relationship relationship75;
579 relationship75.m_Guid = uint64_t(75);
580 relationship75.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
581 relationship75.m_HeadGuid = uint64_t(66);
582 relationship75.m_TailGuid = uint64_t(74);
583 timelineDecoder.CreateRelationship(relationship75);
585 arm::pipe::ITimelineDecoder::Relationship relationship76;
586 relationship76.m_Guid = uint64_t(76);
587 relationship76.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
588 relationship76.m_HeadGuid = uint64_t(74);
589 relationship76.m_TailGuid = uint64_t(10812061579584851344U);
590 timelineDecoder.CreateRelationship(relationship76);
592 arm::pipe::ITimelineDecoder::Entity entity77;
593 entity77.m_Guid = uint64_t(77);
594 timelineDecoder.CreateEntity(entity77);
596 arm::pipe::ITimelineDecoder::Relationship relationship78;
597 relationship78.m_Guid = uint64_t(78);
598 relationship78.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
599 relationship78.m_HeadGuid = uint64_t(77);
600 relationship78.m_TailGuid = uint64_t(10172155312650606003U);
601 timelineDecoder.CreateRelationship(relationship78);
603 arm::pipe::ITimelineDecoder::Relationship relationship79;
604 relationship79.m_Guid = uint64_t(79);
605 relationship79.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
606 relationship79.m_HeadGuid = uint64_t(78);
607 relationship79.m_TailGuid = uint64_t(14196220359693045352U);
608 timelineDecoder.CreateRelationship(relationship79);
610 arm::pipe::ITimelineDecoder::Relationship relationship80;
611 relationship80.m_Guid = uint64_t(80);
612 relationship80.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
613 relationship80.m_HeadGuid = uint64_t(48);
614 relationship80.m_TailGuid = uint64_t(77);
615 timelineDecoder.CreateRelationship(relationship80);
617 arm::pipe::ITimelineDecoder::Relationship relationship81;
618 relationship81.m_Guid = uint64_t(81);
619 relationship81.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
620 relationship81.m_HeadGuid = uint64_t(42);
621 relationship81.m_TailGuid = uint64_t(77);
622 timelineDecoder.CreateRelationship(relationship81);
624 arm::pipe::ITimelineDecoder::Event event82;
625 event82.m_Guid = uint64_t(82);
626 event82.m_TimeStamp = uint64_t(96557081227643);
627 event82.m_ThreadId = uint64_t(140522431862592);
628 timelineDecoder.CreateEvent(event82);
630 arm::pipe::ITimelineDecoder::Relationship relationship83;
631 relationship83.m_Guid = uint64_t(83);
632 relationship83.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
633 relationship83.m_HeadGuid = uint64_t(77);
634 relationship83.m_TailGuid = uint64_t(82);
635 timelineDecoder.CreateRelationship(relationship83);
637 arm::pipe::ITimelineDecoder::Relationship relationship84;
638 relationship84.m_Guid = uint64_t(84);
639 relationship84.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
640 relationship84.m_HeadGuid = uint64_t(82);
641 relationship84.m_TailGuid = uint64_t(17170418158534996719U);
642 timelineDecoder.CreateRelationship(relationship84);
644 arm::pipe::ITimelineDecoder::Event event85;
645 event85.m_Guid = uint64_t(85);
646 event85.m_TimeStamp = uint64_t(96557081240332);
647 event85.m_ThreadId = uint64_t(140522431862592);
648 timelineDecoder.CreateEvent(event85);
650 arm::pipe::ITimelineDecoder::Relationship relationship86;
651 relationship86.m_Guid = uint64_t(86);
652 relationship86.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
653 relationship86.m_HeadGuid = uint64_t(77);
654 relationship86.m_TailGuid = uint64_t(85);
655 timelineDecoder.CreateRelationship(relationship86);
657 arm::pipe::ITimelineDecoder::Relationship relationship87;
658 relationship87.m_Guid = uint64_t(87);
659 relationship87.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
660 relationship87.m_HeadGuid = uint64_t(85);
661 relationship87.m_TailGuid = uint64_t(10812061579584851344U);
662 timelineDecoder.CreateRelationship(relationship87);
664 arm::pipe::ITimelineDecoder::Event event88;
665 event88.m_Guid = uint64_t(88);
666 event88.m_TimeStamp = uint64_t(96557081243146);
667 event88.m_ThreadId = uint64_t(140522431862592);
668 timelineDecoder.CreateEvent(event88);
670 arm::pipe::ITimelineDecoder::Relationship relationship89;
671 relationship89.m_Guid = uint64_t(89);
672 relationship89.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
673 relationship89.m_HeadGuid = uint64_t(48);
674 relationship89.m_TailGuid = uint64_t(88);
675 timelineDecoder.CreateRelationship(relationship89);
677 arm::pipe::ITimelineDecoder::Relationship relationship90;
678 relationship90.m_Guid = uint64_t(90);
679 relationship90.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
680 relationship90.m_HeadGuid = uint64_t(88);
681 relationship90.m_TailGuid = uint64_t(10812061579584851344U);
682 timelineDecoder.CreateRelationship(relationship90);
685 TEST_CASE(
"JSONTimelineDecoderTestStructure")
687 JSONTimelineDecoder timelineDecoder;
688 RunSimpleModelThroughDecoder(timelineDecoder);
691 CHECK(model.jsonEntities.size() == 20);
692 JSONTimelineDecoder::JSONEntity rootEntity = model.jsonEntities.at(6);
693 CHECK(rootEntity.childEntities.size() == 4);
696 JSONTimelineDecoder::JSONEntity entity0 = model.jsonEntities.at(rootEntity.childEntities[0]);
697 CHECK(entity0.GetName() ==
"input");
698 CHECK(entity0.GetType() ==
"layer");
700 CHECK(entity0.childEntities.size() == 1);
701 JSONTimelineDecoder::JSONEntity input_workload_entity = model.jsonEntities.at(entity0.childEntities[0]);
702 CHECK(input_workload_entity.childEntities.size() == 1);
703 CHECK(input_workload_entity.GetType() ==
"workload");
704 CHECK(input_workload_entity.extendedData.at(
"backendId") ==
"CpuRef");
706 JSONTimelineDecoder::JSONEntity input_workload_execution_entity = model.jsonEntities
707 .at(input_workload_entity.childEntities[0]);
708 CHECK(input_workload_execution_entity.childEntities.size() == 2);
709 CHECK(input_workload_execution_entity.GetType() ==
"workload_execution");
711 JSONTimelineDecoder::JSONEntity input_workload_execution_event0 = model.jsonEntities
712 .at(input_workload_execution_entity.childEntities[0]);
713 CHECK(input_workload_execution_event0.GetType() ==
"Event");
714 CHECK(input_workload_execution_event0.childEntities.size() == 0);
715 CHECK(model.events.at(input_workload_execution_event0.GetGuid()).m_ThreadId > uint64_t(0));
716 CHECK(model.events.at(input_workload_execution_event0.GetGuid()).m_TimeStamp > uint64_t(0));
718 JSONTimelineDecoder::JSONEntity input_workload_execution_event1 = model.jsonEntities
719 .at(input_workload_execution_entity.childEntities[1]);
720 CHECK(input_workload_execution_event0.GetType() ==
"Event");
721 CHECK(input_workload_execution_event1.childEntities.size() == 0);
722 CHECK(model.events.at(input_workload_execution_event1.GetGuid()).m_ThreadId > uint64_t(0));
723 CHECK(model.events.at(input_workload_execution_event1.GetGuid()).m_TimeStamp > uint64_t(0));
726 JSONTimelineDecoder::JSONEntity entity1 = model.jsonEntities.at(rootEntity.childEntities[1]);
727 CHECK(entity1.GetName() ==
"normalization");
728 CHECK(entity1.GetType() ==
"layer");
730 JSONTimelineDecoder::JSONEntity normalization_workload_entity = model.jsonEntities
731 .at(entity1.childEntities[0]);
732 CHECK(normalization_workload_entity.GetType() ==
"workload");
733 CHECK(normalization_workload_entity.extendedData.at(
"backendId") ==
"CpuRef");
735 JSONTimelineDecoder::JSONEntity normalization_workload_execution_entity = model.jsonEntities
736 .at(normalization_workload_entity.childEntities[0]);
737 CHECK(normalization_workload_execution_entity.GetType() ==
"workload_execution");
739 JSONTimelineDecoder::JSONEntity normalization_workload_execution_event0 = model.jsonEntities
740 .at(normalization_workload_execution_entity.childEntities[0]);
741 CHECK(normalization_workload_execution_event0.GetType() ==
"Event");
742 CHECK(model.events.at(normalization_workload_execution_event0.GetGuid()).m_ThreadId > uint64_t(0));
743 CHECK(model.events.at(normalization_workload_execution_event0.GetGuid()).m_TimeStamp > uint64_t(0));
745 JSONTimelineDecoder::JSONEntity normalization_workload_execution_event1 = model.jsonEntities
746 .at(normalization_workload_execution_entity.childEntities[1]);
747 CHECK(normalization_workload_execution_event1.GetType() ==
"Event");
748 CHECK(model.events.at(normalization_workload_execution_event1.GetGuid()).m_ThreadId > uint64_t(0));
749 CHECK(model.events.at(normalization_workload_execution_event1.GetGuid()).m_TimeStamp > uint64_t(0));
752 JSONTimelineDecoder::JSONEntity entity2 = model.jsonEntities.at(rootEntity.childEntities[2]);
753 CHECK(entity2.GetName() ==
"output");
754 CHECK(entity2.GetType() ==
"layer");
756 JSONTimelineDecoder::JSONEntity output_workload_entity = model.jsonEntities.at(entity2.childEntities[0]);
757 CHECK(output_workload_entity.GetType() ==
"workload");
758 CHECK(output_workload_entity.extendedData.at(
"backendId") ==
"CpuRef");
760 JSONTimelineDecoder::JSONEntity output_workload_execution_entity = model.jsonEntities
761 .at(output_workload_entity.childEntities[0]);
762 CHECK(output_workload_execution_entity.GetType() ==
"workload_execution");
764 JSONTimelineDecoder::JSONEntity output_workload_execution_event0 = model.jsonEntities
765 .at(output_workload_execution_entity.childEntities[0]);
766 CHECK(output_workload_execution_event0.GetType() ==
"Event");
767 CHECK(model.events.at(output_workload_execution_event0.GetGuid()).m_ThreadId > uint64_t(0));
768 CHECK(model.events.at(output_workload_execution_event0.GetGuid()).m_TimeStamp > uint64_t(0));
770 JSONTimelineDecoder::JSONEntity output_workload_execution_event1 = model.jsonEntities
771 .at(output_workload_execution_entity.childEntities[1]);
772 CHECK(output_workload_execution_event1.GetType() ==
"Event");
773 CHECK(model.events.at(output_workload_execution_event1.GetGuid()).m_ThreadId > uint64_t(0));
774 CHECK(model.events.at(output_workload_execution_event1.GetGuid()).m_TimeStamp > uint64_t(0));
776 JSONTimelineDecoder::JSONEntity entity48 = model.jsonEntities.at(rootEntity.childEntities[3]);
777 CHECK(entity48.GetName() ==
"");
778 CHECK(entity48.GetType() ==
"inference");
781 TEST_CASE(
"JSONTimelineDecoderTestJSON")
783 JSONTimelineDecoder timelineDecoder;
784 RunSimpleModelThroughDecoder(timelineDecoder);
787 JSONTimelineDecoder::JSONEntity rootEntity = model.jsonEntities.at(6);
789 std::string jsonString = timelineDecoder.GetJSONString(rootEntity);
790 CHECK(jsonString !=
"");
791 CHECK(jsonString.find(
"input_0: {")!=std::string::npos);
792 CHECK(jsonString.find(
"type: Measurement,\n"
793 "\t\t\tbackendId :CpuRef,")!=std::string::npos);
794 CHECK(jsonString.find(
"normalization_2: {")!=std::string::npos);
795 CHECK(jsonString.find(
"output_4: {")!=std::string::npos);
800 std::ofstream ofs{tempFile};
802 timelineDecoder.PrintJSON(rootEntity, ofs);
809 inFile.open(tempFile);
811 std::stringstream strStream;
812 strStream << inFile.rdbuf();
814 std::string outfileJson = strStream.str();
816 CHECK(outfileJson !=
"");
817 CHECK(outfileJson.find(
"input_0: {")!=std::string::npos);
818 CHECK(outfileJson.find(
"type: Measurement,\n"
819 "\t\t\tbackendId :CpuRef,")!=std::string::npos);
820 CHECK(outfileJson.find(
"normalization_2: {")!=std::string::npos);
821 CHECK(outfileJson.find(
"output_4: {")!=std::string::npos);
824 fs::remove(tempFile);