Updated systemd sink and tests

This commit is contained in:
gabime
2019-06-28 17:29:52 +03:00
parent 8b403081c1
commit 9aa6cdc494
3 changed files with 64 additions and 46 deletions

View File

@@ -1,3 +1,8 @@
find_package(PkgConfig)
if(PkgConfig_FOUND)
pkg_check_modules(systemd libsystemd)
endif()
set(SPDLOG_UTESTS_SOURCES
test_errors.cpp
test_file_helper.cpp
@@ -17,6 +22,10 @@ set(SPDLOG_UTESTS_SOURCES
test_stdout_api.cpp
test_dup_filter.cpp)
if(systemd_FOUND)
set(SPDLOG_UTESTS_SOURCES ${SPDLOG_UTESTS_SOURCES} test_systemd.cpp)
endif()
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/logs")
enable_testing()
@@ -25,11 +34,14 @@ if(SPDLOG_BUILD_TESTS)
add_executable(spdlog-utests ${SPDLOG_UTESTS_SOURCES})
spdlog_enable_warnings(spdlog-utests)
target_link_libraries(spdlog-utests PRIVATE spdlog)
if(systemd_FOUND)
target_link_libraries(spdlog-utests PRIVATE ${systemd_LIBRARIES})
endif()
if(SPDLOG_SANITIZE_ADDRESS)
spdlog_enable_sanitizer(spdlog-utests)
endif()
add_test(NAME spdlog-utests COMMAND spdlog-utests)
endif()
# The header-only library version tests
@@ -37,6 +49,9 @@ if(SPDLOG_BUILD_HO_TESTS)
add_executable(spdlog-utests-ho ${SPDLOG_UTESTS_SOURCES})
spdlog_enable_warnings(spdlog-utests-ho)
target_link_libraries(spdlog-utests-ho PRIVATE spdlog::spdlog_header_only)
if(systemd_FOUND)
target_link_libraries(spdlog-utests-ho PRIVATE ${systemd_LIBRARIES})
endif()
if(SPDLOG_SANITIZE_ADDRESS)
spdlog_set_address_sanitizer(spdlog-utests-ho)
endif()

View File

@@ -1,13 +1,15 @@
#include "includes.h"
#include <spdlog/sinks/systemd_sink.h>
#include "spdlog/sinks/systemd_sink.h"
TEST_CASE("systemd", "[all]")
{
auto systemd_sink = std::make_shared<spdlog::sinks::systemd_sink_st>();
systemd_sink->set_level(spdlog::level::level_enum::err);
spdlog::logger logger("spdlog_systemd_test", systemd_sink);
logger.debug("test debug");
SPDLOG_LOGGER_ERROR((&logger), "test error");
logger.info("test info");
logger.set_level(spdlog::level::trace);
logger.trace("test spdlog trace");
logger.debug("test spdlog debug");
SPDLOG_LOGGER_INFO((&logger), "test spdlog info");
SPDLOG_LOGGER_WARN((&logger), "test spdlog warn");
SPDLOG_LOGGER_ERROR((&logger), "test spdlog error");
SPDLOG_LOGGER_CRITICAL((&logger), "test spdlog critical");
}