Files
logpile/internal/parser/vendors/inspur/fru_test.go
T
mchusandClaude Sonnet 5 71f4c237fc fix(inspur): match main board FRU on word boundary
A bare "board" substring test let compound module names like
"FANBOARD0_FRU" qualify as the main system board, overwriting the
real board info with fan-board serial/part numbers. Switch to a
word-boundary regex.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 11:58:33 +03:00

90 lines
2.2 KiB
Go

package inspur
import (
"testing"
"git.mchus.pro/mchus/logpile/internal/models"
)
func TestExtractBoardInfo_PreservesBuiltinSerial(t *testing.T) {
hw := &models.HardwareConfig{}
fruList := []models.FRUInfo{
{
Description: "Builtin FRU Device (ID 0)",
SerialNumber: "21D634101",
},
{
Description: "SCM_FRU (ID 8)",
SerialNumber: "CAR509K10613C10",
ProductName: "CA",
Manufacturer: "inagile",
PartNumber: "YZCA-02758-105",
},
}
extractBoardInfo(fruList, hw)
if hw.BoardInfo.SerialNumber != "21D634101" {
t.Fatalf("expected board serial 21D634101, got %q", hw.BoardInfo.SerialNumber)
}
if hw.BoardInfo.ProductName != "CA" {
t.Fatalf("expected product name CA, got %q", hw.BoardInfo.ProductName)
}
}
func TestExtractBoardInfo_FanBoardIsNotMainBoard(t *testing.T) {
hw := &models.HardwareConfig{}
fruList := []models.FRUInfo{
{
Description: "SCM_FRU (ID 8)",
SerialNumber: "CAR517GN0377A01",
ProductName: "CA",
PartNumber: "YZCA-04672-101",
},
{
Description: "FANBOARD0_FRU (ID 64)",
SerialNumber: "CFR517G80024A01",
ProductName: "CF",
PartNumber: "YZCF-04669-101",
},
}
extractBoardInfo(fruList, hw)
if hw.BoardInfo.ProductName != "CA" {
t.Fatalf("expected product name CA, got %q", hw.BoardInfo.ProductName)
}
if hw.BoardInfo.PartNumber != "YZCA-04672-101" {
t.Fatalf("expected part number YZCA-04672-101, got %q", hw.BoardInfo.PartNumber)
}
if hw.BoardInfo.SerialNumber != "CAR517GN0377A01" {
t.Fatalf("expected serial CAR517GN0377A01, got %q", hw.BoardInfo.SerialNumber)
}
}
func TestExtractBoardInfo_DoesNotUsePSUVendorAsBoardManufacturer(t *testing.T) {
hw := &models.HardwareConfig{}
fruList := []models.FRUInfo{
{
Description: "Builtin FRU Device (ID 0)",
SerialNumber: "2KD605238",
},
{
Description: "PSU0_FRU (ID 30)",
SerialNumber: "PMR315HS10F1A",
ProductName: "AP-CR3000F12BY",
Manufacturer: "APLUSPOWER",
PartNumber: "18XA1M43400C2",
},
}
extractBoardInfo(fruList, hw)
if hw.BoardInfo.SerialNumber != "2KD605238" {
t.Fatalf("expected board serial 2KD605238, got %q", hw.BoardInfo.SerialNumber)
}
if hw.BoardInfo.Manufacturer != "" {
t.Fatalf("expected empty board manufacturer, got %q", hw.BoardInfo.Manufacturer)
}
}