WIP
This commit is contained in:
parent
8e657df097
commit
ea55d3e6fd
|
|
@ -19,3 +19,25 @@ target_include_directories(
|
||||||
${PROJECT_NAME}
|
${PROJECT_NAME}
|
||||||
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
|
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||||
)
|
)
|
||||||
|
|
||||||
|
project(awesome_log_test)
|
||||||
|
find_package(GTest REQUIRED)
|
||||||
|
add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
|
||||||
|
|
||||||
|
add_executable(
|
||||||
|
${PROJECT_NAME}
|
||||||
|
./test/test_scoped_log.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
set_property(
|
||||||
|
TARGET ${PROJECT_NAME}
|
||||||
|
PROPERTY CXX_STANDARD 20
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(
|
||||||
|
${PROJECT_NAME}
|
||||||
|
PUBLIC
|
||||||
|
awesome_log
|
||||||
|
GTest::gtest_main
|
||||||
|
GTest::gmock
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <awesome_log/writer_interface.hpp>
|
||||||
|
#include <gmock/gmock.h>
|
||||||
|
|
||||||
|
class mock_writer : public awesome_log::writer_interface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
~mock_writer() override = default;
|
||||||
|
|
||||||
|
MOCK_METHOD(void, log, (std::string_view), (override));
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
#include <gmock/gmock.h>
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
#include "mock_writer.hpp"
|
||||||
|
#include <awesome_log/log.hpp>
|
||||||
|
#include <awesome_log/scoped_log.hpp>
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
class test_scoped_log : public ::testing::Test
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
void SetUp() override
|
||||||
|
{
|
||||||
|
m_writer = std::make_shared<mock_writer>();
|
||||||
|
awesome_log::set_writer(m_writer);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TearDown() override
|
||||||
|
{
|
||||||
|
awesome_log::set_writer(std::shared_ptr<awesome_log::writer_interface>());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
std::shared_ptr<mock_writer> m_writer;
|
||||||
|
};
|
||||||
|
|
||||||
|
TEST_F(test_scoped_log, log_normal_flow)
|
||||||
|
{
|
||||||
|
EXPECT_CALL(*m_writer, log("> log"));
|
||||||
|
EXPECT_CALL(*m_writer, log("< log"));
|
||||||
|
|
||||||
|
{
|
||||||
|
awesome_log::scoped_log a("log");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(test_scoped_log, log_stack_unwind)
|
||||||
|
{
|
||||||
|
EXPECT_CALL(*m_writer, log("> log"));
|
||||||
|
EXPECT_CALL(*m_writer, log("< log (stack unwinding)"));
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
awesome_log::scoped_log a("log");
|
||||||
|
throw std::runtime_error("");
|
||||||
|
}
|
||||||
|
catch(const std::exception& e)
|
||||||
|
{
|
||||||
|
// Not doing anything
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue