48 lines
1.3 KiB
C
48 lines
1.3 KiB
C
#ifndef SD2506_TEST_H
|
||
#define SD2506_TEST_H
|
||
|
||
#include <stdint.h>
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
/* ============ Phase 使能开关(取消注释即启用,默认全开) ============ */
|
||
#define ENABLE_RTC_BASIC_TESTS /* Phase 1: 基本读写 / 走时 */
|
||
#define ENABLE_RTC_API_TESTS /* Phase 2: 全功能 API 覆盖(BCD互转/温度/电压/ID/SRAM/报警) */
|
||
|
||
/* ============ 测试统计(与 STORAGE/GD5F 套件一致的独立统计) ============ */
|
||
typedef struct {
|
||
uint16_t total;
|
||
uint16_t passed;
|
||
uint16_t failed;
|
||
} sd2506_test_stats_t;
|
||
|
||
extern sd2506_test_stats_t g_sd2506_test_stats;
|
||
|
||
#define SD2506_TEST_CHECK(cond, fmt, ...) do { \
|
||
g_sd2506_test_stats.total++; \
|
||
if (cond) { \
|
||
g_sd2506_test_stats.passed++; \
|
||
DBG_INFO("[PASS] " fmt, ##__VA_ARGS__); \
|
||
} else { \
|
||
g_sd2506_test_stats.failed++; \
|
||
DBG_ERROR("[FAIL] " fmt, ##__VA_ARGS__); \
|
||
} \
|
||
} while (0)
|
||
|
||
#define SD2506_TEST_REPORT(name) do { \
|
||
DBG_INFO("=== %s: %u/%u PASSED (failed=%u) ===", \
|
||
name, g_sd2506_test_stats.passed, g_sd2506_test_stats.total, \
|
||
g_sd2506_test_stats.failed); \
|
||
} while (0)
|
||
|
||
/* 测试入口:由 StartCh395fTestTask 经 TEST_SUITE_RTC 调度,顺序执行 Phase 1~3 */
|
||
void sd2506_test_run(void);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif /* SD2506_TEST_H */
|