diff options
Diffstat (limited to 'src/backends/backendsCommon/test/MockBackend.hpp')
-rw-r--r-- | src/backends/backendsCommon/test/MockBackend.hpp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/src/backends/backendsCommon/test/MockBackend.hpp b/src/backends/backendsCommon/test/MockBackend.hpp index d1a0082e2e..21ce7ab85d 100644 --- a/src/backends/backendsCommon/test/MockBackend.hpp +++ b/src/backends/backendsCommon/test/MockBackend.hpp @@ -5,6 +5,10 @@ #pragma once +#include "armnn/backends/profiling/IBackendProfiling.hpp" +#include "armnn/backends/profiling/IBackendProfilingContext.hpp" +#include "MockBackendId.hpp" + #include <LayerSupportCommon.hpp> #include <armnn/backends/IBackendInternal.hpp> #include <armnn/backends/OptimizationViews.hpp> @@ -13,6 +17,84 @@ namespace armnn { +class MockBackendInitialiser +{ +public: + MockBackendInitialiser(); + ~MockBackendInitialiser(); +}; + +class MockBackendProfilingService +{ +public: + // Getter for the singleton instance + static MockBackendProfilingService& Instance() + { + static MockBackendProfilingService instance; + return instance; + } + + armnn::profiling::IBackendProfilingContext* GetContext() + { + return m_sharedContext.get(); + } + + void SetProfilingContextPtr(IBackendInternal::IBackendProfilingContextPtr& shared) + { + m_sharedContext = shared; + } + +private: + IBackendInternal::IBackendProfilingContextPtr m_sharedContext; +}; + +class MockBackendProfilingContext : public profiling::IBackendProfilingContext +{ +public: + MockBackendProfilingContext(IBackendInternal::IBackendProfilingPtr& backendProfiling) + : m_BackendProfiling(backendProfiling) + {} + + ~MockBackendProfilingContext() = default; + + IBackendInternal::IBackendProfilingPtr& GetBackendProfiling() + { + return m_BackendProfiling; + } + + uint16_t RegisterCounters(uint16_t currentMaxGlobalCounterId) + { + std::unique_ptr<profiling::IRegisterBackendCounters> counterRegistrar = + m_BackendProfiling->GetCounterRegistrationInterface(currentMaxGlobalCounterId); + + std::string categoryName("MockCounters"); + counterRegistrar->RegisterCategory(categoryName); + uint16_t nextMaxGlobalCounterId = counterRegistrar->RegisterCounter( + 0, categoryName, 0, 0, 1.f, "Mock Counter One", "Some notional counter"); + + nextMaxGlobalCounterId = counterRegistrar->RegisterCounter( + 1, categoryName, 0, 0, 1.f, "Mock Counter Two", "Another notional counter"); + + std::string units("microseconds"); + nextMaxGlobalCounterId = counterRegistrar->RegisterCounter( + 2, categoryName, 0, 0, 1.f, "Mock MultiCore Counter", "A dummy four core counter", units, 4); + return nextMaxGlobalCounterId; + } + + void ActivateCounters(uint32_t, const std::vector<uint16_t>&) + {} + + std::vector<profiling::Timestamp> ReportCounterValues() + { + return std::vector<profiling::Timestamp>(); + } + + void EnableProfiling(bool) + {} + +private: + IBackendInternal::IBackendProfilingPtr& m_BackendProfiling; +}; class MockBackend : public IBackendInternal { |