diff --git a/src/cli/ArgumentParser.cpp b/src/cli/ArgumentParser.cpp index e379fd8..d501921 100644 --- a/src/cli/ArgumentParser.cpp +++ b/src/cli/ArgumentParser.cpp @@ -99,7 +99,8 @@ std::vector::iterator CArgumentParserImpl::getValue(const std::str return it; } -std::expected CArgumentParserImpl::registerOption(const std::string_view& name, const std::string_view& abbrev, const std::string_view& description, eArgumentType type) { +std::expected CArgumentParserImpl::registerOption(const std::string_view& name, const std::string_view& abbrev, const std::string_view& description, + eArgumentType type) { if (getValue(name) != m_values.end() || getValue(abbrev) != m_values.end()) return std::unexpected("Value already exists"); diff --git a/src/cli/Logger.cpp b/src/cli/Logger.cpp index d884cce..8ba1f5c 100644 --- a/src/cli/Logger.cpp +++ b/src/cli/Logger.cpp @@ -6,7 +6,7 @@ using namespace Hyprutils; using namespace Hyprutils::CLI; -CLogger::CLogger() { +CLogger::CLogger() { m_impl = Memory::makeUnique(this); } @@ -21,7 +21,7 @@ void CLogger::setTime(bool enabled) { } void CLogger::setEnableStdout(bool enabled) { - m_impl->m_stdoutEnabled; + m_impl->m_stdoutEnabled = enabled; m_impl->updateParentShouldLog(); } diff --git a/tests/cli/Logger.cpp b/tests/cli/Logger.cpp index ffe1460..c0babce 100644 --- a/tests/cli/Logger.cpp +++ b/tests/cli/Logger.cpp @@ -24,6 +24,12 @@ TEST(CLI, Logger) { EXPECT_EQ(logger.rollingLog(), "DEBUG ]: Hello!\nTRACE ]: Hello, Trace!"); + logger.setEnableStdout(false); + + logger.log(Hyprutils::CLI::LOG_ERR, "Error"); + + EXPECT_EQ(logger.rollingLog(), "DEBUG ]: Hello!\nTRACE ]: Hello, Trace!"); + auto res = logger.setOutputFile("./loggerFile.log"); EXPECT_TRUE(res); @@ -39,4 +45,22 @@ TEST(CLI, Logger) { std::error_code ec; std::filesystem::remove("./loggerFile.log", ec); + + // TODO: maybe find a way to test the times and color? + logger.setEnableStdout(true); + logger.setTime(true); + + logger.log(Hyprutils::CLI::LOG_WARN, "Timed warning!"); + + logger.setEnableColor(false); + + logger.log(Hyprutils::CLI::LOG_CRIT, "rip"); + + // spam some logs to check rolling + for (size_t i = 0; i < 1000; ++i) { + logger.log(LOG_DEBUG, "Log log log!"); + } + + EXPECT_TRUE(logger.rollingLog().size() < 4096); + EXPECT_TRUE(logger.rollingLog().starts_with("DEBUG")); // test the breaking is done correctly } \ No newline at end of file