nvidia: improve component mapping, firmware, statuses and check times
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"git.mchus.pro/mchus/logpile/internal/models"
|
||||
"git.mchus.pro/mchus/logpile/internal/parser"
|
||||
)
|
||||
|
||||
@@ -81,3 +82,45 @@ func min(a, b int) int {
|
||||
}
|
||||
return b
|
||||
}
|
||||
|
||||
func TestParseInventoryLog_AssignsNVSwitchSerialByBDF(t *testing.T) {
|
||||
content := []byte(`
|
||||
$ lspci -vvvs 0000:05:00.0
|
||||
05:00.0 Bridge: NVIDIA Corporation Device 22a3 (rev a1)
|
||||
Capabilities: [2f0 v1] Device Serial Number 99-d3-61-c8-ac-2d-b0-48
|
||||
|
||||
/tmp/fieldiag devname=0000:ba:00.0,SXM5_SN_1653925025497 fieldiag
|
||||
`)
|
||||
|
||||
result := &models.AnalysisResult{
|
||||
Hardware: &models.HardwareConfig{
|
||||
GPUs: []models.GPU{
|
||||
{
|
||||
Slot: "GPUSXM5",
|
||||
BDF: "0000:ba:00.0",
|
||||
SerialNumber: "",
|
||||
},
|
||||
},
|
||||
PCIeDevices: []models.PCIeDevice{
|
||||
{
|
||||
Slot: "NVSWITCH0",
|
||||
BDF: "0000:05:00.0",
|
||||
SerialNumber: "",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
if err := ParseInventoryLog(content, result); err != nil {
|
||||
t.Fatalf("ParseInventoryLog failed: %v", err)
|
||||
}
|
||||
|
||||
if got := result.Hardware.PCIeDevices[0].SerialNumber; got != "99-d3-61-c8-ac-2d-b0-48" {
|
||||
t.Fatalf("expected NVSwitch serial 99-d3-61-c8-ac-2d-b0-48, got %q", got)
|
||||
}
|
||||
|
||||
// GPU serial should come from fieldiag devname mapping.
|
||||
if got := result.Hardware.GPUs[0].SerialNumber; got != "1653925025497" {
|
||||
t.Fatalf("expected GPU serial 1653925025497, got %q", got)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user