diff --git a/src/test_eressea.c b/src/test_eressea.c index a9b9b941c..a628d9009 100644 --- a/src/test_eressea.c +++ b/src/test_eressea.c @@ -84,6 +84,7 @@ int RunAllTests(int argc, char *argv[]) ADD_SUITE(umlaut); ADD_SUITE(unicode); ADD_SUITE(strings); + ADD_SUITE(log); ADD_SUITE(rng); /* items */ ADD_SUITE(xerewards); diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt index a441bcfe7..a34d6cbb0 100644 --- a/src/util/CMakeLists.txt +++ b/src/util/CMakeLists.txt @@ -8,6 +8,7 @@ attrib.test.c strings.test.c bsdstring.test.c functions.test.c +log.test.c umlaut.test.c unicode.test.c rng.test.c diff --git a/src/util/log.test.c b/src/util/log.test.c new file mode 100644 index 000000000..017481e48 --- /dev/null +++ b/src/util/log.test.c @@ -0,0 +1,33 @@ +#include + +#include "log.h" + +#include +#include + +void log_string(void *data, int level, const char *module, const char *format, va_list args) { + char *str = (char *)data; + const char *arg = va_arg(args, const char *); + strncpy(str, arg, 32); +} + +static void test_logging(CuTest * tc) +{ + char str1[32]; + char str2[32]; + int id1 = log_create(LOG_CPWARNING, str1, log_string); + int id2 = log_create(LOG_CPWARNING, str2, log_string); + CuAssertTrue(tc, id1!=id2); + log_warning("Hello %s", "World"); + CuAssertStrEquals(tc, str1, "World"); + CuAssertStrEquals(tc, str2, "World"); + log_destroy(id1); + log_destroy(id2); +} + +CuSuite *get_log_suite(void) +{ + CuSuite *suite = CuSuiteNew(); + SUITE_ADD_TEST(suite, test_logging); + return suite; +}