diff --git a/src/test/tests/log.cpp b/src/test/tests/log.cpp new file mode 100644 index 0000000..27837c3 --- /dev/null +++ b/src/test/tests/log.cpp @@ -0,0 +1,65 @@ +#include "tests.h" + +#include +#include + +/* + win32 console stuff +*/ +#ifdef _WIN32 + #define _AMD64_ + #include + #include + + // from: WinBase.h + #define STD_OUTPUT_HANDLE ((DWORD) - 11) + +void createAndSetupConsole() +{ + FILE* pstdout = stdout; + AllocConsole(); + freopen_s(&pstdout, "CONOUT$", "w", stdout); + + DWORD conMode = 0; + GetConsoleMode(pstdout, &conMode); + conMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING; + SetConsoleMode(pstdout, conMode); +} +#endif + +/* + test impl +*/ +using namespace seallib; + +class TestLogSink : public ILogSink +{ + public: + virtual void receiveLog(LogType type, std::string_view loggerName, std::string_view msg) override + { + std::cout << seallib::getLogTypeColor(type) << "[" << seallib::getLogTypeName(type) << "]" + << "\x1b[0m " << msg << std::endl; + } +}; + +class LogTest : ITest +{ + public: + LogTest() : ITest() {}; + + virtual void run() override + { +#ifdef _WIN32 + createAndSetupConsole(); +#endif + Logger log("TestLogger"); + log.addSink(std::make_shared()); + + log.verbose("verbose log"); + log.info("info log"); + log.warning("warning log"); + log.error("error log"); + } +}; + +static LogTest g_logTest;