blob: a22d02bd6334e78c85d9466a2d887b45712c7625 [file] [log] [blame]
Ferran Balaguer1b941722019-08-28 16:57:18 +01001//
2// Copyright © 2019 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include "../SendCounterPacket.hpp"
9#include "../ProfilingUtils.hpp"
10
11#include <armnn/Exceptions.hpp>
12
13#include <boost/test/unit_test.hpp>
14
15#include <chrono>
16#include <iostream>
17
18using namespace armnn::profiling;
19
20class MockBuffer : public IBufferWrapper
21{
22public:
23 MockBuffer(unsigned int size)
24 : m_BufferSize(size),
25 m_Buffer(std::make_unique<unsigned char[]>(size)) {}
26
27 unsigned char* Reserve(unsigned int requestedSize, unsigned int& reservedSize) override
28 {
29 if (requestedSize > m_BufferSize)
30 {
31 reservedSize = m_BufferSize;
32 }
33 else
34 {
35 reservedSize = requestedSize;
36 }
37
38 return m_Buffer.get();
39 }
40
41 void Commit(unsigned int size) override {}
42
43 const unsigned char* GetReadBuffer(unsigned int& size) override
44 {
45 size = static_cast<unsigned int>(strlen(reinterpret_cast<const char*>(m_Buffer.get())) + 1);
46 return m_Buffer.get();
47 }
48
49 void Release( unsigned int size) override {}
50
51private:
52 unsigned int m_BufferSize;
53 std::unique_ptr<unsigned char[]> m_Buffer;
54};
55
56class MockSendCounterPacket : public ISendCounterPacket
57{
58public:
59 MockSendCounterPacket(IBufferWrapper& sendBuffer) : m_Buffer(sendBuffer) {}
60
61 void SendStreamMetaDataPacket() override
62 {
63 std::string message("SendStreamMetaDataPacket");
64 unsigned int reserved = 0;
65 unsigned char* buffer = m_Buffer.Reserve(1024, reserved);
66 memcpy(buffer, message.c_str(), static_cast<unsigned int>(message.size()) + 1);
67 }
68
69 void SendCounterDirectoryPacket(const CounterDirectory& counterDirectory) override
70 {
71 std::string message("SendCounterDirectoryPacket");
72 unsigned int reserved = 0;
73 unsigned char* buffer = m_Buffer.Reserve(1024, reserved);
74 memcpy(buffer, message.c_str(), static_cast<unsigned int>(message.size()) + 1);
75 }
76
77 void SendPeriodicCounterCapturePacket(uint64_t timestamp,
78 const std::vector<std::pair<uint16_t, uint32_t>>& values) override
79 {
80 std::string message("SendPeriodicCounterCapturePacket");
81 unsigned int reserved = 0;
82 unsigned char* buffer = m_Buffer.Reserve(1024, reserved);
83 memcpy(buffer, message.c_str(), static_cast<unsigned int>(message.size()) + 1);
84 }
85
86 void SendPeriodicCounterSelectionPacket(uint32_t capturePeriod,
87 const std::vector<uint16_t>& selectedCounterIds) override
88 {
89 std::string message("SendPeriodicCounterSelectionPacket");
90 unsigned int reserved = 0;
91 unsigned char* buffer = m_Buffer.Reserve(1024, reserved);
92 memcpy(buffer, message.c_str(), static_cast<unsigned int>(message.size()) + 1);
93 m_Buffer.Commit(reserved);
94 }
95
96 void SetReadyToRead() override
97 {}
98
99private:
100 IBufferWrapper& m_Buffer;
101};