47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package nvidia
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"git.mchus.pro/mchus/logpile/internal/models"
|
|
)
|
|
|
|
func TestApplyGPUStatuses_FromSummaryCSV_FailAndPass(t *testing.T) {
|
|
csvData := strings.Join([]string{
|
|
"ErrorCode,Test,VirtualID,SubTest,Type,ComponentID,Notes,Level,,,IgnoreError",
|
|
"0,gpumem,gpumem,,GPU,SXM1_SN_111,OK,1,,,False",
|
|
"363,gpumem,gpumem,,GPU,SXM5_SN_1653925025497,Row remapping failed,1,,,False",
|
|
"0,gpu_fieldiag,gpu_fieldiag,,GPU,SXM1_SN_111,OK,1,,,False",
|
|
"0,gpu_fieldiag,gpu_fieldiag,,GPU,SXM2_SN_222,OK,1,,,False",
|
|
}, "\n")
|
|
|
|
result := &models.AnalysisResult{
|
|
Hardware: &models.HardwareConfig{
|
|
GPUs: []models.GPU{
|
|
{Slot: "GPUSXM1", SerialNumber: "111"},
|
|
{Slot: "GPUSXM2", SerialNumber: "222"},
|
|
{Slot: "GPUSXM5", SerialNumber: "1653925025497"},
|
|
},
|
|
},
|
|
}
|
|
|
|
statuses := CollectGPUStatusesFromSummaryCSV([]byte(csvData))
|
|
ApplyGPUStatuses(result, statuses)
|
|
|
|
bySerial := map[string]string{}
|
|
for _, gpu := range result.Hardware.GPUs {
|
|
bySerial[gpu.SerialNumber] = gpu.Status
|
|
}
|
|
|
|
if bySerial["1653925025497"] != "FAIL" {
|
|
t.Fatalf("expected serial 1653925025497 status FAIL, got %q", bySerial["1653925025497"])
|
|
}
|
|
if bySerial["111"] != "PASS" {
|
|
t.Fatalf("expected serial 111 status PASS, got %q", bySerial["111"])
|
|
}
|
|
if bySerial["222"] != "PASS" {
|
|
t.Fatalf("expected serial 222 status PASS, got %q", bySerial["222"])
|
|
}
|
|
}
|