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 Workervoid 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 }