package main import ( "encoding/json" "testing" ) func TestGuestJSON(t *testing.T) { data := []byte(`{"vmid":101,"name":"test","type":"qemu","status":"running","cpu":0.25,"maxcpu":4,"mem":1024,"maxmem":4096,"uptime":60}`) var guest GuestMetrics if err := json.Unmarshal(data, &guest); err != nil { t.Fatal(err) } if guest.VMID != 101 || guest.CPU != 0.25 || guest.MaxCPU != 4 { t.Fatalf("неожиданные данные гостя: %+v", guest) } } func TestGuestConfigHelpers(t *testing.T) { if got := storageName("local-zfs:vm-101-disk-0,size=32G"); got != "local-zfs" { t.Fatalf("storage: %s", got) } ips := ipsFromConfig("name=eth0,bridge=vmbr0,ip=192.168.0.20/24,ip6=auto") if len(ips) != 1 || ips[0] != "192.168.0.20" { t.Fatalf("ips: %+v", ips) } if !agentEnabled("enabled=1,fstrim_cloned_disks=1") { t.Fatal("agent should be enabled") } }