28 lines
1006 B
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")
|
|
}
|
|
}
|