package platform import "testing" func TestInferLiveBootKind(t *testing.T) { t.Parallel() tests := []struct { name string fsType string source string deviceType string transport string want string }{ {name: "ram tmpfs", fsType: "tmpfs", source: "/dev/shm/bee-live", want: "ram"}, {name: "usb disk", source: "/dev/sdb1", deviceType: "disk", transport: "usb", want: "usb"}, {name: "cdrom rom", source: "/dev/sr0", deviceType: "rom", want: "cdrom"}, {name: "disk sata", source: "/dev/nvme0n1p1", deviceType: "disk", transport: "nvme", want: "disk"}, {name: "unknown", source: "overlay", want: "unknown"}, } for _, tc := range tests { tc := tc t.Run(tc.name, func(t *testing.T) { got := inferLiveBootKind(tc.fsType, tc.source, tc.deviceType, tc.transport) if got != tc.want { t.Fatalf("inferLiveBootKind(%q,%q,%q,%q)=%q want %q", tc.fsType, tc.source, tc.deviceType, tc.transport, got, tc.want) } }) } } func TestVerifyInstallToRAMStatus(t *testing.T) { t.Parallel() if err := verifyInstallToRAMStatus(LiveBootSource{InRAM: true, Kind: "ram", Source: "tmpfs"}); err != nil { t.Fatalf("expected success for RAM-backed status, got %v", err) } err := verifyInstallToRAMStatus(LiveBootSource{InRAM: false, Kind: "usb", Device: "/dev/sdb1"}) if err == nil { t.Fatal("expected verification failure when media is still on USB") } if got := err.Error(); got != "install to RAM verification failed: live medium still mounted from USB (/dev/sdb1)" { t.Fatalf("error=%q", got) } } func TestDescribeLiveBootSource(t *testing.T) { t.Parallel() if got := describeLiveBootSource(LiveBootSource{InRAM: true, Kind: "ram"}); got != "RAM" { t.Fatalf("got %q want RAM", got) } if got := describeLiveBootSource(LiveBootSource{Kind: "unknown", Source: "/run/live/medium"}); got != "/run/live/medium" { t.Fatalf("got %q want /run/live/medium", got) } }