/* * Copyright (C) 2019 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include "core/helpers/file_io.h" #include "core/utilities/directory.h" #include "runtime/helpers/string_helpers.h" #include "runtime/utilities/logger.h" #include template class TestFileLogger : public NEO::FileLogger { public: using NEO::FileLogger::FileLogger; ~TestFileLogger() { std::remove(NEO::FileLogger::logFileName.c_str()); } void useRealFiles(bool value) { mockFileSystem = !value; } void writeToFile(std::string filename, const char *str, size_t length, std::ios_base::openmode mode) override { savedFiles[filename] << std::string(str, str + length); if (mockFileSystem == false) { NEO::FileLogger::writeToFile(filename, str, length, mode); } }; int32_t createdFilesCount() { return static_cast(savedFiles.size()); } bool wasFileCreated(std::string filename) { return savedFiles.find(filename) != savedFiles.end(); } std::string getFileString(std::string filename) { return savedFiles[filename].str(); } protected: bool mockFileSystem = true; std::map savedFiles; }; using FullyEnabledFileLogger = TestFileLogger; using FullyDisabledFileLogger = TestFileLogger; template class TestLoggerApiEnterWrapper : public NEO::LoggerApiEnterWrapper { public: TestLoggerApiEnterWrapper(const char *functionName, int *errCode) : NEO::LoggerApiEnterWrapper(functionName, errCode), loggedEnter(false) { if (DebugFunctionality) { loggedEnter = true; } } bool loggedEnter; };