From 6c9f17dc5fe58e23db0ba591302168766b38ab2a Mon Sep 17 00:00:00 2001 From: Jim Flynn Date: Thu, 10 Mar 2022 23:13:01 +0000 Subject: IVGCVSW-6843 replace armnn::Logging with arm::pipe::Logging in profiling code Change-Id: I9c3af46ca02c5685e06657b8af0e4658d71891d4 Signed-off-by: Jim Flynn --- src/profiling/test/ProfilingTestUtils.hpp | 40 +++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'src/profiling/test/ProfilingTestUtils.hpp') diff --git a/src/profiling/test/ProfilingTestUtils.hpp b/src/profiling/test/ProfilingTestUtils.hpp index 323a762918..32db72a19d 100644 --- a/src/profiling/test/ProfilingTestUtils.hpp +++ b/src/profiling/test/ProfilingTestUtils.hpp @@ -89,6 +89,46 @@ public: } }; +struct LogLevelSwapper +{ +public: + LogLevelSwapper(arm::pipe::LogSeverity severity) + { + // Set the new log level + arm::pipe::ConfigureLogging(true, true, severity); + } + ~LogLevelSwapper() + { + // The default log level for unit tests is "Fatal" + arm::pipe::ConfigureLogging(true, true, arm::pipe::LogSeverity::Fatal); + } +}; + +struct StreamRedirector +{ +public: + StreamRedirector(std::ostream& stream, std::streambuf* newStreamBuffer) + : m_Stream(stream) + , m_BackupBuffer(m_Stream.rdbuf(newStreamBuffer)) + {} + + ~StreamRedirector() { CancelRedirect(); } + + void CancelRedirect() + { + // Only cancel the redirect once. + if (m_BackupBuffer != nullptr ) + { + m_Stream.rdbuf(m_BackupBuffer); + m_BackupBuffer = nullptr; + } + } + +private: + std::ostream& m_Stream; + std::streambuf* m_BackupBuffer; +}; + } // namespace pipe } // namespace arm -- cgit v1.2.1