- 新增 test_log.c: 8 个测试覆盖日志级别 getter/setter、前缀设置、持久化 - 新增 test_config.c: 11 个测试覆盖 JSON 配置加载、注释支持、错误处理、merge 覆盖逻辑 - http.c: 修复 response header 格式化中的 snprintf 边界条件,防止缓冲区溢出 - Makefile: 添加 test_log、test_config 编译规则,更新 .PHONY 列表
82 lines
2.0 KiB
C
82 lines
2.0 KiB
C
#include "unity.h"
|
|
#include "log.h"
|
|
|
|
/* ===== log_get_level / log_set_level ===== */
|
|
|
|
void test_default_level_is_info(void) {
|
|
/* 静态全局变量默认初始化为 LOG_LEVEL_INFO */
|
|
TEST_ASSERT_EQUAL(LOG_LEVEL_INFO, log_get_level());
|
|
}
|
|
|
|
void test_set_level_error(void) {
|
|
log_set_level(LOG_LEVEL_ERROR);
|
|
TEST_ASSERT_EQUAL(LOG_LEVEL_ERROR, log_get_level());
|
|
}
|
|
|
|
void test_set_level_warn(void) {
|
|
log_set_level(LOG_LEVEL_WARN);
|
|
TEST_ASSERT_EQUAL(LOG_LEVEL_WARN, log_get_level());
|
|
}
|
|
|
|
void test_set_level_debug(void) {
|
|
log_set_level(LOG_LEVEL_DEBUG);
|
|
TEST_ASSERT_EQUAL(LOG_LEVEL_DEBUG, log_get_level());
|
|
}
|
|
|
|
void test_set_level_info(void) {
|
|
log_set_level(LOG_LEVEL_INFO);
|
|
TEST_ASSERT_EQUAL(LOG_LEVEL_INFO, log_get_level());
|
|
}
|
|
|
|
/* ===== log_set_prefix ===== */
|
|
|
|
void test_set_prefix(void) {
|
|
log_set_prefix("[Test]");
|
|
/* 无返回值,仅确认不 crash */
|
|
TEST_ASSERT_EQUAL(LOG_LEVEL_INFO, log_get_level());
|
|
}
|
|
|
|
void test_set_prefix_null(void) {
|
|
log_set_prefix(NULL);
|
|
/* NULL 表示无前缀,不 crash */
|
|
TEST_ASSERT_EQUAL(LOG_LEVEL_INFO, log_get_level());
|
|
}
|
|
|
|
/* ===== 边界:多次设置 ===== */
|
|
|
|
void test_level_persistence(void) {
|
|
log_set_level(LOG_LEVEL_DEBUG);
|
|
TEST_ASSERT_EQUAL(LOG_LEVEL_DEBUG, log_get_level());
|
|
log_set_level(LOG_LEVEL_ERROR);
|
|
TEST_ASSERT_EQUAL(LOG_LEVEL_ERROR, log_get_level());
|
|
log_set_level(LOG_LEVEL_INFO);
|
|
TEST_ASSERT_EQUAL(LOG_LEVEL_INFO, log_get_level());
|
|
}
|
|
|
|
void setUp(void) {
|
|
/* 每个测试前重置为默认 */
|
|
log_set_level(LOG_LEVEL_INFO);
|
|
log_set_prefix("[Cocoon]");
|
|
}
|
|
|
|
void tearDown(void) {
|
|
/* 每个测试后重置 */
|
|
log_set_level(LOG_LEVEL_INFO);
|
|
log_set_prefix("[Cocoon]");
|
|
}
|
|
|
|
int main(void) {
|
|
UNITY_BEGIN();
|
|
|
|
RUN_TEST(test_default_level_is_info);
|
|
RUN_TEST(test_set_level_error);
|
|
RUN_TEST(test_set_level_warn);
|
|
RUN_TEST(test_set_level_debug);
|
|
RUN_TEST(test_set_level_info);
|
|
RUN_TEST(test_set_prefix);
|
|
RUN_TEST(test_set_prefix_null);
|
|
RUN_TEST(test_level_persistence);
|
|
|
|
return UNITY_END();
|
|
}
|