diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/logging/logging.c | 33 | ||||
-rw-r--r-- | src/logging/logging.h | 10 | ||||
-rw-r--r-- | src/test/logging/logging_tests.c | 40 | ||||
-rw-r--r-- | src/test/minunit.h | 17 |
4 files changed, 91 insertions, 9 deletions
diff --git a/src/logging/logging.c b/src/logging/logging.c new file mode 100644 index 0000000..429f222 --- /dev/null +++ b/src/logging/logging.c @@ -0,0 +1,33 @@ +#include <stdio.h> + +#include "logging/logging.h" + + +const char * honey_log_level_str_(struct honey_log_info *info) +{ + switch(info->log_level) { + case DEBUG: + return "DEBUG"; + break; + + case INFO: + return "INFO"; + break; + + case WARN: + return "WARN"; + break; + + case ERROR: + return "ERROR"; + break; + + case FATAL: + return "FATAL"; + break; + + default: + return NULL; + break; + } +} diff --git a/src/logging/logging.h b/src/logging/logging.h new file mode 100644 index 0000000..87436e5 --- /dev/null +++ b/src/logging/logging.h @@ -0,0 +1,10 @@ +#ifndef HONEY_LOGGING_H +#define HONEY_LOGGING_H + +struct honey_log_info { + enum { DEBUG, INFO, WARN, ERROR, FATAL } log_level; +}; + +const char * honey_log_level_str_(struct honey_log_info *info); + +#endif diff --git a/src/test/logging/logging_tests.c b/src/test/logging/logging_tests.c index 2e92d68..2a07d30 100644 --- a/src/test/logging/logging_tests.c +++ b/src/test/logging/logging_tests.c @@ -1,6 +1,42 @@ -#include "../minunit.h" -#include "../suites.h" +#include "test/minunit.h" +#include "test/suites.h" + +#include "logging/logging.h" + + +/* test declarations */ + +mu_test test_log_get_level(); + + +/* main suite */ void honey_logging_tests() { + mu_run_test("get log level strings", test_log_get_level); +} + + +/* test definitions */ + +mu_test test_log_get_level() +{ + struct honey_log_info info; + + info.log_level = DEBUG; + mu_assert_streq("DEBUG", honey_log_level_str_(&info)); + + info.log_level = INFO; + mu_assert_streq("INFO", honey_log_level_str_(&info)); + + info.log_level = WARN; + mu_assert_streq("WARN", honey_log_level_str_(&info)); + + info.log_level = ERROR; + mu_assert_streq("ERROR", honey_log_level_str_(&info)); + + info.log_level = FATAL; + mu_assert_streq("FATAL", honey_log_level_str_(&info)); + + return 0; } diff --git a/src/test/minunit.h b/src/test/minunit.h index b1bfda7..ed5e57d 100644 --- a/src/test/minunit.h +++ b/src/test/minunit.h @@ -2,6 +2,7 @@ #define MINUNIT_H #include <stdio.h> +#include <string.h> #define STR_IMPL(x) #x #define STR(x) STR_IMPL(x) @@ -9,7 +10,7 @@ #define MU_INDENT " " /* minunit testing macros from /www.jera.com/techinfo/jtns/jtn002.html */ -#define mu_assert(test, message) do { if (!(test)) return message "\n" MU_INDENT "[" __FILE__ ":" STR(__LINE__) "]"; } while (0) +#define mu_assert(test, message) do { if (!(test)) return message "\n" MU_INDENT " [" __FILE__ ":" STR(__LINE__) "]"; } while (0) #define mu_assert_equal(a, b) mu_assert(a == b, "'" #a "' is not equal to '" #b "'") #define mu_assert_unequal(a, b) mu_assert(a != b, "'" #a "' is equal to '" #b "'") #define mu_assert_streq(a, b) mu_assert(strcmp(a, b) == 0, "'" #a "' is not equal to '" #b "'") @@ -22,12 +23,14 @@ tests_failed++; \ } \ } while (0) -#define mu_run_suite(suite) do { \ - int tests_run_old = tests_run; \ - printf("suite: " #suite "\n"); \ - suite(); \ - printf(MU_INDENT "ran %d tests\n\n", \ - tests_run - tests_run_old); \ +#define mu_run_suite(suite) do { \ + int run_old = tests_run; \ + int failed_old = tests_failed; \ + printf("suite: " #suite "\n"); \ + suite(); \ + printf(MU_INDENT "ran %d tests, %d failed\n\n", \ + tests_run - run_old, \ + tests_failed - failed_old); \ } while(0) #define mu_tests_finished() do { \ printf("ran %d tests, %d failed\n", tests_run, tests_failed); \ |