xref: /aosp_15_r20/external/armnn/src/timelineDecoder/tests/JSONTimelineDecoderTests.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #include <JSONTimelineDecoder.hpp>
7*89c4ff92SAndroid Build Coastguard Worker #include <server/include/timelineDecoder/TimelineCaptureCommandHandler.hpp>
8*89c4ff92SAndroid Build Coastguard Worker #include <server/include/timelineDecoder/TimelineDecoder.hpp>
9*89c4ff92SAndroid Build Coastguard Worker #include <armnnUtils/Filesystem.hpp>
10*89c4ff92SAndroid Build Coastguard Worker 
11*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h>
12*89c4ff92SAndroid Build Coastguard Worker 
13*89c4ff92SAndroid Build Coastguard Worker #include <fstream>
14*89c4ff92SAndroid Build Coastguard Worker 
15*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("JSONTimelineDecoderTests")
16*89c4ff92SAndroid Build Coastguard Worker {
17*89c4ff92SAndroid Build Coastguard Worker using namespace armnn;
18*89c4ff92SAndroid Build Coastguard Worker using namespace timelinedecoder;
19*89c4ff92SAndroid Build Coastguard Worker 
RunSimpleModelThroughDecoder(JSONTimelineDecoder & timelineDecoder)20*89c4ff92SAndroid Build Coastguard Worker void RunSimpleModelThroughDecoder(JSONTimelineDecoder& timelineDecoder)
21*89c4ff92SAndroid Build Coastguard Worker {
22*89c4ff92SAndroid Build Coastguard Worker     /*
23*89c4ff92SAndroid Build Coastguard Worker     * Building Simple model structure to test
24*89c4ff92SAndroid Build Coastguard Worker     */
25*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label name;
26*89c4ff92SAndroid Build Coastguard Worker     name.m_Guid = uint64_t(10420554295983197538U);
27*89c4ff92SAndroid Build Coastguard Worker     name.m_Name = "name";
28*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(name);
29*89c4ff92SAndroid Build Coastguard Worker 
30*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label type;
31*89c4ff92SAndroid Build Coastguard Worker     type.m_Guid = uint64_t(14196220359693045352U);
32*89c4ff92SAndroid Build Coastguard Worker     type.m_Name = "type";
33*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(type);
34*89c4ff92SAndroid Build Coastguard Worker 
35*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label index;
36*89c4ff92SAndroid Build Coastguard Worker     index.m_Guid = uint64_t(13922236767355949814U);
37*89c4ff92SAndroid Build Coastguard Worker     index.m_Name = "index";
38*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(index);
39*89c4ff92SAndroid Build Coastguard Worker 
40*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label backendId;
41*89c4ff92SAndroid Build Coastguard Worker     backendId.m_Guid = uint64_t(10874037804557439415U);
42*89c4ff92SAndroid Build Coastguard Worker     backendId.m_Name = "backendId";
43*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(backendId);
44*89c4ff92SAndroid Build Coastguard Worker 
45*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label layer;
46*89c4ff92SAndroid Build Coastguard Worker     layer.m_Guid = uint64_t(14761340794127440397U);
47*89c4ff92SAndroid Build Coastguard Worker     layer.m_Name = "layer";
48*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(layer);
49*89c4ff92SAndroid Build Coastguard Worker 
50*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label workload;
51*89c4ff92SAndroid Build Coastguard Worker     workload.m_Guid = uint64_t(15704252740552608110U);
52*89c4ff92SAndroid Build Coastguard Worker     workload.m_Name = "workload";
53*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(workload);
54*89c4ff92SAndroid Build Coastguard Worker 
55*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label network;
56*89c4ff92SAndroid Build Coastguard Worker     network.m_Guid = uint64_t(16862199137063532871U);
57*89c4ff92SAndroid Build Coastguard Worker     network.m_Name = "network";
58*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(network);
59*89c4ff92SAndroid Build Coastguard Worker 
60*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label connection;
61*89c4ff92SAndroid Build Coastguard Worker     connection.m_Guid = uint64_t(15733717748792475675U);
62*89c4ff92SAndroid Build Coastguard Worker     connection.m_Name = "connection";
63*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(connection);
64*89c4ff92SAndroid Build Coastguard Worker 
65*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label inference;
66*89c4ff92SAndroid Build Coastguard Worker     inference.m_Guid = uint64_t(15026600058430441282U);
67*89c4ff92SAndroid Build Coastguard Worker     inference.m_Name = "inference";
68*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(inference);
69*89c4ff92SAndroid Build Coastguard Worker 
70*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label workload_execution;
71*89c4ff92SAndroid Build Coastguard Worker     workload_execution.m_Guid = uint64_t(10172155312650606003U);
72*89c4ff92SAndroid Build Coastguard Worker     workload_execution.m_Name = "workload_execution";
73*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(workload_execution);
74*89c4ff92SAndroid Build Coastguard Worker 
75*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::EventClass eventClass1;
76*89c4ff92SAndroid Build Coastguard Worker     eventClass1.m_Guid = uint64_t(17170418158534996719U);
77*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEventClass(eventClass1);
78*89c4ff92SAndroid Build Coastguard Worker 
79*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::EventClass eventClass2;
80*89c4ff92SAndroid Build Coastguard Worker     eventClass2.m_Guid = uint64_t(10812061579584851344U);
81*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEventClass(eventClass2);
82*89c4ff92SAndroid Build Coastguard Worker 
83*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Entity entity6;
84*89c4ff92SAndroid Build Coastguard Worker     entity6.m_Guid = uint64_t(6);
85*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEntity(entity6);
86*89c4ff92SAndroid Build Coastguard Worker 
87*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship7;
88*89c4ff92SAndroid Build Coastguard Worker     relationship7.m_Guid = uint64_t(7);
89*89c4ff92SAndroid Build Coastguard Worker     relationship7.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
90*89c4ff92SAndroid Build Coastguard Worker     relationship7.m_HeadGuid = uint64_t(6);
91*89c4ff92SAndroid Build Coastguard Worker     relationship7.m_TailGuid = uint64_t(16862199137063532871U);
92*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship7);
93*89c4ff92SAndroid Build Coastguard Worker 
94*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship8;
95*89c4ff92SAndroid Build Coastguard Worker     relationship8.m_Guid = uint64_t(8);
96*89c4ff92SAndroid Build Coastguard Worker     relationship8.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
97*89c4ff92SAndroid Build Coastguard Worker     relationship8.m_HeadGuid = uint64_t(7);
98*89c4ff92SAndroid Build Coastguard Worker     relationship8.m_TailGuid = uint64_t(14196220359693045352U);
99*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship8);
100*89c4ff92SAndroid Build Coastguard Worker 
101*89c4ff92SAndroid Build Coastguard Worker     // Adding normalization layer
102*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Entity entity0;
103*89c4ff92SAndroid Build Coastguard Worker     entity0.m_Guid = uint64_t(0);
104*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEntity(entity0);
105*89c4ff92SAndroid Build Coastguard Worker 
106*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label input;
107*89c4ff92SAndroid Build Coastguard Worker     input.m_Guid = uint64_t(18179123836411086572U);
108*89c4ff92SAndroid Build Coastguard Worker     input.m_Name = "input";
109*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(input);
110*89c4ff92SAndroid Build Coastguard Worker 
111*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship9;
112*89c4ff92SAndroid Build Coastguard Worker     relationship9.m_Guid = uint64_t(9);
113*89c4ff92SAndroid Build Coastguard Worker     relationship9.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
114*89c4ff92SAndroid Build Coastguard Worker     relationship9.m_HeadGuid = uint64_t(0);
115*89c4ff92SAndroid Build Coastguard Worker     relationship9.m_TailGuid = uint64_t(18179123836411086572U);
116*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship9);
117*89c4ff92SAndroid Build Coastguard Worker 
118*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship10;
119*89c4ff92SAndroid Build Coastguard Worker     relationship10.m_Guid = uint64_t(10);
120*89c4ff92SAndroid Build Coastguard Worker     relationship10.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
121*89c4ff92SAndroid Build Coastguard Worker     relationship10.m_HeadGuid = uint64_t(9);
122*89c4ff92SAndroid Build Coastguard Worker     relationship10.m_TailGuid = uint64_t(10420554295983197538U);
123*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship10);
124*89c4ff92SAndroid Build Coastguard Worker 
125*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship11;
126*89c4ff92SAndroid Build Coastguard Worker     relationship11.m_Guid = uint64_t(11);
127*89c4ff92SAndroid Build Coastguard Worker     relationship11.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
128*89c4ff92SAndroid Build Coastguard Worker     relationship11.m_HeadGuid = uint64_t(0);
129*89c4ff92SAndroid Build Coastguard Worker     relationship11.m_TailGuid = uint64_t(14761340794127440397U);
130*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship11);
131*89c4ff92SAndroid Build Coastguard Worker 
132*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship12;
133*89c4ff92SAndroid Build Coastguard Worker     relationship12.m_Guid = uint64_t(12);
134*89c4ff92SAndroid Build Coastguard Worker     relationship12.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
135*89c4ff92SAndroid Build Coastguard Worker     relationship12.m_HeadGuid = uint64_t(11);
136*89c4ff92SAndroid Build Coastguard Worker     relationship12.m_TailGuid = uint64_t(14196220359693045352U);
137*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship12);
138*89c4ff92SAndroid Build Coastguard Worker 
139*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship13;
140*89c4ff92SAndroid Build Coastguard Worker     relationship13.m_Guid = uint64_t(13);
141*89c4ff92SAndroid Build Coastguard Worker     relationship13.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
142*89c4ff92SAndroid Build Coastguard Worker     relationship13.m_HeadGuid = uint64_t(6);
143*89c4ff92SAndroid Build Coastguard Worker     relationship13.m_TailGuid = uint64_t(0);
144*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship13);
145*89c4ff92SAndroid Build Coastguard Worker 
146*89c4ff92SAndroid Build Coastguard Worker 
147*89c4ff92SAndroid Build Coastguard Worker     // Adding normalization layer
148*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Entity entity1;
149*89c4ff92SAndroid Build Coastguard Worker     entity1.m_Guid = uint64_t(1);
150*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEntity(entity1);
151*89c4ff92SAndroid Build Coastguard Worker 
152*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label normalization;
153*89c4ff92SAndroid Build Coastguard Worker     normalization.m_Guid = uint64_t(15955949569988957863U);
154*89c4ff92SAndroid Build Coastguard Worker     normalization.m_Name = "normalization";
155*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(normalization);
156*89c4ff92SAndroid Build Coastguard Worker 
157*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship14;
158*89c4ff92SAndroid Build Coastguard Worker     relationship14.m_Guid = uint64_t(14);
159*89c4ff92SAndroid Build Coastguard Worker     relationship14.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
160*89c4ff92SAndroid Build Coastguard Worker     relationship14.m_HeadGuid = uint64_t(1);
161*89c4ff92SAndroid Build Coastguard Worker     relationship14.m_TailGuid = uint64_t(15955949569988957863U);
162*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship14);
163*89c4ff92SAndroid Build Coastguard Worker 
164*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship15;
165*89c4ff92SAndroid Build Coastguard Worker     relationship15.m_Guid = uint64_t(15);
166*89c4ff92SAndroid Build Coastguard Worker     relationship15.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
167*89c4ff92SAndroid Build Coastguard Worker     relationship15.m_HeadGuid = uint64_t(14);
168*89c4ff92SAndroid Build Coastguard Worker     relationship15.m_TailGuid = uint64_t(10420554295983197538U);
169*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship15);
170*89c4ff92SAndroid Build Coastguard Worker 
171*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship16;
172*89c4ff92SAndroid Build Coastguard Worker     relationship16.m_Guid = uint64_t(16);
173*89c4ff92SAndroid Build Coastguard Worker     relationship16.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
174*89c4ff92SAndroid Build Coastguard Worker     relationship16.m_HeadGuid = uint64_t(1);
175*89c4ff92SAndroid Build Coastguard Worker     relationship16.m_TailGuid = uint64_t(14761340794127440397U);
176*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship16);
177*89c4ff92SAndroid Build Coastguard Worker 
178*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship17;
179*89c4ff92SAndroid Build Coastguard Worker     relationship17.m_Guid = uint64_t(17);
180*89c4ff92SAndroid Build Coastguard Worker     relationship17.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
181*89c4ff92SAndroid Build Coastguard Worker     relationship17.m_HeadGuid = uint64_t(16);
182*89c4ff92SAndroid Build Coastguard Worker     relationship17.m_TailGuid = uint64_t(14196220359693045352U);
183*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship17);
184*89c4ff92SAndroid Build Coastguard Worker 
185*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship18;
186*89c4ff92SAndroid Build Coastguard Worker     relationship18.m_Guid = uint64_t(18);
187*89c4ff92SAndroid Build Coastguard Worker     relationship18.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
188*89c4ff92SAndroid Build Coastguard Worker     relationship18.m_HeadGuid = uint64_t(6);
189*89c4ff92SAndroid Build Coastguard Worker     relationship18.m_TailGuid = uint64_t(1);
190*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship18);
191*89c4ff92SAndroid Build Coastguard Worker 
192*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship19;
193*89c4ff92SAndroid Build Coastguard Worker     relationship19.m_Guid = uint64_t(19);
194*89c4ff92SAndroid Build Coastguard Worker     relationship19.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
195*89c4ff92SAndroid Build Coastguard Worker     relationship19.m_HeadGuid = uint64_t(0);
196*89c4ff92SAndroid Build Coastguard Worker     relationship19.m_TailGuid = uint64_t(1);
197*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship19);
198*89c4ff92SAndroid Build Coastguard Worker 
199*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship20;
200*89c4ff92SAndroid Build Coastguard Worker     relationship20.m_Guid = uint64_t(20);
201*89c4ff92SAndroid Build Coastguard Worker     relationship20.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
202*89c4ff92SAndroid Build Coastguard Worker     relationship20.m_HeadGuid = uint64_t(19);
203*89c4ff92SAndroid Build Coastguard Worker     relationship20.m_TailGuid = uint64_t(15733717748792475675U);
204*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship20);
205*89c4ff92SAndroid Build Coastguard Worker 
206*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship21;
207*89c4ff92SAndroid Build Coastguard Worker     relationship21.m_Guid = uint64_t(21);
208*89c4ff92SAndroid Build Coastguard Worker     relationship21.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
209*89c4ff92SAndroid Build Coastguard Worker     relationship21.m_HeadGuid = uint64_t(20);
210*89c4ff92SAndroid Build Coastguard Worker     relationship21.m_TailGuid = uint64_t(14196220359693045352U);
211*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship21);
212*89c4ff92SAndroid Build Coastguard Worker 
213*89c4ff92SAndroid Build Coastguard Worker 
214*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Entity entity22;
215*89c4ff92SAndroid Build Coastguard Worker     entity22.m_Guid = uint64_t(22);
216*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEntity(entity22);
217*89c4ff92SAndroid Build Coastguard Worker 
218*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship23;
219*89c4ff92SAndroid Build Coastguard Worker     relationship23.m_Guid = uint64_t(23);
220*89c4ff92SAndroid Build Coastguard Worker     relationship23.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
221*89c4ff92SAndroid Build Coastguard Worker     relationship23.m_HeadGuid = uint64_t(22);
222*89c4ff92SAndroid Build Coastguard Worker     relationship23.m_TailGuid = uint64_t(15704252740552608110U);
223*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship23);
224*89c4ff92SAndroid Build Coastguard Worker 
225*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship24;
226*89c4ff92SAndroid Build Coastguard Worker     relationship24.m_Guid = uint64_t(24);
227*89c4ff92SAndroid Build Coastguard Worker     relationship24.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
228*89c4ff92SAndroid Build Coastguard Worker     relationship24.m_HeadGuid = uint64_t(23);
229*89c4ff92SAndroid Build Coastguard Worker     relationship24.m_TailGuid = uint64_t(14196220359693045352U);
230*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship24);
231*89c4ff92SAndroid Build Coastguard Worker 
232*89c4ff92SAndroid Build Coastguard Worker 
233*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label CpuRef;
234*89c4ff92SAndroid Build Coastguard Worker     CpuRef.m_Guid = uint64_t(9690680943817437852U);
235*89c4ff92SAndroid Build Coastguard Worker     CpuRef.m_Name = "CpuRef";
236*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(CpuRef);
237*89c4ff92SAndroid Build Coastguard Worker 
238*89c4ff92SAndroid Build Coastguard Worker 
239*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship25;
240*89c4ff92SAndroid Build Coastguard Worker     relationship25.m_Guid = uint64_t(25);
241*89c4ff92SAndroid Build Coastguard Worker     relationship25.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
242*89c4ff92SAndroid Build Coastguard Worker     relationship25.m_HeadGuid = uint64_t(22);
243*89c4ff92SAndroid Build Coastguard Worker     relationship25.m_TailGuid = uint64_t(9690680943817437852U);
244*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship25);
245*89c4ff92SAndroid Build Coastguard Worker 
246*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship26;
247*89c4ff92SAndroid Build Coastguard Worker     relationship26.m_Guid = uint64_t(26);
248*89c4ff92SAndroid Build Coastguard Worker     relationship26.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
249*89c4ff92SAndroid Build Coastguard Worker     relationship26.m_HeadGuid = uint64_t(25);
250*89c4ff92SAndroid Build Coastguard Worker     relationship26.m_TailGuid = uint64_t(10874037804557439415U);
251*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship26);
252*89c4ff92SAndroid Build Coastguard Worker 
253*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship27;
254*89c4ff92SAndroid Build Coastguard Worker     relationship27.m_Guid = uint64_t(27);
255*89c4ff92SAndroid Build Coastguard Worker     relationship27.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink   ;
256*89c4ff92SAndroid Build Coastguard Worker     relationship27.m_HeadGuid = uint64_t(1);
257*89c4ff92SAndroid Build Coastguard Worker     relationship27.m_TailGuid = uint64_t(22);
258*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship27);
259*89c4ff92SAndroid Build Coastguard Worker 
260*89c4ff92SAndroid Build Coastguard Worker     // Adding output layer
261*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Entity entity2;
262*89c4ff92SAndroid Build Coastguard Worker     entity2.m_Guid = uint64_t(2);
263*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEntity(entity2);
264*89c4ff92SAndroid Build Coastguard Worker 
265*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Label output;
266*89c4ff92SAndroid Build Coastguard Worker     output.m_Guid = uint64_t(18419179028513879730U);
267*89c4ff92SAndroid Build Coastguard Worker     output.m_Name = "output";
268*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateLabel(output);
269*89c4ff92SAndroid Build Coastguard Worker 
270*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship28;
271*89c4ff92SAndroid Build Coastguard Worker     relationship28.m_Guid = uint64_t(28);
272*89c4ff92SAndroid Build Coastguard Worker     relationship28.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
273*89c4ff92SAndroid Build Coastguard Worker     relationship28.m_HeadGuid = uint64_t(2);
274*89c4ff92SAndroid Build Coastguard Worker     relationship28.m_TailGuid = uint64_t(18419179028513879730U);
275*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship28);
276*89c4ff92SAndroid Build Coastguard Worker 
277*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship29;
278*89c4ff92SAndroid Build Coastguard Worker     relationship29.m_Guid = uint64_t(29);
279*89c4ff92SAndroid Build Coastguard Worker     relationship29.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
280*89c4ff92SAndroid Build Coastguard Worker     relationship29.m_HeadGuid = uint64_t(28);
281*89c4ff92SAndroid Build Coastguard Worker     relationship29.m_TailGuid = uint64_t(10420554295983197538U);
282*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship29);
283*89c4ff92SAndroid Build Coastguard Worker 
284*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship30;
285*89c4ff92SAndroid Build Coastguard Worker     relationship30.m_Guid = uint64_t(30);
286*89c4ff92SAndroid Build Coastguard Worker     relationship30.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
287*89c4ff92SAndroid Build Coastguard Worker     relationship30.m_HeadGuid = uint64_t(2);
288*89c4ff92SAndroid Build Coastguard Worker     relationship30.m_TailGuid = uint64_t(14761340794127440397U);
289*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship30);
290*89c4ff92SAndroid Build Coastguard Worker 
291*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship31;
292*89c4ff92SAndroid Build Coastguard Worker     relationship31.m_Guid = uint64_t(31);
293*89c4ff92SAndroid Build Coastguard Worker     relationship31.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
294*89c4ff92SAndroid Build Coastguard Worker     relationship31.m_HeadGuid = uint64_t(30);
295*89c4ff92SAndroid Build Coastguard Worker     relationship31.m_TailGuid = uint64_t(14196220359693045352U);
296*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship31);
297*89c4ff92SAndroid Build Coastguard Worker 
298*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship32;
299*89c4ff92SAndroid Build Coastguard Worker     relationship32.m_Guid = uint64_t(32);
300*89c4ff92SAndroid Build Coastguard Worker     relationship32.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
301*89c4ff92SAndroid Build Coastguard Worker     relationship32.m_HeadGuid = uint64_t(6);
302*89c4ff92SAndroid Build Coastguard Worker     relationship32.m_TailGuid = uint64_t(2);
303*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship32);
304*89c4ff92SAndroid Build Coastguard Worker 
305*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship33;
306*89c4ff92SAndroid Build Coastguard Worker     relationship33.m_Guid = uint64_t(33);
307*89c4ff92SAndroid Build Coastguard Worker     relationship33.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
308*89c4ff92SAndroid Build Coastguard Worker     relationship33.m_HeadGuid = uint64_t(1);
309*89c4ff92SAndroid Build Coastguard Worker     relationship33.m_TailGuid = uint64_t(2);
310*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship33);
311*89c4ff92SAndroid Build Coastguard Worker 
312*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship34;
313*89c4ff92SAndroid Build Coastguard Worker     relationship34.m_Guid = uint64_t(34);
314*89c4ff92SAndroid Build Coastguard Worker     relationship34.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
315*89c4ff92SAndroid Build Coastguard Worker     relationship34.m_HeadGuid = uint64_t(33);
316*89c4ff92SAndroid Build Coastguard Worker     relationship34.m_TailGuid = uint64_t(15733717748792475675U);
317*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship34);
318*89c4ff92SAndroid Build Coastguard Worker 
319*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship35;
320*89c4ff92SAndroid Build Coastguard Worker     relationship35.m_Guid = uint64_t(35);
321*89c4ff92SAndroid Build Coastguard Worker     relationship35.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
322*89c4ff92SAndroid Build Coastguard Worker     relationship35.m_HeadGuid = uint64_t(34);
323*89c4ff92SAndroid Build Coastguard Worker     relationship35.m_TailGuid = uint64_t(14196220359693045352U);
324*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship35);
325*89c4ff92SAndroid Build Coastguard Worker 
326*89c4ff92SAndroid Build Coastguard Worker 
327*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Entity entity36;
328*89c4ff92SAndroid Build Coastguard Worker     entity36.m_Guid = uint64_t(36);
329*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEntity(entity36);
330*89c4ff92SAndroid Build Coastguard Worker 
331*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship37;
332*89c4ff92SAndroid Build Coastguard Worker     relationship37.m_Guid = uint64_t(37);
333*89c4ff92SAndroid Build Coastguard Worker     relationship37.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
334*89c4ff92SAndroid Build Coastguard Worker     relationship37.m_HeadGuid = uint64_t(36);
335*89c4ff92SAndroid Build Coastguard Worker     relationship37.m_TailGuid = uint64_t(15704252740552608110U);
336*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship37);
337*89c4ff92SAndroid Build Coastguard Worker 
338*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship38;
339*89c4ff92SAndroid Build Coastguard Worker     relationship38.m_Guid = uint64_t(38);
340*89c4ff92SAndroid Build Coastguard Worker     relationship38.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
341*89c4ff92SAndroid Build Coastguard Worker     relationship38.m_HeadGuid = uint64_t(37);
342*89c4ff92SAndroid Build Coastguard Worker     relationship38.m_TailGuid = uint64_t(14196220359693045352U);
343*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship38);
344*89c4ff92SAndroid Build Coastguard Worker 
345*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship39;
346*89c4ff92SAndroid Build Coastguard Worker     relationship39.m_Guid = uint64_t(39);
347*89c4ff92SAndroid Build Coastguard Worker     relationship39.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
348*89c4ff92SAndroid Build Coastguard Worker     relationship39.m_HeadGuid = uint64_t(36);
349*89c4ff92SAndroid Build Coastguard Worker     relationship39.m_TailGuid = uint64_t(9690680943817437852U);
350*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship39);
351*89c4ff92SAndroid Build Coastguard Worker 
352*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship40;
353*89c4ff92SAndroid Build Coastguard Worker     relationship40.m_Guid = uint64_t(40);
354*89c4ff92SAndroid Build Coastguard Worker     relationship40.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
355*89c4ff92SAndroid Build Coastguard Worker     relationship40.m_HeadGuid = uint64_t(39);
356*89c4ff92SAndroid Build Coastguard Worker     relationship40.m_TailGuid = uint64_t(10874037804557439415U);
357*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship40);
358*89c4ff92SAndroid Build Coastguard Worker 
359*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship41;
360*89c4ff92SAndroid Build Coastguard Worker     relationship41.m_Guid = uint64_t(41);
361*89c4ff92SAndroid Build Coastguard Worker     relationship41.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
362*89c4ff92SAndroid Build Coastguard Worker     relationship41.m_HeadGuid = uint64_t(0);
363*89c4ff92SAndroid Build Coastguard Worker     relationship41.m_TailGuid = uint64_t(36);
364*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship41);
365*89c4ff92SAndroid Build Coastguard Worker 
366*89c4ff92SAndroid Build Coastguard Worker 
367*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Entity entity42;
368*89c4ff92SAndroid Build Coastguard Worker     entity42.m_Guid = uint64_t(42);
369*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEntity(entity42);
370*89c4ff92SAndroid Build Coastguard Worker 
371*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship43;
372*89c4ff92SAndroid Build Coastguard Worker     relationship43.m_Guid = uint64_t(43);
373*89c4ff92SAndroid Build Coastguard Worker     relationship43.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
374*89c4ff92SAndroid Build Coastguard Worker     relationship43.m_HeadGuid = uint64_t(42);
375*89c4ff92SAndroid Build Coastguard Worker     relationship43.m_TailGuid = uint64_t(15704252740552608110U);
376*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship43);
377*89c4ff92SAndroid Build Coastguard Worker 
378*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship44;
379*89c4ff92SAndroid Build Coastguard Worker     relationship44.m_Guid = uint64_t(44);
380*89c4ff92SAndroid Build Coastguard Worker     relationship44.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
381*89c4ff92SAndroid Build Coastguard Worker     relationship44.m_HeadGuid = uint64_t(43);
382*89c4ff92SAndroid Build Coastguard Worker     relationship44.m_TailGuid = uint64_t(14196220359693045352U);
383*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship44);
384*89c4ff92SAndroid Build Coastguard Worker 
385*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship45;
386*89c4ff92SAndroid Build Coastguard Worker     relationship45.m_Guid = uint64_t(45);
387*89c4ff92SAndroid Build Coastguard Worker     relationship45.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
388*89c4ff92SAndroid Build Coastguard Worker     relationship45.m_HeadGuid = uint64_t(42);
389*89c4ff92SAndroid Build Coastguard Worker     relationship45.m_TailGuid = uint64_t(9690680943817437852U);
390*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship45);
391*89c4ff92SAndroid Build Coastguard Worker 
392*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship46;
393*89c4ff92SAndroid Build Coastguard Worker     relationship46.m_Guid = uint64_t(46);
394*89c4ff92SAndroid Build Coastguard Worker     relationship46.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
395*89c4ff92SAndroid Build Coastguard Worker     relationship46.m_HeadGuid = uint64_t(45);
396*89c4ff92SAndroid Build Coastguard Worker     relationship46.m_TailGuid = uint64_t(10874037804557439415U);
397*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship46);
398*89c4ff92SAndroid Build Coastguard Worker 
399*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship47;
400*89c4ff92SAndroid Build Coastguard Worker     relationship47.m_Guid = uint64_t(47);
401*89c4ff92SAndroid Build Coastguard Worker     relationship47.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
402*89c4ff92SAndroid Build Coastguard Worker     relationship47.m_HeadGuid = uint64_t(2);
403*89c4ff92SAndroid Build Coastguard Worker     relationship47.m_TailGuid = uint64_t(42);
404*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship47);
405*89c4ff92SAndroid Build Coastguard Worker 
406*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Entity entity48;
407*89c4ff92SAndroid Build Coastguard Worker     entity48.m_Guid = uint64_t(48);
408*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEntity(entity48);
409*89c4ff92SAndroid Build Coastguard Worker 
410*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship49;
411*89c4ff92SAndroid Build Coastguard Worker     relationship49.m_Guid = uint64_t(49);
412*89c4ff92SAndroid Build Coastguard Worker     relationship49.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
413*89c4ff92SAndroid Build Coastguard Worker     relationship49.m_HeadGuid = uint64_t(48);
414*89c4ff92SAndroid Build Coastguard Worker     relationship49.m_TailGuid = uint64_t(15026600058430441282U);
415*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship49);
416*89c4ff92SAndroid Build Coastguard Worker 
417*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship50;
418*89c4ff92SAndroid Build Coastguard Worker     relationship50.m_Guid = uint64_t(50);
419*89c4ff92SAndroid Build Coastguard Worker     relationship50.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
420*89c4ff92SAndroid Build Coastguard Worker     relationship50.m_HeadGuid = uint64_t(49);
421*89c4ff92SAndroid Build Coastguard Worker     relationship50.m_TailGuid = uint64_t(14196220359693045352U);
422*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship50);
423*89c4ff92SAndroid Build Coastguard Worker 
424*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship51;
425*89c4ff92SAndroid Build Coastguard Worker     relationship51.m_Guid = uint64_t(51);
426*89c4ff92SAndroid Build Coastguard Worker     relationship51.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
427*89c4ff92SAndroid Build Coastguard Worker     relationship51.m_HeadGuid = uint64_t(6);
428*89c4ff92SAndroid Build Coastguard Worker     relationship51.m_TailGuid = uint64_t(48);
429*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship51);
430*89c4ff92SAndroid Build Coastguard Worker 
431*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship53;
432*89c4ff92SAndroid Build Coastguard Worker     relationship53.m_Guid = uint64_t(53);
433*89c4ff92SAndroid Build Coastguard Worker     relationship53.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
434*89c4ff92SAndroid Build Coastguard Worker     relationship53.m_HeadGuid = uint64_t(48);
435*89c4ff92SAndroid Build Coastguard Worker     relationship53.m_TailGuid = uint64_t(52);
436*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship53);
437*89c4ff92SAndroid Build Coastguard Worker 
438*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship54;
439*89c4ff92SAndroid Build Coastguard Worker     relationship54.m_Guid = uint64_t(54);
440*89c4ff92SAndroid Build Coastguard Worker     relationship54.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
441*89c4ff92SAndroid Build Coastguard Worker     relationship54.m_HeadGuid = uint64_t(52);
442*89c4ff92SAndroid Build Coastguard Worker     relationship54.m_TailGuid = uint64_t(17170418158534996719U);
443*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship54);
444*89c4ff92SAndroid Build Coastguard Worker 
445*89c4ff92SAndroid Build Coastguard Worker 
446*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Entity entity55;
447*89c4ff92SAndroid Build Coastguard Worker     entity55.m_Guid = uint64_t(55);
448*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEntity(entity55);
449*89c4ff92SAndroid Build Coastguard Worker 
450*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship56;
451*89c4ff92SAndroid Build Coastguard Worker     relationship56.m_Guid = uint64_t(56);
452*89c4ff92SAndroid Build Coastguard Worker     relationship56.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
453*89c4ff92SAndroid Build Coastguard Worker     relationship56.m_HeadGuid = uint64_t(55);
454*89c4ff92SAndroid Build Coastguard Worker     relationship56.m_TailGuid = uint64_t(10172155312650606003U);
455*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship56);
456*89c4ff92SAndroid Build Coastguard Worker 
457*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship57;
458*89c4ff92SAndroid Build Coastguard Worker     relationship57.m_Guid = uint64_t(57);
459*89c4ff92SAndroid Build Coastguard Worker     relationship57.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
460*89c4ff92SAndroid Build Coastguard Worker     relationship57.m_HeadGuid = uint64_t(56);
461*89c4ff92SAndroid Build Coastguard Worker     relationship57.m_TailGuid = uint64_t(14196220359693045352U);
462*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship57);
463*89c4ff92SAndroid Build Coastguard Worker 
464*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship58;
465*89c4ff92SAndroid Build Coastguard Worker     relationship58.m_Guid = uint64_t(58);
466*89c4ff92SAndroid Build Coastguard Worker     relationship58.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
467*89c4ff92SAndroid Build Coastguard Worker     relationship58.m_HeadGuid = uint64_t(48);
468*89c4ff92SAndroid Build Coastguard Worker     relationship58.m_TailGuid = uint64_t(55);
469*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship58);
470*89c4ff92SAndroid Build Coastguard Worker 
471*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship59;
472*89c4ff92SAndroid Build Coastguard Worker     relationship59.m_Guid = uint64_t(59);
473*89c4ff92SAndroid Build Coastguard Worker     relationship59.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
474*89c4ff92SAndroid Build Coastguard Worker     relationship59.m_HeadGuid = uint64_t(36);
475*89c4ff92SAndroid Build Coastguard Worker     relationship59.m_TailGuid = uint64_t(55);
476*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship59);
477*89c4ff92SAndroid Build Coastguard Worker 
478*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Event event60;
479*89c4ff92SAndroid Build Coastguard Worker     event60.m_Guid = uint64_t(60);
480*89c4ff92SAndroid Build Coastguard Worker     event60.m_TimeStamp = uint64_t(96557081111036);
481*89c4ff92SAndroid Build Coastguard Worker     event60.m_ThreadId = uint64_t(140522431862592);
482*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEvent(event60);
483*89c4ff92SAndroid Build Coastguard Worker 
484*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship61;
485*89c4ff92SAndroid Build Coastguard Worker     relationship61.m_Guid = uint64_t(61);
486*89c4ff92SAndroid Build Coastguard Worker     relationship61.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
487*89c4ff92SAndroid Build Coastguard Worker     relationship61.m_HeadGuid = uint64_t(55);
488*89c4ff92SAndroid Build Coastguard Worker     relationship61.m_TailGuid = uint64_t(60);
489*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship61);
490*89c4ff92SAndroid Build Coastguard Worker 
491*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship62;
492*89c4ff92SAndroid Build Coastguard Worker     relationship62.m_Guid = uint64_t(62);
493*89c4ff92SAndroid Build Coastguard Worker     relationship62.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
494*89c4ff92SAndroid Build Coastguard Worker     relationship62.m_HeadGuid = uint64_t(60);
495*89c4ff92SAndroid Build Coastguard Worker     relationship62.m_TailGuid = uint64_t(17170418158534996719U);
496*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship62);
497*89c4ff92SAndroid Build Coastguard Worker 
498*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Event event63;
499*89c4ff92SAndroid Build Coastguard Worker     event63.m_Guid = uint64_t(63);
500*89c4ff92SAndroid Build Coastguard Worker     event63.m_TimeStamp = uint64_t(96557081149730);
501*89c4ff92SAndroid Build Coastguard Worker     event63.m_ThreadId = uint64_t(140522431862592);
502*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEvent(event63);
503*89c4ff92SAndroid Build Coastguard Worker 
504*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship64;
505*89c4ff92SAndroid Build Coastguard Worker     relationship64.m_Guid = uint64_t(61);
506*89c4ff92SAndroid Build Coastguard Worker     relationship64.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
507*89c4ff92SAndroid Build Coastguard Worker     relationship64.m_HeadGuid = uint64_t(55);
508*89c4ff92SAndroid Build Coastguard Worker     relationship64.m_TailGuid = uint64_t(63);
509*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship64);
510*89c4ff92SAndroid Build Coastguard Worker 
511*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship65;
512*89c4ff92SAndroid Build Coastguard Worker     relationship65.m_Guid = uint64_t(62);
513*89c4ff92SAndroid Build Coastguard Worker     relationship65.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
514*89c4ff92SAndroid Build Coastguard Worker     relationship65.m_HeadGuid = uint64_t(63);
515*89c4ff92SAndroid Build Coastguard Worker     relationship65.m_TailGuid = uint64_t(10812061579584851344U);
516*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship65);
517*89c4ff92SAndroid Build Coastguard Worker 
518*89c4ff92SAndroid Build Coastguard Worker 
519*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Entity entity66;
520*89c4ff92SAndroid Build Coastguard Worker     entity66.m_Guid = uint64_t(66);
521*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEntity(entity66);
522*89c4ff92SAndroid Build Coastguard Worker 
523*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship67;
524*89c4ff92SAndroid Build Coastguard Worker     relationship67.m_Guid = uint64_t(67);
525*89c4ff92SAndroid Build Coastguard Worker     relationship67.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
526*89c4ff92SAndroid Build Coastguard Worker     relationship67.m_HeadGuid = uint64_t(66);
527*89c4ff92SAndroid Build Coastguard Worker     relationship67.m_TailGuid = uint64_t(10172155312650606003U);
528*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship67);
529*89c4ff92SAndroid Build Coastguard Worker 
530*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship68;
531*89c4ff92SAndroid Build Coastguard Worker     relationship68.m_Guid = uint64_t(68);
532*89c4ff92SAndroid Build Coastguard Worker     relationship68.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
533*89c4ff92SAndroid Build Coastguard Worker     relationship68.m_HeadGuid = uint64_t(67);
534*89c4ff92SAndroid Build Coastguard Worker     relationship68.m_TailGuid = uint64_t(14196220359693045352U);
535*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship68);
536*89c4ff92SAndroid Build Coastguard Worker 
537*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship69;
538*89c4ff92SAndroid Build Coastguard Worker     relationship69.m_Guid = uint64_t(69);
539*89c4ff92SAndroid Build Coastguard Worker     relationship69.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
540*89c4ff92SAndroid Build Coastguard Worker     relationship69.m_HeadGuid = uint64_t(48);
541*89c4ff92SAndroid Build Coastguard Worker     relationship69.m_TailGuid = uint64_t(66);
542*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship69);
543*89c4ff92SAndroid Build Coastguard Worker 
544*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship70;
545*89c4ff92SAndroid Build Coastguard Worker     relationship70.m_Guid = uint64_t(70);
546*89c4ff92SAndroid Build Coastguard Worker     relationship70.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
547*89c4ff92SAndroid Build Coastguard Worker     relationship70.m_HeadGuid = uint64_t(22);
548*89c4ff92SAndroid Build Coastguard Worker     relationship70.m_TailGuid = uint64_t(66);
549*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship70);
550*89c4ff92SAndroid Build Coastguard Worker 
551*89c4ff92SAndroid Build Coastguard Worker 
552*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Event event71;
553*89c4ff92SAndroid Build Coastguard Worker     event71.m_Guid = uint64_t(71);
554*89c4ff92SAndroid Build Coastguard Worker     event71.m_TimeStamp = uint64_t(96557081156464);
555*89c4ff92SAndroid Build Coastguard Worker     event71.m_ThreadId = uint64_t(140522431862592);
556*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEvent(event71);
557*89c4ff92SAndroid Build Coastguard Worker 
558*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship72;
559*89c4ff92SAndroid Build Coastguard Worker     relationship72.m_Guid = uint64_t(72);
560*89c4ff92SAndroid Build Coastguard Worker     relationship72.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
561*89c4ff92SAndroid Build Coastguard Worker     relationship72.m_HeadGuid = uint64_t(66);
562*89c4ff92SAndroid Build Coastguard Worker     relationship72.m_TailGuid = uint64_t(71);
563*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship72);
564*89c4ff92SAndroid Build Coastguard Worker 
565*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship73;
566*89c4ff92SAndroid Build Coastguard Worker     relationship73.m_Guid = uint64_t(73);
567*89c4ff92SAndroid Build Coastguard Worker     relationship73.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
568*89c4ff92SAndroid Build Coastguard Worker     relationship73.m_HeadGuid = uint64_t(71);
569*89c4ff92SAndroid Build Coastguard Worker     relationship73.m_TailGuid = uint64_t(17170418158534996719U);
570*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship73);
571*89c4ff92SAndroid Build Coastguard Worker 
572*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Event event74;
573*89c4ff92SAndroid Build Coastguard Worker     event74.m_Guid = uint64_t(74);
574*89c4ff92SAndroid Build Coastguard Worker     event74.m_TimeStamp = uint64_t(96557081220825);
575*89c4ff92SAndroid Build Coastguard Worker     event74.m_ThreadId = uint64_t(140522431862592);
576*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEvent(event74);
577*89c4ff92SAndroid Build Coastguard Worker 
578*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship75;
579*89c4ff92SAndroid Build Coastguard Worker     relationship75.m_Guid = uint64_t(75);
580*89c4ff92SAndroid Build Coastguard Worker     relationship75.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
581*89c4ff92SAndroid Build Coastguard Worker     relationship75.m_HeadGuid = uint64_t(66);
582*89c4ff92SAndroid Build Coastguard Worker     relationship75.m_TailGuid = uint64_t(74);
583*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship75);
584*89c4ff92SAndroid Build Coastguard Worker 
585*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship76;
586*89c4ff92SAndroid Build Coastguard Worker     relationship76.m_Guid = uint64_t(76);
587*89c4ff92SAndroid Build Coastguard Worker     relationship76.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
588*89c4ff92SAndroid Build Coastguard Worker     relationship76.m_HeadGuid = uint64_t(74);
589*89c4ff92SAndroid Build Coastguard Worker     relationship76.m_TailGuid = uint64_t(10812061579584851344U);
590*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship76);
591*89c4ff92SAndroid Build Coastguard Worker 
592*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Entity entity77;
593*89c4ff92SAndroid Build Coastguard Worker     entity77.m_Guid = uint64_t(77);
594*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEntity(entity77);
595*89c4ff92SAndroid Build Coastguard Worker 
596*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship78;
597*89c4ff92SAndroid Build Coastguard Worker     relationship78.m_Guid = uint64_t(78);
598*89c4ff92SAndroid Build Coastguard Worker     relationship78.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
599*89c4ff92SAndroid Build Coastguard Worker     relationship78.m_HeadGuid = uint64_t(77);
600*89c4ff92SAndroid Build Coastguard Worker     relationship78.m_TailGuid = uint64_t(10172155312650606003U);
601*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship78);
602*89c4ff92SAndroid Build Coastguard Worker 
603*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship79;
604*89c4ff92SAndroid Build Coastguard Worker     relationship79.m_Guid = uint64_t(79);
605*89c4ff92SAndroid Build Coastguard Worker     relationship79.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::LabelLink;
606*89c4ff92SAndroid Build Coastguard Worker     relationship79.m_HeadGuid = uint64_t(78);
607*89c4ff92SAndroid Build Coastguard Worker     relationship79.m_TailGuid = uint64_t(14196220359693045352U);
608*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship79);
609*89c4ff92SAndroid Build Coastguard Worker 
610*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship80;
611*89c4ff92SAndroid Build Coastguard Worker     relationship80.m_Guid = uint64_t(80);
612*89c4ff92SAndroid Build Coastguard Worker     relationship80.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
613*89c4ff92SAndroid Build Coastguard Worker     relationship80.m_HeadGuid = uint64_t(48);
614*89c4ff92SAndroid Build Coastguard Worker     relationship80.m_TailGuid = uint64_t(77);
615*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship80);
616*89c4ff92SAndroid Build Coastguard Worker 
617*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship81;
618*89c4ff92SAndroid Build Coastguard Worker     relationship81.m_Guid = uint64_t(81);
619*89c4ff92SAndroid Build Coastguard Worker     relationship81.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::RetentionLink;
620*89c4ff92SAndroid Build Coastguard Worker     relationship81.m_HeadGuid = uint64_t(42);
621*89c4ff92SAndroid Build Coastguard Worker     relationship81.m_TailGuid = uint64_t(77);
622*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship81);
623*89c4ff92SAndroid Build Coastguard Worker 
624*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Event event82;
625*89c4ff92SAndroid Build Coastguard Worker     event82.m_Guid = uint64_t(82);
626*89c4ff92SAndroid Build Coastguard Worker     event82.m_TimeStamp = uint64_t(96557081227643);
627*89c4ff92SAndroid Build Coastguard Worker     event82.m_ThreadId = uint64_t(140522431862592);
628*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEvent(event82);
629*89c4ff92SAndroid Build Coastguard Worker 
630*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship83;
631*89c4ff92SAndroid Build Coastguard Worker     relationship83.m_Guid = uint64_t(83);
632*89c4ff92SAndroid Build Coastguard Worker     relationship83.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
633*89c4ff92SAndroid Build Coastguard Worker     relationship83.m_HeadGuid = uint64_t(77);
634*89c4ff92SAndroid Build Coastguard Worker     relationship83.m_TailGuid = uint64_t(82);
635*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship83);
636*89c4ff92SAndroid Build Coastguard Worker 
637*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship84;
638*89c4ff92SAndroid Build Coastguard Worker     relationship84.m_Guid = uint64_t(84);
639*89c4ff92SAndroid Build Coastguard Worker     relationship84.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
640*89c4ff92SAndroid Build Coastguard Worker     relationship84.m_HeadGuid = uint64_t(82);
641*89c4ff92SAndroid Build Coastguard Worker     relationship84.m_TailGuid = uint64_t(17170418158534996719U);
642*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship84);
643*89c4ff92SAndroid Build Coastguard Worker 
644*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Event event85;
645*89c4ff92SAndroid Build Coastguard Worker     event85.m_Guid = uint64_t(85);
646*89c4ff92SAndroid Build Coastguard Worker     event85.m_TimeStamp = uint64_t(96557081240332);
647*89c4ff92SAndroid Build Coastguard Worker     event85.m_ThreadId = uint64_t(140522431862592);
648*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEvent(event85);
649*89c4ff92SAndroid Build Coastguard Worker 
650*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship86;
651*89c4ff92SAndroid Build Coastguard Worker     relationship86.m_Guid = uint64_t(86);
652*89c4ff92SAndroid Build Coastguard Worker     relationship86.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
653*89c4ff92SAndroid Build Coastguard Worker     relationship86.m_HeadGuid = uint64_t(77);
654*89c4ff92SAndroid Build Coastguard Worker     relationship86.m_TailGuid = uint64_t(85);
655*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship86);
656*89c4ff92SAndroid Build Coastguard Worker 
657*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship87;
658*89c4ff92SAndroid Build Coastguard Worker     relationship87.m_Guid = uint64_t(87);
659*89c4ff92SAndroid Build Coastguard Worker     relationship87.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
660*89c4ff92SAndroid Build Coastguard Worker     relationship87.m_HeadGuid = uint64_t(85);
661*89c4ff92SAndroid Build Coastguard Worker     relationship87.m_TailGuid = uint64_t(10812061579584851344U);
662*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship87);
663*89c4ff92SAndroid Build Coastguard Worker 
664*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Event event88;
665*89c4ff92SAndroid Build Coastguard Worker     event88.m_Guid = uint64_t(88);
666*89c4ff92SAndroid Build Coastguard Worker     event88.m_TimeStamp = uint64_t(96557081243146);
667*89c4ff92SAndroid Build Coastguard Worker     event88.m_ThreadId = uint64_t(140522431862592);
668*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateEvent(event88);
669*89c4ff92SAndroid Build Coastguard Worker 
670*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship89;
671*89c4ff92SAndroid Build Coastguard Worker     relationship89.m_Guid = uint64_t(89);
672*89c4ff92SAndroid Build Coastguard Worker     relationship89.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::ExecutionLink;
673*89c4ff92SAndroid Build Coastguard Worker     relationship89.m_HeadGuid = uint64_t(48);
674*89c4ff92SAndroid Build Coastguard Worker     relationship89.m_TailGuid = uint64_t(88);
675*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship89);
676*89c4ff92SAndroid Build Coastguard Worker 
677*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ITimelineDecoder::Relationship relationship90;
678*89c4ff92SAndroid Build Coastguard Worker     relationship90.m_Guid = uint64_t(90);
679*89c4ff92SAndroid Build Coastguard Worker     relationship90.m_RelationshipType = arm::pipe::ITimelineDecoder::RelationshipType::DataLink;
680*89c4ff92SAndroid Build Coastguard Worker     relationship90.m_HeadGuid = uint64_t(88);
681*89c4ff92SAndroid Build Coastguard Worker     relationship90.m_TailGuid = uint64_t(10812061579584851344U);
682*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.CreateRelationship(relationship90);
683*89c4ff92SAndroid Build Coastguard Worker }
684*89c4ff92SAndroid Build Coastguard Worker 
685*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("JSONTimelineDecoderTestStructure")
686*89c4ff92SAndroid Build Coastguard Worker {
687*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder timelineDecoder;
688*89c4ff92SAndroid Build Coastguard Worker     RunSimpleModelThroughDecoder(timelineDecoder);
689*89c4ff92SAndroid Build Coastguard Worker 
690*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::Model model = timelineDecoder.GetModel();
691*89c4ff92SAndroid Build Coastguard Worker     CHECK(model.jsonEntities.size() == 20);
692*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity rootEntity = model.jsonEntities.at(6);
693*89c4ff92SAndroid Build Coastguard Worker     CHECK(rootEntity.childEntities.size() == 4);
694*89c4ff92SAndroid Build Coastguard Worker 
695*89c4ff92SAndroid Build Coastguard Worker     // Testing input layer model
696*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity entity0 = model.jsonEntities.at(rootEntity.childEntities[0]);
697*89c4ff92SAndroid Build Coastguard Worker     CHECK(entity0.GetName() == "input");
698*89c4ff92SAndroid Build Coastguard Worker     CHECK(entity0.GetType() == "layer");
699*89c4ff92SAndroid Build Coastguard Worker 
700*89c4ff92SAndroid Build Coastguard Worker     CHECK(entity0.childEntities.size() == 1);
701*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity input_workload_entity = model.jsonEntities.at(entity0.childEntities[0]);
702*89c4ff92SAndroid Build Coastguard Worker     CHECK(input_workload_entity.childEntities.size() == 1);
703*89c4ff92SAndroid Build Coastguard Worker     CHECK(input_workload_entity.GetType() == "workload");
704*89c4ff92SAndroid Build Coastguard Worker     CHECK(input_workload_entity.extendedData.at("backendId") == "CpuRef");
705*89c4ff92SAndroid Build Coastguard Worker 
706*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity input_workload_execution_entity = model.jsonEntities
707*89c4ff92SAndroid Build Coastguard Worker             .at(input_workload_entity.childEntities[0]);
708*89c4ff92SAndroid Build Coastguard Worker     CHECK(input_workload_execution_entity.childEntities.size() == 2);
709*89c4ff92SAndroid Build Coastguard Worker     CHECK(input_workload_execution_entity.GetType() == "workload_execution");
710*89c4ff92SAndroid Build Coastguard Worker 
711*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity input_workload_execution_event0 = model.jsonEntities
712*89c4ff92SAndroid Build Coastguard Worker             .at(input_workload_execution_entity.childEntities[0]);
713*89c4ff92SAndroid Build Coastguard Worker     CHECK(input_workload_execution_event0.GetType() == "Event");
714*89c4ff92SAndroid Build Coastguard Worker     CHECK(input_workload_execution_event0.childEntities.size() == 0);
715*89c4ff92SAndroid Build Coastguard Worker     CHECK(model.events.at(input_workload_execution_event0.GetGuid()).m_ThreadId > uint64_t(0));
716*89c4ff92SAndroid Build Coastguard Worker     CHECK(model.events.at(input_workload_execution_event0.GetGuid()).m_TimeStamp > uint64_t(0));
717*89c4ff92SAndroid Build Coastguard Worker 
718*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity input_workload_execution_event1 = model.jsonEntities
719*89c4ff92SAndroid Build Coastguard Worker             .at(input_workload_execution_entity.childEntities[1]);
720*89c4ff92SAndroid Build Coastguard Worker     CHECK(input_workload_execution_event0.GetType() == "Event");
721*89c4ff92SAndroid Build Coastguard Worker     CHECK(input_workload_execution_event1.childEntities.size() == 0);
722*89c4ff92SAndroid Build Coastguard Worker     CHECK(model.events.at(input_workload_execution_event1.GetGuid()).m_ThreadId > uint64_t(0));
723*89c4ff92SAndroid Build Coastguard Worker     CHECK(model.events.at(input_workload_execution_event1.GetGuid()).m_TimeStamp > uint64_t(0));
724*89c4ff92SAndroid Build Coastguard Worker 
725*89c4ff92SAndroid Build Coastguard Worker     // Testing normalization layer model
726*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity entity1 = model.jsonEntities.at(rootEntity.childEntities[1]);
727*89c4ff92SAndroid Build Coastguard Worker     CHECK(entity1.GetName() == "normalization");
728*89c4ff92SAndroid Build Coastguard Worker     CHECK(entity1.GetType() == "layer");
729*89c4ff92SAndroid Build Coastguard Worker 
730*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity normalization_workload_entity = model.jsonEntities
731*89c4ff92SAndroid Build Coastguard Worker             .at(entity1.childEntities[0]);
732*89c4ff92SAndroid Build Coastguard Worker     CHECK(normalization_workload_entity.GetType() == "workload");
733*89c4ff92SAndroid Build Coastguard Worker     CHECK(normalization_workload_entity.extendedData.at("backendId") == "CpuRef");
734*89c4ff92SAndroid Build Coastguard Worker 
735*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity normalization_workload_execution_entity = model.jsonEntities
736*89c4ff92SAndroid Build Coastguard Worker             .at(normalization_workload_entity.childEntities[0]);
737*89c4ff92SAndroid Build Coastguard Worker     CHECK(normalization_workload_execution_entity.GetType() == "workload_execution");
738*89c4ff92SAndroid Build Coastguard Worker 
739*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity normalization_workload_execution_event0 = model.jsonEntities
740*89c4ff92SAndroid Build Coastguard Worker             .at(normalization_workload_execution_entity.childEntities[0]);
741*89c4ff92SAndroid Build Coastguard Worker     CHECK(normalization_workload_execution_event0.GetType() == "Event");
742*89c4ff92SAndroid Build Coastguard Worker     CHECK(model.events.at(normalization_workload_execution_event0.GetGuid()).m_ThreadId > uint64_t(0));
743*89c4ff92SAndroid Build Coastguard Worker     CHECK(model.events.at(normalization_workload_execution_event0.GetGuid()).m_TimeStamp > uint64_t(0));
744*89c4ff92SAndroid Build Coastguard Worker 
745*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity normalization_workload_execution_event1 = model.jsonEntities
746*89c4ff92SAndroid Build Coastguard Worker             .at(normalization_workload_execution_entity.childEntities[1]);
747*89c4ff92SAndroid Build Coastguard Worker     CHECK(normalization_workload_execution_event1.GetType() == "Event");
748*89c4ff92SAndroid Build Coastguard Worker     CHECK(model.events.at(normalization_workload_execution_event1.GetGuid()).m_ThreadId > uint64_t(0));
749*89c4ff92SAndroid Build Coastguard Worker     CHECK(model.events.at(normalization_workload_execution_event1.GetGuid()).m_TimeStamp > uint64_t(0));
750*89c4ff92SAndroid Build Coastguard Worker 
751*89c4ff92SAndroid Build Coastguard Worker     // Testing output layer model
752*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity entity2 = model.jsonEntities.at(rootEntity.childEntities[2]);
753*89c4ff92SAndroid Build Coastguard Worker     CHECK(entity2.GetName() == "output");
754*89c4ff92SAndroid Build Coastguard Worker     CHECK(entity2.GetType() == "layer");
755*89c4ff92SAndroid Build Coastguard Worker 
756*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity output_workload_entity = model.jsonEntities.at(entity2.childEntities[0]);
757*89c4ff92SAndroid Build Coastguard Worker     CHECK(output_workload_entity.GetType() == "workload");
758*89c4ff92SAndroid Build Coastguard Worker     CHECK(output_workload_entity.extendedData.at("backendId") == "CpuRef");
759*89c4ff92SAndroid Build Coastguard Worker 
760*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity output_workload_execution_entity = model.jsonEntities
761*89c4ff92SAndroid Build Coastguard Worker             .at(output_workload_entity.childEntities[0]);
762*89c4ff92SAndroid Build Coastguard Worker     CHECK(output_workload_execution_entity.GetType() == "workload_execution");
763*89c4ff92SAndroid Build Coastguard Worker 
764*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity output_workload_execution_event0 = model.jsonEntities
765*89c4ff92SAndroid Build Coastguard Worker             .at(output_workload_execution_entity.childEntities[0]);
766*89c4ff92SAndroid Build Coastguard Worker     CHECK(output_workload_execution_event0.GetType() == "Event");
767*89c4ff92SAndroid Build Coastguard Worker     CHECK(model.events.at(output_workload_execution_event0.GetGuid()).m_ThreadId > uint64_t(0));
768*89c4ff92SAndroid Build Coastguard Worker     CHECK(model.events.at(output_workload_execution_event0.GetGuid()).m_TimeStamp > uint64_t(0));
769*89c4ff92SAndroid Build Coastguard Worker 
770*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity output_workload_execution_event1 = model.jsonEntities
771*89c4ff92SAndroid Build Coastguard Worker             .at(output_workload_execution_entity.childEntities[1]);
772*89c4ff92SAndroid Build Coastguard Worker     CHECK(output_workload_execution_event1.GetType() == "Event");
773*89c4ff92SAndroid Build Coastguard Worker     CHECK(model.events.at(output_workload_execution_event1.GetGuid()).m_ThreadId > uint64_t(0));
774*89c4ff92SAndroid Build Coastguard Worker     CHECK(model.events.at(output_workload_execution_event1.GetGuid()).m_TimeStamp > uint64_t(0));
775*89c4ff92SAndroid Build Coastguard Worker 
776*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity entity48 =  model.jsonEntities.at(rootEntity.childEntities[3]);
777*89c4ff92SAndroid Build Coastguard Worker     CHECK(entity48.GetName() == "");
778*89c4ff92SAndroid Build Coastguard Worker     CHECK(entity48.GetType() == "inference");
779*89c4ff92SAndroid Build Coastguard Worker }
780*89c4ff92SAndroid Build Coastguard Worker 
781*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("JSONTimelineDecoderTestJSON")
782*89c4ff92SAndroid Build Coastguard Worker {
783*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder timelineDecoder;
784*89c4ff92SAndroid Build Coastguard Worker     RunSimpleModelThroughDecoder(timelineDecoder);
785*89c4ff92SAndroid Build Coastguard Worker 
786*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::Model model = timelineDecoder.GetModel();
787*89c4ff92SAndroid Build Coastguard Worker     JSONTimelineDecoder::JSONEntity rootEntity = model.jsonEntities.at(6);
788*89c4ff92SAndroid Build Coastguard Worker 
789*89c4ff92SAndroid Build Coastguard Worker     std::string jsonString = timelineDecoder.GetJSONString(rootEntity);
790*89c4ff92SAndroid Build Coastguard Worker     CHECK(jsonString != "");
791*89c4ff92SAndroid Build Coastguard Worker     CHECK(jsonString.find("input_0: {")!=std::string::npos);
792*89c4ff92SAndroid Build Coastguard Worker     CHECK(jsonString.find("type: Measurement,\n"
793*89c4ff92SAndroid Build Coastguard Worker                                    "\t\t\tbackendId :CpuRef,")!=std::string::npos);
794*89c4ff92SAndroid Build Coastguard Worker     CHECK(jsonString.find("normalization_2: {")!=std::string::npos);
795*89c4ff92SAndroid Build Coastguard Worker     CHECK(jsonString.find("output_4: {")!=std::string::npos);
796*89c4ff92SAndroid Build Coastguard Worker 
797*89c4ff92SAndroid Build Coastguard Worker     // Create a temporary file to write Json output to
798*89c4ff92SAndroid Build Coastguard Worker     fs::path tempFile = armnnUtils::Filesystem::NamedTempFile("JSONTimelineDecoderTestJSON.json");
799*89c4ff92SAndroid Build Coastguard Worker     // open temp file
800*89c4ff92SAndroid Build Coastguard Worker     std::ofstream ofs{tempFile};
801*89c4ff92SAndroid Build Coastguard Worker     // tell the timeline decoder to print into our temp file (you could also use std::cout)
802*89c4ff92SAndroid Build Coastguard Worker     timelineDecoder.PrintJSON(rootEntity, ofs);
803*89c4ff92SAndroid Build Coastguard Worker     // close temp file
804*89c4ff92SAndroid Build Coastguard Worker     ofs.close();
805*89c4ff92SAndroid Build Coastguard Worker 
806*89c4ff92SAndroid Build Coastguard Worker     // Now everything in opposite order
807*89c4ff92SAndroid Build Coastguard Worker     fs::ifstream inFile;
808*89c4ff92SAndroid Build Coastguard Worker     //reopen the file this time for reading
809*89c4ff92SAndroid Build Coastguard Worker     inFile.open(tempFile);
810*89c4ff92SAndroid Build Coastguard Worker 
811*89c4ff92SAndroid Build Coastguard Worker     std::stringstream strStream;
812*89c4ff92SAndroid Build Coastguard Worker     strStream << inFile.rdbuf(); //read the file
813*89c4ff92SAndroid Build Coastguard Worker     inFile.close();
814*89c4ff92SAndroid Build Coastguard Worker     std::string outfileJson = strStream.str();
815*89c4ff92SAndroid Build Coastguard Worker 
816*89c4ff92SAndroid Build Coastguard Worker     CHECK(outfileJson != "");
817*89c4ff92SAndroid Build Coastguard Worker     CHECK(outfileJson.find("input_0: {")!=std::string::npos);
818*89c4ff92SAndroid Build Coastguard Worker     CHECK(outfileJson.find("type: Measurement,\n"
819*89c4ff92SAndroid Build Coastguard Worker                                 "\t\t\tbackendId :CpuRef,")!=std::string::npos);
820*89c4ff92SAndroid Build Coastguard Worker     CHECK(outfileJson.find("normalization_2: {")!=std::string::npos);
821*89c4ff92SAndroid Build Coastguard Worker     CHECK(outfileJson.find("output_4: {")!=std::string::npos);
822*89c4ff92SAndroid Build Coastguard Worker 
823*89c4ff92SAndroid Build Coastguard Worker     // Remove temporary file
824*89c4ff92SAndroid Build Coastguard Worker     fs::remove(tempFile);
825*89c4ff92SAndroid Build Coastguard Worker }
826*89c4ff92SAndroid Build Coastguard Worker }