package roothelper import ( "testing" "banger/internal/firecracker" ) func TestValidateDMDevicePath(t *testing.T) { t.Parallel() for _, tc := range []struct { name string path string ok bool }{ {name: "valid", path: "/dev/mapper/fc-rootfs-test", ok: true}, {name: "wrong_prefix", path: "/dev/mapper/not-banger", ok: false}, {name: "wrong_dir", path: "/tmp/fc-rootfs-test", ok: false}, {name: "relative", path: "fc-rootfs-test", ok: false}, } { tc := tc t.Run(tc.name, func(t *testing.T) { t.Parallel() err := validateDMDevicePath(tc.path) if tc.ok && err != nil { t.Fatalf("validateDMDevicePath(%q) = %v, want nil", tc.path, err) } if !tc.ok && err == nil { t.Fatalf("validateDMDevicePath(%q) succeeded, want error", tc.path) } }) } } func TestValidateLaunchDrivePathAllowsManagedRootDMDevice(t *testing.T) { t.Parallel() srv := &Server{} if err := srv.validateLaunchDrivePath(firecracker.DriveConfig{ ID: "rootfs", Path: "/dev/mapper/fc-rootfs-test", IsRoot: true, }, "/var/lib/banger"); err != nil { t.Fatalf("validateLaunchDrivePath(root dm) = %v, want nil", err) } if err := srv.validateLaunchDrivePath(firecracker.DriveConfig{ ID: "work", Path: "/dev/mapper/fc-rootfs-test", IsRoot: false, }, "/var/lib/banger"); err == nil { t.Fatal("validateLaunchDrivePath(non-root dm) succeeded, want error") } }