refactor(编号): 16 个测试模块码单词化 + 门禁识别面连带放宽
批 2(用户授权改名 + 「新名要一眼看懂」裁定)
- 16 个有歧义模块码单词化,共 1,146 处随 scripts/rename_ids.py 改写:
AI→ADCIN、AH→ADCHEALTH、PS→PROTSET、PE→PROTELEM、PH→PHASOR、
TS→TIMESYNC、VL→VOLLOCK、NP→NANDPORT、CFG→CONFIG、CLK→SYSCLK、
WD→WATCHDOG、STO→STORAGE、SH→SHA256、FA→FTPAUTH、FR→FREQ、104→IEC104
- 不动 NET/GD5F/RTC/SOE/UI/ADC/LOG/RS485/TOOL(已是单词、芯片名或业界通用词,
改了纯属 churn)
- 别名按全局登记:这批字面量已完全限定(TC-<码>-<nnn>),不存在裸形多义
- 映射表存档 scripts/rename_maps/batch2.json 作审计轨迹;§6 模块码表同步
连带修门禁(关键教训)
- 模块码涨到 9 位(ADCHEALTH/WATCHDOG)后,候选正则与族正则的 {0,4} 上界
会让改名后的号**整批从门禁眼里消失**:实测编号字面量从 8271 掉到 7315、
悬空假降 490 处。已放宽到 {0,9} 并写进 §6 注记
- 结论:改名批次必须连带复核识别面,只改数据不改判据 = 静默放行;
这次是靠「可判定比例跌破基线即失败」那条线拦下来的
现状与遗留
- 校验 1 未登记前缀 0 处;可判定比例 82.71%(基线 82.6%,只涨不跌成立)
- 遗留:7 个模块的「单元测试说明.md」仍缺(PROTSET 116、NANDPORT 109、
PROTELEM 65、FREQ 48、FTPAUTH 45、SHA256 25、SOE 14 处悬空)——改名不解决
缺文档,处置方式待议
- 遗留:T-2/T-3/T-4/T-6 历史任务号悬空(别名表未收全,属本工具批次漏项)
- 未改任何 C/H 可编译语义(仅注释与宏名内的编号),故不需 @build
This commit is contained in:
@@ -14,27 +14,27 @@
|
||||
* - 其余用例用 sys_clock_set(unix, NULL) 建立确定基准(无 RTC 副作用)。
|
||||
*
|
||||
* 覆盖点(对应 docs/测试说明/系统时钟单元测试说明.md 的 TC-CLK-xxx):
|
||||
* TC-CLK-000 未初始化:sys_clock_get / get_time / get_str 的无效语义
|
||||
* TC-CLK-001 init 正常:RTC 合法 → 返回 0,基准 = 换算 Unix 秒
|
||||
* TC-CLK-002 init 闰年换算:2024-02-29 / 2000-02-29(世纪闰)/ 2/29→3/1 间隔
|
||||
* TC-CLK-003 init 月末边界:1/31、2/28、4/30 的 Unix 秒精确值
|
||||
* TC-CLK-004 init 世纪边界:2000-01-01、2038 上限(0x7FFFFFFF)、Unix 0 经 set
|
||||
* TC-CLK-005 init RTC 读失败 → 降级默认时间,返回 -1 + 打错误日志
|
||||
* TC-CLK-006 init RTC 越界(年份/月/日非法)→ 自愈写回默认时间(返回 0)
|
||||
* TC-CLK-020 init 越界且写回失败 → 降级默认时间 + 返回 -1
|
||||
* TC-CLK-007 init 越界 → 自动写回默认时间并复验(rtc 被修正)
|
||||
* TC-CLK-008 get 正常推进:tick +1000 → +1 秒(含亚秒截断)
|
||||
* TC-CLK-009 get 未跨阈值不回绕:tick + 29 天仍线性
|
||||
* TC-CLK-010 get 30 天再基准化:窗口清零、墙钟值无损、含亚秒余数结转
|
||||
* TC-CLK-011 get tick 回绕(无符号差)安全
|
||||
* TC-CLK-012 get 再基准化后长期不漂移(多轮 30 天)
|
||||
* TC-CLK-013 get_str 格式化 + 未初始化占位串
|
||||
* TC-CLK-014 get_time 日历字段(年/月/日/时/分/秒/星期)与已知日期对照
|
||||
* TC-CLK-015 get_time NULL 参数被拒
|
||||
* TC-CLK-016 set 更新基准 + 写回 RTC(观察 sd2506_set_time 被调)
|
||||
* TC-CLK-017 set sd_time=NULL 不碰 RTC
|
||||
* TC-CLK-018 set_unix 写回 RTC 且日历字段正确(含星期)
|
||||
* TC-CLK-019 星期(Zeller)与已知日期对照穷举(跨世纪/闰/月末)
|
||||
* TC-SYSCLK-000 未初始化:sys_clock_get / get_time / get_str 的无效语义
|
||||
* TC-SYSCLK-001 init 正常:RTC 合法 → 返回 0,基准 = 换算 Unix 秒
|
||||
* TC-SYSCLK-002 init 闰年换算:2024-02-29 / 2000-02-29(世纪闰)/ 2/29→3/1 间隔
|
||||
* TC-SYSCLK-003 init 月末边界:1/31、2/28、4/30 的 Unix 秒精确值
|
||||
* TC-SYSCLK-004 init 世纪边界:2000-01-01、2038 上限(0x7FFFFFFF)、Unix 0 经 set
|
||||
* TC-SYSCLK-005 init RTC 读失败 → 降级默认时间,返回 -1 + 打错误日志
|
||||
* TC-SYSCLK-006 init RTC 越界(年份/月/日非法)→ 自愈写回默认时间(返回 0)
|
||||
* TC-SYSCLK-020 init 越界且写回失败 → 降级默认时间 + 返回 -1
|
||||
* TC-SYSCLK-007 init 越界 → 自动写回默认时间并复验(rtc 被修正)
|
||||
* TC-SYSCLK-008 get 正常推进:tick +1000 → +1 秒(含亚秒截断)
|
||||
* TC-SYSCLK-009 get 未跨阈值不回绕:tick + 29 天仍线性
|
||||
* TC-SYSCLK-010 get 30 天再基准化:窗口清零、墙钟值无损、含亚秒余数结转
|
||||
* TC-SYSCLK-011 get tick 回绕(无符号差)安全
|
||||
* TC-SYSCLK-012 get 再基准化后长期不漂移(多轮 30 天)
|
||||
* TC-SYSCLK-013 get_str 格式化 + 未初始化占位串
|
||||
* TC-SYSCLK-014 get_time 日历字段(年/月/日/时/分/秒/星期)与已知日期对照
|
||||
* TC-SYSCLK-015 get_time NULL 参数被拒
|
||||
* TC-SYSCLK-016 set 更新基准 + 写回 RTC(观察 sd2506_set_time 被调)
|
||||
* TC-SYSCLK-017 set sd_time=NULL 不碰 RTC
|
||||
* TC-SYSCLK-018 set_unix 写回 RTC 且日历字段正确(含星期)
|
||||
* TC-SYSCLK-019 星期(Zeller)与已知日期对照穷举(跨世纪/闰/月末)
|
||||
*
|
||||
* 通过:全部 TC PASS(main 返回 0)。
|
||||
* 入口:int main(void),返回 0=PASS / 1=FAIL(由 run 脚本判读)。
|
||||
@@ -189,7 +189,7 @@ static void tc_000_uninitialized(void) {
|
||||
sd2506_time_t t;
|
||||
char buf[32];
|
||||
|
||||
printf("TC-CLK-000 未初始化语义\n");
|
||||
printf("TC-SYSCLK-000 未初始化语义\n");
|
||||
/* 注意:本用例不做 sys_clock_init / sys_clock_set */
|
||||
CHECK_EQ_U32(sys_clock_get(), UINT32_MAX, "未初始化 get 返回 UINT32_MAX");
|
||||
CHECK(sys_clock_get_time(&t) == -1, "未初始化 get_time 返回 -1");
|
||||
@@ -201,7 +201,7 @@ static void tc_000_uninitialized(void) {
|
||||
|
||||
static void tc_001_init_ok(void) {
|
||||
int rc;
|
||||
printf("TC-CLK-001 init 正常(RTC 合法)\n");
|
||||
printf("TC-SYSCLK-001 init 正常(RTC 合法)\n");
|
||||
rtc_set(2026, 8, 24, 0, 0, 0);
|
||||
s_rtc_read_rc = SD2506_OK;
|
||||
s_rtc_write_rc = SD2506_OK;
|
||||
@@ -216,7 +216,7 @@ static void tc_001_init_ok(void) {
|
||||
}
|
||||
|
||||
static void tc_002_init_leap(void) {
|
||||
printf("TC-CLK-002 init 闰年换算\n");
|
||||
printf("TC-SYSCLK-002 init 闰年换算\n");
|
||||
/* 2024 是闰年:2/29 存在 */
|
||||
rtc_set(2024, 2, 29, 12, 0, 0);
|
||||
s_rtc_read_rc = SD2506_OK;
|
||||
@@ -240,7 +240,7 @@ static void tc_002_init_leap(void) {
|
||||
}
|
||||
|
||||
static void tc_003_init_month_end(void) {
|
||||
printf("TC-CLK-003 init 月末边界\n");
|
||||
printf("TC-SYSCLK-003 init 月末边界\n");
|
||||
rtc_set(2026, 1, 31, 0, 0, 0); s_rtc_read_rc = SD2506_OK;
|
||||
CHECK(sys_clock_init() == 0, "1/31 合法");
|
||||
CHECK_EQ_U32(sys_clock_get(), ref_unix(2026, 1, 31, 0, 0, 0), "1/31 换算");
|
||||
@@ -262,7 +262,7 @@ static void tc_003_init_month_end(void) {
|
||||
}
|
||||
|
||||
static void tc_004_init_epoch_bounds(void) {
|
||||
printf("TC-CLK-004 init 世纪边界(Unix 下限 / 2038 上限)\n");
|
||||
printf("TC-SYSCLK-004 init 世纪边界(Unix 下限 / 2038 上限)\n");
|
||||
/*
|
||||
* 注意:init 接受的 RTC 年份范围是 2000~2099(越界即判故障并自愈),
|
||||
* 故"Unix 0(1970-01-01)"**不可能经 init 建立**——1970 会被判越界。
|
||||
@@ -291,7 +291,7 @@ static void tc_004_init_epoch_bounds(void) {
|
||||
}
|
||||
|
||||
static void tc_005_init_rtc_read_fail(void) {
|
||||
printf("TC-CLK-005 init RTC 读失败 → 降级默认时间并返回 -1\n");
|
||||
printf("TC-SYSCLK-005 init RTC 读失败 → 降级默认时间并返回 -1\n");
|
||||
s_rtc_read_rc = SD2506_ERROR; /* 注入读故障 */
|
||||
s_rtc_write_rc = SD2506_OK;
|
||||
clear_obs();
|
||||
@@ -309,7 +309,7 @@ static void tc_005_init_rtc_read_fail(void) {
|
||||
}
|
||||
|
||||
static void tc_006_init_out_of_range_selfheal(void) {
|
||||
printf("TC-CLK-006 init RTC 越界 → 自愈写回默认时间(返回 0)\n");
|
||||
printf("TC-SYSCLK-006 init RTC 越界 → 自愈写回默认时间(返回 0)\n");
|
||||
/*
|
||||
* RTC_DEFAULT_INIT_ENABLE=1 且 FORCE=0 时:越界值触发"写回默认时间",
|
||||
* 写成功且复读合法 → rtc_ok 恢复为 1 → **返回 0**(自愈,非降级)。
|
||||
@@ -335,7 +335,7 @@ static void tc_006_init_out_of_range_selfheal(void) {
|
||||
}
|
||||
|
||||
static void tc_020_init_selfheal_fail_degrades(void) {
|
||||
printf("TC-CLK-020 init 越界且写回失败 → 降级默认时间并返回 -1\n");
|
||||
printf("TC-SYSCLK-020 init 越界且写回失败 → 降级默认时间并返回 -1\n");
|
||||
/*
|
||||
* 组合故障:读成功但值越界(触发写回),写回失败 → 复读仍越界 →
|
||||
* rtc_ok 清 0 → 走降级分支(启用默认值时建基准 + 返回 -1)。
|
||||
@@ -356,7 +356,7 @@ static void tc_020_init_selfheal_fail_degrades(void) {
|
||||
}
|
||||
|
||||
static void tc_007_init_corrects_rtc(void) {
|
||||
printf("TC-CLK-007 init 越界 → 自动写回默认时间并复验\n");
|
||||
printf("TC-SYSCLK-007 init 越界 → 自动写回默认时间并复验\n");
|
||||
rtc_set(1999, 1, 1, 0, 0, 0); /* 越界,触发校时写回 */
|
||||
s_rtc_read_rc = SD2506_OK;
|
||||
s_rtc_write_rc = SD2506_OK;
|
||||
@@ -372,7 +372,7 @@ static void tc_007_init_corrects_rtc(void) {
|
||||
}
|
||||
|
||||
static void tc_008_get_advance(void) {
|
||||
printf("TC-CLK-008 get 正常推进(含亚秒截断)\n");
|
||||
printf("TC-SYSCLK-008 get 正常推进(含亚秒截断)\n");
|
||||
base_at(1000000u, 5000u);
|
||||
CHECK_EQ_U32(sys_clock_get(), 1000000u, "基准时刻 = 基准值");
|
||||
tick_advance(999u);
|
||||
@@ -384,7 +384,7 @@ static void tc_008_get_advance(void) {
|
||||
}
|
||||
|
||||
static void tc_009_get_no_rebase_below_threshold(void) {
|
||||
printf("TC-CLK-009 未达 30 天阈值不触发再基准化\n");
|
||||
printf("TC-SYSCLK-009 未达 30 天阈值不触发再基准化\n");
|
||||
base_at(2000000u, 0u);
|
||||
/* 29 天 < 30 天阈值:线性推进,基准不动 */
|
||||
tick_advance(29u * 24u * 3600u * 1000u);
|
||||
@@ -393,7 +393,7 @@ static void tc_009_get_no_rebase_below_threshold(void) {
|
||||
}
|
||||
|
||||
static void tc_010_get_rebase_at_threshold(void) {
|
||||
printf("TC-CLK-010 30 天惰性再基准化(窗口清零、值无损、余数结转)\n");
|
||||
printf("TC-SYSCLK-010 30 天惰性再基准化(窗口清零、值无损、余数结转)\n");
|
||||
base_at(3000000u, 0u);
|
||||
|
||||
/* 推进恰好 30 天 + 1500ms(余数 500ms 应结转到新窗) */
|
||||
@@ -411,7 +411,7 @@ static void tc_010_get_rebase_at_threshold(void) {
|
||||
}
|
||||
|
||||
static void tc_011_get_tick_wrap(void) {
|
||||
printf("TC-CLK-011 tick 回绕(无符号差)安全\n");
|
||||
printf("TC-SYSCLK-011 tick 回绕(无符号差)安全\n");
|
||||
/* 基准设在接近 2^32 处 */
|
||||
base_at(4000000u, 0xFFFFF000u);
|
||||
/* 推进 0x2000 ms(跨越 2^32 回绕):差 = 0x2000 = 8192ms → +8s */
|
||||
@@ -420,7 +420,7 @@ static void tc_011_get_tick_wrap(void) {
|
||||
}
|
||||
|
||||
static void tc_012_get_long_run_no_drift(void) {
|
||||
printf("TC-CLK-012 多轮再基准化长期不漂移\n");
|
||||
printf("TC-SYSCLK-012 多轮再基准化长期不漂移\n");
|
||||
base_at(5000000u, 0u);
|
||||
/*
|
||||
* 惰性再基准化的**正确用法**:周期性调用 get() 让差值窗口始终 < 30 天。
|
||||
@@ -439,7 +439,7 @@ static void tc_012_get_long_run_no_drift(void) {
|
||||
}
|
||||
|
||||
static void tc_013_get_str(void) {
|
||||
printf("TC-CLK-013 get_str 格式化\n");
|
||||
printf("TC-SYSCLK-013 get_str 格式化\n");
|
||||
char buf[32];
|
||||
base_at(ref_unix(2026, 10, 2, 13, 4, 5), 0u);
|
||||
memset(buf, 0, sizeof(buf));
|
||||
@@ -453,7 +453,7 @@ static void tc_013_get_str(void) {
|
||||
}
|
||||
|
||||
static void tc_014_get_time_fields(void) {
|
||||
printf("TC-CLK-014 get_time 日历字段\n");
|
||||
printf("TC-SYSCLK-014 get_time 日历字段\n");
|
||||
sd2506_time_t t;
|
||||
/* 2026-10-02 是周五(已知) */
|
||||
base_at(ref_unix(2026, 10, 2, 8, 9, 10), 0u);
|
||||
@@ -465,13 +465,13 @@ static void tc_014_get_time_fields(void) {
|
||||
}
|
||||
|
||||
static void tc_015_get_time_null(void) {
|
||||
printf("TC-CLK-015 get_time NULL 参数被拒\n");
|
||||
printf("TC-SYSCLK-015 get_time NULL 参数被拒\n");
|
||||
base_at(6000000u, 0u);
|
||||
CHECK(sys_clock_get_time(NULL) == -1, "p_time == NULL → 返回 -1");
|
||||
}
|
||||
|
||||
static void tc_016_set_writes_rtc(void) {
|
||||
printf("TC-CLK-016 set 更新基准 + 写回 RTC\n");
|
||||
printf("TC-SYSCLK-016 set 更新基准 + 写回 RTC\n");
|
||||
sd2506_time_t sd;
|
||||
memset(&sd, 0, sizeof(sd));
|
||||
sd.year = 2027; sd.month = 3; sd.day = 15;
|
||||
@@ -497,7 +497,7 @@ static void tc_016_set_writes_rtc(void) {
|
||||
}
|
||||
|
||||
static void tc_017_set_no_rtc(void) {
|
||||
printf("TC-CLK-017 set sd_time=NULL 不碰 RTC\n");
|
||||
printf("TC-SYSCLK-017 set sd_time=NULL 不碰 RTC\n");
|
||||
clear_obs();
|
||||
CHECK(sys_clock_set(8000000u, NULL) == 0, "set(NULL) 返回 0");
|
||||
CHECK(s_rtc_set_calls == 0, "sd_time == NULL → 不写 RTC");
|
||||
@@ -505,7 +505,7 @@ static void tc_017_set_no_rtc(void) {
|
||||
}
|
||||
|
||||
static void tc_018_set_unix_fields(void) {
|
||||
printf("TC-CLK-018 set_unix 写回 RTC 且字段正确\n");
|
||||
printf("TC-SYSCLK-018 set_unix 写回 RTC 且字段正确\n");
|
||||
sd2506_time_t expect_week;
|
||||
uint32_t u = ref_unix(2026, 10, 2, 15, 30, 45);
|
||||
clear_obs();
|
||||
@@ -521,7 +521,7 @@ static void tc_018_set_unix_fields(void) {
|
||||
}
|
||||
|
||||
static void tc_019_week_known_dates(void) {
|
||||
printf("TC-CLK-019 星期(Zeller)已知日期穷举\n");
|
||||
printf("TC-SYSCLK-019 星期(Zeller)已知日期穷举\n");
|
||||
/* 期望值经 Python datetime 独立核对(0=周日);
|
||||
* 覆盖 1/2 月(Zeller 需上调为上年 13/14 月的分支)与 3~12 月(2026-10-02
|
||||
* 修正前全部错误),以及世纪闰年、非闰世纪、范围首尾。*/
|
||||
|
||||
Reference in New Issue
Block a user