Skip to content

Commit bb041d4

Browse files
committed
add tests
1 parent f24e71b commit bb041d4

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

internal/controllers/vgmanager/controller_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ var _ = Describe("vgmanager controller", func() {
8282
It("should handle LVMD edge cases correctly", testLVMD)
8383
It("should handle thin pool creation correctly", testThinPoolCreation)
8484
It("should handle thin pool extension cases correctly", testThinPoolExtension)
85+
It("should handle metadata size extension correctly", testMetadataSizeExtension)
8586
})
8687
Context("event tests", func() {
8788
It("should correctly emit events", testEvents)
@@ -703,6 +704,36 @@ func testLVMD(ctx context.Context) {
703704
Expect(err).To(HaveOccurred(), "should error if lvmd config cannot be saved")
704705
}
705706

707+
func testMetadataSizeExtension(ctx context.Context) {
708+
r := &Reconciler{Scheme: scheme.Scheme}
709+
logger := zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true))
710+
ctx = log.IntoContext(ctx, logger)
711+
mockLVM := lvmmocks.NewMockLVM(GinkgoT())
712+
r.LVM = mockLVM
713+
714+
cfg := lvmv1alpha1.ThinPoolConfig{
715+
Name: "test",
716+
MetadataSizeCalculationPolicy: lvmv1alpha1.MetadataSizePolicyHost,
717+
}
718+
719+
By("skip metadata extension when policy set to Host")
720+
err := r.verifyMetadataSize(ctx, "vg1", cfg.Name, "1024b", convertMetadataSize(&cfg))
721+
Expect(err).NotTo(HaveOccurred(), "should not error if metadata size calculation policy is Host")
722+
723+
By("skip metadata extension when metadata size is same")
724+
cfg.MetadataSizeCalculationPolicy = lvmv1alpha1.MetadataSizePolicyStatic
725+
cfg.MetadataSize = ptr.To(resource.MustParse("1Mi"))
726+
err = r.verifyMetadataSize(ctx, "vg1", cfg.Name, fmt.Sprintf("%vb", cfg.MetadataSize.Value()), convertMetadataSize(&cfg))
727+
Expect(err).NotTo(HaveOccurred(), "should not error because metadata size is the same")
728+
729+
By("extend metadata size when provided is bigger than actual")
730+
oldSize := cfg.MetadataSize
731+
cfg.MetadataSize = ptr.To(resource.MustParse("1Gi"))
732+
mockLVM.EXPECT().ExtendThinPoolMetadata(ctx, cfg.Name, "vg1", cfg.MetadataSize.Value()).Return(nil).Once()
733+
err = r.verifyMetadataSize(ctx, "vg1", cfg.Name, fmt.Sprintf("%vb", oldSize.Value()), convertMetadataSize(&cfg))
734+
Expect(err).NotTo(HaveOccurred(), "should not error when metadata extended")
735+
}
736+
706737
func testThinPoolExtension(ctx context.Context) {
707738
r := &Reconciler{Scheme: scheme.Scheme}
708739
logger := zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true))

internal/controllers/vgmanager/lvm/lvm_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,7 @@ func TestHostLVM_CreateLV(t *testing.T) {
449449
if tt.execErr {
450450
return fmt.Errorf("mocked error")
451451
}
452-
assert.ElementsMatch(t, args, []string{"-l", fmt.Sprintf("%d%%FREE", tt.sizePercent), "-c", fmt.Sprintf("%vb", tt.chunkSizeBytes), "-Z", "y", "-T", fmt.Sprintf("%s/%s", tt.vgName, tt.lvName, "--poolmetadatasize", fmt.Sprintf("%vb", tt.metadataSizeBytes))})
452+
assert.ElementsMatch(t, args, []string{"-l", fmt.Sprintf("%d%%FREE", tt.sizePercent), "-c", fmt.Sprintf("%vb", tt.chunkSizeBytes), "-Z", "y", "-T", fmt.Sprintf("%s/%s", tt.vgName, tt.lvName), "--poolmetadatasize", fmt.Sprintf("%vb", tt.metadataSizeBytes)})
453453
return nil
454454
}}
455455

0 commit comments

Comments
 (0)