Files
logpile/internal/server/handlers_firmware_test.go

65 lines
1.7 KiB
Go

package server
import (
"testing"
"git.mchus.pro/mchus/logpile/internal/models"
)
func TestExtractFirmwareComponentAndModel_GPUUsesPartNumberFromParentheses(t *testing.T) {
component, model := extractFirmwareComponentAndModel("GPU GPUSXM3 (692-2G520-0280-501)")
if component != "GPU" {
t.Fatalf("expected component GPU, got %q", component)
}
if model != "692-2G520-0280-501" {
t.Fatalf("expected GPU model 692-2G520-0280-501, got %q", model)
}
}
func TestExtractFirmwareComponentAndModel_GPUFallbackWithoutParentheses(t *testing.T) {
component, model := extractFirmwareComponentAndModel("GPU 692-2G520-0280-501")
if component != "GPU" {
t.Fatalf("expected component GPU, got %q", component)
}
if model != "692-2G520-0280-501" {
t.Fatalf("expected GPU model 692-2G520-0280-501, got %q", model)
}
}
func TestBuildFirmwareEntries_IncludesGPUFirmwareFallback(t *testing.T) {
hw := &models.HardwareConfig{
Firmware: []models.FirmwareInfo{
{DeviceName: "BIOS", Version: "1.0.0"},
},
GPUs: []models.GPU{
{
Slot: "#CPU0_PCIE2",
Model: "GH100 [H200 NVL]",
PartNumber: "699-2G530-0200-501",
Firmware: "96.00.B7.00.02",
},
{
Slot: "#CPU0_PCIE1",
Model: "GH100 [H200 NVL]",
PartNumber: "699-2G530-0200-501",
Firmware: "96.00.B7.00.02",
},
},
}
entries := buildFirmwareEntries(hw)
if len(entries) != 2 {
t.Fatalf("expected 2 deduplicated firmware entries, got %d", len(entries))
}
var hasGPU bool
for _, e := range entries {
if e.Component == "GPU" && e.Version == "96.00.B7.00.02" {
hasGPU = true
}
}
if !hasGPU {
t.Fatalf("expected GPU firmware entry from hardware.gpus fallback")
}
}