diff --git a/test/log.c b/test/log.c new file mode 100644 index 0000000..a5ab81e --- /dev/null +++ b/test/log.c @@ -0,0 +1,35 @@ +#include "../src/log.c" +#include "greatest.h" + +TEST test_log_level(GLogLevelFlags level, const char *shortstr, const char *longstr) +{ + ASSERT_STR_EQ(log_level_to_string(level), longstr); + + log_set_level_from_string(shortstr); + + if (level != G_LOG_LEVEL_ERROR) + ASSERT_ENUM_EQ(level, log_level, log_level_to_string); + + log_set_level_from_string(longstr); + + if (level != G_LOG_LEVEL_ERROR) + ASSERT_ENUM_EQ(level, log_level, log_level_to_string); + + PASS(); +} + +SUITE(suite_log) +{ + GLogLevelFlags oldlevel = log_level; + + RUN_TESTp(test_log_level, G_LOG_LEVEL_ERROR, NULL, "ERROR"); + RUN_TESTp(test_log_level, G_LOG_LEVEL_CRITICAL, "crit", "CRITICAL"); + RUN_TESTp(test_log_level, G_LOG_LEVEL_WARNING, "warn", "WARNING"); + RUN_TESTp(test_log_level, G_LOG_LEVEL_MESSAGE, "mesg", "MESSAGE"); + RUN_TESTp(test_log_level, G_LOG_LEVEL_INFO, "info", "INFO"); + RUN_TESTp(test_log_level, G_LOG_LEVEL_DEBUG, "deb", "DEBUG"); + + log_level = oldlevel; +} + +/* vim: set tabstop=8 shiftwidth=8 expandtab textwidth=0: */ diff --git a/test/test.c b/test/test.c index a816ee5..71645fc 100644 --- a/test/test.c +++ b/test/test.c @@ -17,6 +17,7 @@ SUITE_EXTERN(suite_misc); SUITE_EXTERN(suite_icon); SUITE_EXTERN(suite_queues); SUITE_EXTERN(suite_dunst); +SUITE_EXTERN(suite_log); GREATEST_MAIN_DEFS(); @@ -40,6 +41,7 @@ int main(int argc, char *argv[]) { RUN_SUITE(suite_icon); RUN_SUITE(suite_queues); RUN_SUITE(suite_dunst); + RUN_SUITE(suite_log); GREATEST_MAIN_END(); base = NULL;