16f1b0c431ca5265ca4f6c31703b73cdb356526d
[platform/upstream/armnn.git] / src / profiling / test / ProfilingTestUtils.hpp
1 //
2 // Copyright © 2019 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5
6 #pragma once
7
8 #include "ProfilingUtils.hpp"
9 #include "Runtime.hpp"
10
11 #include <armnn/BackendId.hpp>
12 #include <armnn/Optional.hpp>
13 #include <armnn/Types.hpp>
14 #include <BufferManager.hpp>
15 #include <ProfilingService.hpp>
16
17 using namespace armnn;
18 using namespace armnn::profiling;
19
20 uint32_t GetStreamMetaDataPacketSize();
21
22 inline unsigned int OffsetToNextWord(unsigned int numberOfBytes);
23
24 void VerifyTimelineHeaderBinary(const unsigned char* readableData,
25                                 unsigned int& offset,
26                                 uint32_t packetDataLength);
27
28 void VerifyTimelineLabelBinaryPacketData(Optional<ProfilingGuid> guid,
29                                          const std::string& label,
30                                          const unsigned char* readableData,
31                                          unsigned int& offset);
32
33 void VerifyTimelineEventClassBinaryPacketData(ProfilingGuid guid,
34                                               const unsigned char* readableData,
35                                               unsigned int& offset);
36
37 void VerifyTimelineRelationshipBinaryPacketData(ProfilingRelationshipType relationshipType,
38                                                 Optional<ProfilingGuid> relationshipGuid,
39                                                 Optional<ProfilingGuid> headGuid,
40                                                 Optional<ProfilingGuid> tailGuid,
41                                                 const unsigned char* readableData,
42                                                 unsigned int& offset);
43
44 void VerifyTimelineEntityBinaryPacketData(Optional<ProfilingGuid> guid,
45                                           const unsigned char* readableData,
46                                           unsigned int& offset);
47
48 void VerifyTimelineEventBinaryPacket(Optional<uint64_t> timestamp,
49                                      Optional<std::thread::id> threadId,
50                                      Optional<ProfilingGuid> eventGuid,
51                                      const unsigned char* readableData,
52                                      unsigned int& offset);
53
54 void VerifyPostOptimisationStructureTestImpl(armnn::BackendId backendId);
55
56 namespace armnn
57 {
58
59 namespace profiling
60 {
61
62 class ProfilingServiceRuntimeHelper : public ProfilingService
63 {
64 public:
65     ProfilingServiceRuntimeHelper(ProfilingService& profilingService)
66     : m_ProfilingService(profilingService) {}
67     ~ProfilingServiceRuntimeHelper() = default;
68
69     BufferManager& GetProfilingBufferManager()
70     {
71         return GetBufferManager(m_ProfilingService);
72     }
73     armnn::profiling::ProfilingService& m_ProfilingService;
74
75     void ForceTransitionToState(ProfilingState newState)
76     {
77         TransitionToState(m_ProfilingService, newState);
78     }
79 };
80
81 } // namespace profiling
82
83 } // namespace armnn
84