/* * Copyright (C) 2022-2023 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include "shared/source/helpers/file_io.h" #include "shared/source/helpers/string_helpers.h" #include "shared/source/utilities/directory.h" #include "shared/source/utilities/logger.h" #include template class TestFileLogger : public NEO::FileLogger { public: using NEO::FileLogger::FileLogger; ~TestFileLogger() override { 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;