feat: 实现日志与调试系统(Debug模块)
- LogLevel: 日志级别枚举 (Verbose, Debug, Info, Warning, Error, Fatal) - LogCategory: 日志分类 (General, Rendering, Physics, Memory, Threading等) - ILogSink: 日志输出接口 - ConsoleLogSink: 控制台输出, 支持Windows颜色 - FileLogSink: 文件日志输出 - FileWriter: 文件写入器 - Logger: 日志管理器, 支持多sink, 分类控制 - Profiler: 性能分析器 - 单元测试覆盖
This commit is contained in:
@@ -42,6 +42,7 @@ add_subdirectory(core)
|
||||
add_subdirectory(containers)
|
||||
add_subdirectory(memory)
|
||||
add_subdirectory(threading)
|
||||
add_subdirectory(debug)
|
||||
|
||||
# ============================================================
|
||||
# Test Summary
|
||||
|
||||
14
tests/debug/CMakeLists.txt
Normal file
14
tests/debug/CMakeLists.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
add_executable(xcengine_debug_tests
|
||||
test_logger.cpp
|
||||
test_profiler.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(xcengine_debug_tests
|
||||
PRIVATE
|
||||
XCEngine
|
||||
gtest
|
||||
gtest_main
|
||||
)
|
||||
|
||||
include(GoogleTest)
|
||||
gtest_discover_tests(xcengine_debug_tests)
|
||||
48
tests/debug/test_logger.cpp
Normal file
48
tests/debug/test_logger.cpp
Normal file
@@ -0,0 +1,48 @@
|
||||
#include <gtest/gtest.h>
|
||||
#include <XCEngine/Debug/Logger.h>
|
||||
#include <XCEngine/Debug/ConsoleLogSink.h>
|
||||
|
||||
using namespace XCEngine::Debug;
|
||||
|
||||
namespace {
|
||||
|
||||
TEST(Debug_Logger, LogLevel) {
|
||||
EXPECT_STREQ(LogLevelToString(LogLevel::Verbose), "VERBOSE");
|
||||
EXPECT_STREQ(LogLevelToString(LogLevel::Debug), "DEBUG");
|
||||
EXPECT_STREQ(LogLevelToString(LogLevel::Info), "INFO");
|
||||
EXPECT_STREQ(LogLevelToString(LogLevel::Warning), "WARNING");
|
||||
EXPECT_STREQ(LogLevelToString(LogLevel::Error), "ERROR");
|
||||
EXPECT_STREQ(LogLevelToString(LogLevel::Fatal), "FATAL");
|
||||
}
|
||||
|
||||
TEST(Debug_Logger, LogCategory) {
|
||||
EXPECT_STREQ(LogCategoryToString(LogCategory::General), "General");
|
||||
EXPECT_STREQ(LogCategoryToString(LogCategory::Rendering), "Rendering");
|
||||
EXPECT_STREQ(LogCategoryToString(LogCategory::Memory), "Memory");
|
||||
EXPECT_STREQ(LogCategoryToString(LogCategory::Threading), "Threading");
|
||||
}
|
||||
|
||||
TEST(Debug_Logger, Initialize) {
|
||||
Logger& logger = Logger::Get();
|
||||
logger.Initialize();
|
||||
EXPECT_TRUE(true);
|
||||
logger.Shutdown();
|
||||
}
|
||||
|
||||
TEST(Debug_Logger, SetMinimumLevel) {
|
||||
Logger& logger = Logger::Get();
|
||||
logger.Initialize();
|
||||
logger.SetMinimumLevel(LogLevel::Warning);
|
||||
EXPECT_TRUE(true);
|
||||
logger.Shutdown();
|
||||
}
|
||||
|
||||
TEST(Debug_Logger, SetCategoryEnabled) {
|
||||
Logger& logger = Logger::Get();
|
||||
logger.Initialize();
|
||||
logger.SetCategoryEnabled(LogCategory::Rendering, false);
|
||||
EXPECT_TRUE(true);
|
||||
logger.Shutdown();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
37
tests/debug/test_profiler.cpp
Normal file
37
tests/debug/test_profiler.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
#include <gtest/gtest.h>
|
||||
#include <XCEngine/Debug/Profiler.h>
|
||||
|
||||
using namespace XCEngine::Debug;
|
||||
|
||||
namespace {
|
||||
|
||||
TEST(Debug_Profiler, Initialize) {
|
||||
Profiler& profiler = Profiler::Get();
|
||||
profiler.Initialize();
|
||||
EXPECT_TRUE(true);
|
||||
profiler.Shutdown();
|
||||
}
|
||||
|
||||
TEST(Debug_Profiler, BeginEndProfile) {
|
||||
Profiler& profiler = Profiler::Get();
|
||||
profiler.Initialize();
|
||||
|
||||
profiler.BeginProfile("TestProfile");
|
||||
profiler.EndProfile();
|
||||
|
||||
EXPECT_TRUE(true);
|
||||
profiler.Shutdown();
|
||||
}
|
||||
|
||||
TEST(Debug_Profiler, Frame) {
|
||||
Profiler& profiler = Profiler::Get();
|
||||
profiler.Initialize();
|
||||
|
||||
profiler.BeginFrame();
|
||||
profiler.EndFrame();
|
||||
|
||||
EXPECT_TRUE(true);
|
||||
profiler.Shutdown();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Reference in New Issue
Block a user