94 lines
2.5 KiB
Go
94 lines
2.5 KiB
Go
package nvidia
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"git.mchus.pro/mchus/logpile/internal/models"
|
|
)
|
|
|
|
func TestApplyInventoryPCIIDsAndNVFlashFirmware(t *testing.T) {
|
|
result := &models.AnalysisResult{
|
|
Hardware: &models.HardwareConfig{
|
|
GPUs: []models.GPU{
|
|
{
|
|
Slot: "GPUSXM5",
|
|
DeviceID: 0x2335,
|
|
},
|
|
},
|
|
PCIeDevices: []models.PCIeDevice{
|
|
{
|
|
Slot: "NVSWITCHNVSWITCH2",
|
|
DeviceID: 0x22a3,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
inventoryLog := []byte(`
|
|
GPU_SXM5_PCIID: 0000:ba:00.0
|
|
NVSWITCH_NVSWITCH2_PCIID: 0000:07:00.0
|
|
`)
|
|
|
|
nvflashLog := []byte(`
|
|
Adapter: Graphics Device (10DE,2335,10DE,18BE) S:00,B:BA,D:00,F:00
|
|
Version : 96.00.D0.00.03
|
|
Board ID : 0x053C
|
|
Vendor ID : 0x10DE
|
|
Device ID : 0x2335
|
|
Hierarchy ID : Normal Board
|
|
Chip SKU : 895-0
|
|
Project : G520-0280
|
|
|
|
Adapter: Graphics Device (10DE,22A3,10DE,1796) S:00,B:07,D:00,F:00
|
|
Version : 96.10.6D.00.01
|
|
Board ID : 0x03B7
|
|
Vendor ID : 0x10DE
|
|
Device ID : 0x22A3
|
|
Hierarchy ID : Normal Board
|
|
Chip SKU : 890-0
|
|
Project : 5612-0002
|
|
`)
|
|
|
|
if err := ApplyInventoryPCIIDs(inventoryLog, result); err != nil {
|
|
t.Fatalf("ApplyInventoryPCIIDs failed: %v", err)
|
|
}
|
|
if err := ParseNVFlashVerboseLog(nvflashLog, result); err != nil {
|
|
t.Fatalf("ParseNVFlashVerboseLog failed: %v", err)
|
|
}
|
|
|
|
if got := result.Hardware.GPUs[0].BDF; got != "0000:ba:00.0" {
|
|
t.Fatalf("expected GPU BDF 0000:ba:00.0, got %q", got)
|
|
}
|
|
if got := result.Hardware.GPUs[0].Firmware; got != "96.00.D0.00.03" {
|
|
t.Fatalf("expected GPU firmware 96.00.D0.00.03, got %q", got)
|
|
}
|
|
|
|
if got := result.Hardware.PCIeDevices[0].BDF; got != "0000:07:00.0" {
|
|
t.Fatalf("expected NVSwitch BDF 0000:07:00.0, got %q", got)
|
|
}
|
|
if got := result.Hardware.PCIeDevices[0].PartNumber; got != "965-25612-0002-000" {
|
|
t.Fatalf("expected NVSwitch part number 965-25612-0002-000, got %q", got)
|
|
}
|
|
|
|
if len(result.Hardware.Firmware) == 0 {
|
|
t.Fatalf("expected firmware entries to be populated from nvflash log")
|
|
}
|
|
|
|
hasGPUFW := false
|
|
hasNVSwitchFW := false
|
|
for _, fw := range result.Hardware.Firmware {
|
|
if fw.Version == "96.00.D0.00.03" {
|
|
hasGPUFW = true
|
|
}
|
|
if fw.Version == "96.10.6D.00.01" {
|
|
hasNVSwitchFW = true
|
|
}
|
|
}
|
|
if !hasGPUFW {
|
|
t.Fatalf("expected GPU firmware version 96.00.D0.00.03 in hardware firmware list")
|
|
}
|
|
if !hasNVSwitchFW {
|
|
t.Fatalf("expected NVSwitch firmware version 96.10.6D.00.01 in hardware firmware list")
|
|
}
|
|
}
|