用例按逐行口径核验应用日志落盘边界
- 生产是把两行分别交给 append_application_log_line 脱敏截断,原用例先 join(" ") 再 sanitize,测不到逐行截断与「只该脱敏其中一行」的情况
- 改为逐行 sanitize,并分别断言身份行(eventId/code/detailRef/summary)与详情行(detail 脱敏、metadata 无凭据)
- 验证:cargo test runtime_error(7 passed)
This commit is contained in:
@@ -279,21 +279,32 @@ mod tests {
|
||||
for line in &lines {
|
||||
assert!(!line.contains('\n'), "{line}");
|
||||
}
|
||||
// 落盘边界按真实口径核验:应用日志的整行脱敏既不能吃掉身份字段,也不能靠换行拆行。
|
||||
let persisted = crate::sanitize_diagnostic_message(&lines.join(" "), None);
|
||||
assert!(persisted.contains("eventId=error-1-1"), "{persisted}");
|
||||
assert!(persisted.contains("code=turn-idle-timeout"), "{persisted}");
|
||||
// 落盘边界按真实口径核验:应用日志逐行脱敏、逐行截断,两行不会先拼在一起。
|
||||
let persisted = lines
|
||||
.iter()
|
||||
.map(|line| crate::sanitize_diagnostic_message(line, None))
|
||||
.collect::<Vec<_>>();
|
||||
for line in &persisted {
|
||||
assert!(!line.contains("token=secret"), "{line}");
|
||||
assert!(line.chars().count() <= 2_048, "{line}");
|
||||
}
|
||||
let identity = &persisted[0];
|
||||
assert!(identity.contains("eventId=error-1-1"), "{identity}");
|
||||
assert!(identity.contains("code=turn-idle-timeout"), "{identity}");
|
||||
assert!(
|
||||
persisted.contains("detailRef=.agent/runtime/errors/error-1-1.json"),
|
||||
"{persisted}"
|
||||
identity.contains("detailRef=.agent/runtime/errors/error-1-1.json"),
|
||||
"{identity}"
|
||||
);
|
||||
assert!(persisted.contains("summary=本轮没有收到完成事件 附带换行"));
|
||||
assert!(persisted.contains("detail=<absolute-path> <redacted-url> 第二行诊断"));
|
||||
assert!(
|
||||
!persisted.contains("token=secret") && !persisted.contains("Bearer secret"),
|
||||
"{persisted}"
|
||||
identity.contains("summary=本轮没有收到完成事件 附带换行"),
|
||||
"{identity}"
|
||||
);
|
||||
assert!(persisted.chars().count() <= 2_048, "{persisted}");
|
||||
let detail = &persisted[1];
|
||||
assert!(
|
||||
detail.contains("detail=<absolute-path> <redacted-url> 第二行诊断"),
|
||||
"{detail}"
|
||||
);
|
||||
assert!(!detail.contains("Bearer secret"), "{detail}");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user