Files
bee/audit/internal/collector/dmesg_events_test.go
T
Mikhail ChusavitinandClaude Sonnet 5 1175e6ccd8 gpu: collect reset-required/row-remap status and classify Xid codes by severity
nvidia-smi exposes reset_status.reset_required and remapped_rows.* only on
newer drivers for Ampere+ GPUs; queried via a separate exec call since an
unrecognized field name fails the whole --query-gpu command and would have
wiped out unrelated telemetry (temp/ECC/power) on older drivers otherwise.

Also refines Xid severity in both the ingest dmesg collector and the
always-on kmsg watcher: Xid 64 (row-remap InfoROM write failure) now
escalates to Critical instead of the generic warning every other Xid got,
and fixes the SAT-window flush path which previously hardcoded "Warning"
and ignored pattern severity entirely.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-07 19:28:59 +03:00

47 lines
1.1 KiB
Go

package collector
import "testing"
func TestDmesgSeverity_xidCodes(t *testing.T) {
tests := []struct {
name string
msg string
want string
}{
{
name: "xid 64 remap write failure escalates to critical",
msg: "NVRM: Xid (PCI:0000:65:00): 64, pid=1234, name=python",
want: statusCritical,
},
{
name: "xid 94 contained ecc is downgraded to warning",
msg: "NVRM: Xid (PCI:0000:65:00): 94, pid=1234, name=python",
want: statusWarning,
},
{
name: "xid 63 remap committed is downgraded to warning",
msg: "NVRM: Xid (PCI:0000:65:00): 63, pid=1234, Class 0x90a0",
want: statusWarning,
},
{
name: "unrecognized xid code falls back to generic critical",
msg: "NVRM: Xid (PCI:0000:65:00): 79, pid=1234, GPU has fallen off the bus",
want: statusCritical,
},
{
name: "non-xid generic error keyword",
msg: "blk_update_request: I/O error, dev sda",
want: statusCritical,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := dmesgSeverity(tt.msg)
if got != tt.want {
t.Fatalf("dmesgSeverity(%q) = %q, want %q", tt.msg, got, tt.want)
}
})
}
}