1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017 Arm Ltd and Contributors. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker 6*89c4ff92SAndroid Build Coastguard Worker #ifndef DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN 7*89c4ff92SAndroid Build Coastguard Worker #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN 8*89c4ff92SAndroid Build Coastguard Worker #endif 9*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h> 10*89c4ff92SAndroid Build Coastguard Worker 11*89c4ff92SAndroid Build Coastguard Worker #include "UnitTests.hpp" 12*89c4ff92SAndroid Build Coastguard Worker 13*89c4ff92SAndroid Build Coastguard Worker struct ConfigureLoggingFixture 14*89c4ff92SAndroid Build Coastguard Worker { ConfigureLoggingFixtureConfigureLoggingFixture15*89c4ff92SAndroid Build Coastguard Worker ConfigureLoggingFixture() 16*89c4ff92SAndroid Build Coastguard Worker { 17*89c4ff92SAndroid Build Coastguard Worker ConfigureLoggingTest(); 18*89c4ff92SAndroid Build Coastguard Worker } 19*89c4ff92SAndroid Build Coastguard Worker }; 20*89c4ff92SAndroid Build Coastguard Worker 21*89c4ff92SAndroid Build Coastguard Worker 22*89c4ff92SAndroid Build Coastguard Worker 23*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("LoggerSuite") 24*89c4ff92SAndroid Build Coastguard Worker { 25*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(ConfigureLoggingFixture, "LoggerTest") 26*89c4ff92SAndroid Build Coastguard Worker { 27*89c4ff92SAndroid Build Coastguard Worker std::stringstream ss; 28*89c4ff92SAndroid Build Coastguard Worker { 29*89c4ff92SAndroid Build Coastguard Worker struct StreamRedirector 30*89c4ff92SAndroid Build Coastguard Worker { 31*89c4ff92SAndroid Build Coastguard Worker public: StreamRedirectorStreamRedirector32*89c4ff92SAndroid Build Coastguard Worker StreamRedirector(std::ostream& stream, std::streambuf* newStreamBuffer) 33*89c4ff92SAndroid Build Coastguard Worker : m_Stream(stream) 34*89c4ff92SAndroid Build Coastguard Worker , m_BackupBuffer(m_Stream.rdbuf(newStreamBuffer)) 35*89c4ff92SAndroid Build Coastguard Worker {} ~StreamRedirectorStreamRedirector36*89c4ff92SAndroid Build Coastguard Worker ~StreamRedirector() { m_Stream.rdbuf(m_BackupBuffer); } 37*89c4ff92SAndroid Build Coastguard Worker 38*89c4ff92SAndroid Build Coastguard Worker private: 39*89c4ff92SAndroid Build Coastguard Worker std::ostream& m_Stream; 40*89c4ff92SAndroid Build Coastguard Worker std::streambuf* m_BackupBuffer; 41*89c4ff92SAndroid Build Coastguard Worker }; 42*89c4ff92SAndroid Build Coastguard Worker 43*89c4ff92SAndroid Build Coastguard Worker StreamRedirector redirect(std::cout, ss.rdbuf()); 44*89c4ff92SAndroid Build Coastguard Worker 45*89c4ff92SAndroid Build Coastguard Worker using namespace armnn; 46*89c4ff92SAndroid Build Coastguard Worker SetLogFilter(LogSeverity::Trace); 47*89c4ff92SAndroid Build Coastguard Worker SetAllLoggingSinks(true, false, false); 48*89c4ff92SAndroid Build Coastguard Worker 49*89c4ff92SAndroid Build Coastguard Worker ARMNN_LOG(trace) << "My trace message; " << -2; 50*89c4ff92SAndroid Build Coastguard Worker ARMNN_LOG(debug) << "My debug message; " << -1; 51*89c4ff92SAndroid Build Coastguard Worker ARMNN_LOG(info) << "My info message; " << 0; 52*89c4ff92SAndroid Build Coastguard Worker ARMNN_LOG(warning) << "My warning message; " << 1; 53*89c4ff92SAndroid Build Coastguard Worker ARMNN_LOG(error) << "My error message; " << 2; 54*89c4ff92SAndroid Build Coastguard Worker ARMNN_LOG(fatal) << "My fatal message; " << 3; 55*89c4ff92SAndroid Build Coastguard Worker 56*89c4ff92SAndroid Build Coastguard Worker SetLogFilter(LogSeverity::Fatal); 57*89c4ff92SAndroid Build Coastguard Worker } 58*89c4ff92SAndroid Build Coastguard Worker 59*89c4ff92SAndroid Build Coastguard Worker CHECK(ss.str().find("Trace: My trace message; -2") != std::string::npos); 60*89c4ff92SAndroid Build Coastguard Worker CHECK(ss.str().find("Debug: My debug message; -1") != std::string::npos); 61*89c4ff92SAndroid Build Coastguard Worker CHECK(ss.str().find("Info: My info message; 0") != std::string::npos); 62*89c4ff92SAndroid Build Coastguard Worker CHECK(ss.str().find("Warning: My warning message; 1") != std::string::npos); 63*89c4ff92SAndroid Build Coastguard Worker CHECK(ss.str().find("Error: My error message; 2") != std::string::npos); 64*89c4ff92SAndroid Build Coastguard Worker CHECK(ss.str().find("Fatal: My fatal message; 3") != std::string::npos); 65*89c4ff92SAndroid Build Coastguard Worker } 66*89c4ff92SAndroid Build Coastguard Worker 67*89c4ff92SAndroid Build Coastguard Worker }