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