Files
kyleandClaude Opus 5.5 e08deb39a6 brokerd: recover a torn line in place, real dates only, bounded ttl, EMFILE
From the independent review of task 23. A torn last line followed by an empty
later file had its recovery written into the later file, which broke the
chain for good; the line is now ended in its own file. The log-name rule
takes months 01 to 12 and days 01 to 31 only. [approvals] ttl_ms is limited
to a day, the longest loopd waits after a pending frame. Running out of file
descriptors or memory pauses the listener instead of stopping brokerd (the
errors the previous fix skipped do not occur on Linux). args.rs's doc fixed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-22 21:48:24 -07:00

39 lines
1.1 KiB
Rust
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//! Which file names are audit log files. `brokerd` and `bxctl audit verify` both use this one rule,
//! so they always read the same set of files.
use proto::is_audit_log_name;
#[test]
fn a_date_and_jsonl_is_a_log_file() {
for name in ["2026-09-17.jsonl", "0000-01-01.jsonl", "9999-12-31.jsonl"] {
assert!(is_audit_log_name(name), "{name}");
}
}
#[test]
fn every_other_name_is_not() {
for name in [
"",
".lock",
"2026-0x-17.jsonl", // the second month digit
"2026-x9-17.jsonl",
"2026-09-1x.jsonl",
"x026-09-17.jsonl",
"2026_09-17.jsonl",
"2026-09_17.jsonl",
"2026-09-17.json",
"2026-09-17.jsonl.bak",
"2026-9-17.jsonl",
"12026-09-17.jsonl",
"2026-09-17.JSONL",
"026-09-17.jsonl", // a full-width digit is not an ASCII digit
"2026-00-17.jsonl", // no month 0
"2026-13-17.jsonl",
"2026-09-00.jsonl", // no day 0
"2026-09-32.jsonl",
"2026-99-99.jsonl",
] {
assert!(!is_audit_log_name(name), "{name}");
}
}