WIP
This commit is contained in:
parent
8e657df097
commit
ea55d3e6fd
|
|
@ -19,3 +19,25 @@ target_include_directories(
|
|||
${PROJECT_NAME}
|
||||
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