31 lines
879 B
Go
31 lines
879 B
Go
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")
|
|
}
|
|
}
|