Fix NVMe self-tests and mobile layout
This commit is contained in:
@@ -6,8 +6,44 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestApplySMARTJSONReadsNVMeSelfTestHistory(t *testing.T) {
|
||||
disk := DiskMetrics{Path: "/dev/nvme0n1"}
|
||||
output := []byte(`{
|
||||
"model_name":"ADATA LEGEND 900",
|
||||
"smart_status":{"passed":true},
|
||||
"power_on_time":{"hours":960},
|
||||
"nvme_self_test_log":{
|
||||
"current_self_test_operation":{"value":0,"string":"No self-test in progress"},
|
||||
"table":[{
|
||||
"self_test_code":{"value":1,"string":"Short"},
|
||||
"self_test_result":{"value":0,"string":"Completed without error"},
|
||||
"power_on_hours":959
|
||||
}]
|
||||
}
|
||||
}`)
|
||||
|
||||
before := time.Now().Add(-2 * time.Hour)
|
||||
applySMARTJSON(&disk, output)
|
||||
after := time.Now()
|
||||
|
||||
if disk.SelfTestNeverRun {
|
||||
t.Fatal("завершённый NVMe self-test ошибочно отмечен как никогда не запускавшийся")
|
||||
}
|
||||
if disk.LastSelfTest != "Short · Completed without error" {
|
||||
t.Fatalf("неожиданный результат self-test: %q", disk.LastSelfTest)
|
||||
}
|
||||
parsed, err := time.Parse(time.RFC3339, disk.LastSelfTestAt)
|
||||
if err != nil || parsed.Before(before) || parsed.After(after) {
|
||||
t.Fatalf("неверно вычислено время self-test: %q, err=%v", disk.LastSelfTestAt, err)
|
||||
}
|
||||
if len(disk.AttentionReasons) != 0 || disk.SMARTStatus != "Исправен" {
|
||||
t.Fatalf("исправный NVMe требует внимания: %+v", disk)
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsPhysicalDiskName(t *testing.T) {
|
||||
tests := map[string]bool{
|
||||
"sda": true, "sdb": true, "nvme0n1": true,
|
||||
|
||||
Reference in New Issue
Block a user