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>
90 lines
2.2 KiB
Go
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)
|
|
}
|
|
}
|