debian-forge-composer/internal/disk/lvm_test.go
Christian Kellner a9ef16a95e disk/lvm: generate logical volume name
When creating a new logical volume via the `CreateVolume` method,
the logical volume name was left blank. Generate an name based
on the mountpoint.
We will detect collisions for names and will try to correct them
by attaching a suffix. We do give up after 100 attempts though.
Add a simple test for it.
2022-02-27 22:03:36 +01:00

40 lines
767 B
Go

package disk
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestLVMVGCreateVolume(t *testing.T) {
assert := assert.New(t)
vg := &LVMVolumeGroup{
Name: "root",
Description: "root volume group",
}
entity, err := vg.CreateVolume("/", 0)
assert.NoError(err)
rootlv := entity.(*LVMLogicalVolume)
assert.Equal("rootlv", rootlv.Name)
_, err = vg.CreateVolume("/home_test", 0)
assert.NoError(err)
entity, err = vg.CreateVolume("/home/test", 0)
assert.NoError(err)
dedup := entity.(*LVMLogicalVolume)
assert.Equal("home_testlv00", dedup.Name)
// Lets collide it
for i := 0; i < 98; i++ {
_, err = vg.CreateVolume("/home/test", 0)
assert.NoError(err)
}
_, err = vg.CreateVolume("/home/test", 0)
assert.Error(err)
}