vdi-cloud/platform/pkg/proxmox/snapshots_test.go

28 lines
1006 B
Go

package proxmox
import "testing"
func TestSnapshotDiskScope(t *testing.T) {
base := map[string]any{"scsi0": "local:vm-9000,size=4G", "efidisk0": "local:vm-9000-efi,size=4M", "tpmstate0": "local:vm-9000-tpm,size=4M", "ide2": "local:iso/setup.iso,media=cdrom", "ide0": "local:vm-9000-cloudinit,media=cdrom"}
disks, err := SnapshotDisks(base)
if err != nil || len(disks) != 3 {
t.Fatal(disks, err)
}
for _, key := range []string{"hostpci0", "usb0", "unused0", "args", "hookscript"} {
base[key] = "test"
if _, err = SnapshotDisks(base); err == nil {
t.Fatal("accepted external state", key)
}
delete(base, key)
}
for _, disk := range []string{"/dev/disk/by-id/data,size=4G", "local:vm-9000,size=4G,snapshot=0", "local:vm-9000,size=4G,shared=1"} {
base["scsi0"] = disk
if _, err = SnapshotDisks(base); err == nil {
t.Fatal("accepted excluded disk", disk)
}
}
if _, err = SnapshotDisks(map[string]any{"ide2": "none,media=cdrom"}); err == nil {
t.Fatal("accepted no disks")
}
}